python - 获取标记化 csv 文件中的每个唯一单词
问题描述
这是 CSV 表 CSV 表中有两列。一个是摘要,另一个是文本。在我将它们组合在一起、转换为数据框并保存为 CSV 文件之前,这两列都是 typeOfList 。顺便说一句,表中的文本已经被清理(删除了所有标记并转换为小写):
我想遍历表格中的每个单元格,将摘要和文本拆分为单词并标记每个单词。我该怎么做?
我尝试使用 python CSV 阅读器和 df.apply(word_tokenize)。我也尝试了 newList=set(summaries+texts),但后来我无法对它们进行标记。解决问题的任何解决方案,无论是使用 CSV 文件、数据框还是列表。提前感谢您的帮助!
注意:真实表有超过 50,000 行。
===一些更新==
这是我尝试过的代码。
import pandas as pd
data= pd.read_csv('test.csv')
data.head()
newTry=data.apply(lambda x: " ".join(x), axis=1)
type(newTry)
print (newTry)
import nltk
for sentence in newTry:
new=sentence.split()
print(new)
print(set(new))
请参考屏幕截图中的输出。列表中有重复的单词,还有一些方括号。我应该如何删除它们?我试过用set,但它只给出一个句子值。
解决方案
您可以使用内置的 csv 包来读取 csv 文件。和 nltk 来标记单词:
from nltk.tokenize import word_tokenize
import csv
words = []
def get_data():
with open("sample_csv.csv", "r") as records:
for record in csv.reader(records):
yield record
data = get_data()
next(data) # skip header
for row in data:
for sent in row:
for word in word_tokenize(sent):
if word not in words:
words.append(word)
print(words)
推荐阅读
- javascript - 当我们触发父级调整 div 时,我们如何调整子级 div
- angular - onCellClicked 仅第一个单元格 AgGrid
- asp.net-core - IdP 代理 - 已启动 SLO SP
- javascript - TypeScript/Angular try catch,try 块中的任何错误都不会捕获块
- mysql - 在查询中使用来自同一个 mysql 表的数据
- python - 烧瓶 sqlalchemy。提交不保存更改
- angular - Angular (2+) - 在数据绑定插值中得到延迟
- ios-autolayout - “NSLayoutYAxisAnchor”类型的值没有成员“约束”
- typo3 - Fallback og:image if no images are present in an ext:news story
- php - 如何在3个相关表之间创建条件