我在名为 Text(每行 1 个文本)的列中有一个包含 500 个文本的数据框,我想计算所有文本中最常见的单词。
我到目前为止尝试过(来自stackoverflow的两种方法):
pd.Series(' '.join(df['Text']).lower().split()).value_counts()[:100]
和
Counter(" ".join(df["Text"]).split()).most_common(100)
两者都给了我以下错误:
类型错误:序列项 0:预期的 str 实例,找到列表
我已经简单地尝试了计数器方法
df.Text.apply(Counter())
这给了我每个文本中的字数,我还更改了计数器方法,因此它返回每个文本中最常见的单词
但我想要整体最常用的词
这是数据帧的示例(文本已经小写,已从标点符号中清除,已标记,并已删除停用词)
Datum File File_type Text length len_cleaned_text
Datum
2000-01-27 2000-01-27 _04.txt _04 [business, date, jan, heineken, starts, integr... 396 220
编辑:“报告”它的代码
for file in file_list:
name = file[len(input_path):]
date = name[11:17]
type_1 = name[17:20]
with open(file, "r", encoding="utf-8", errors="surrogateescape") as rfile:
format
text = rfile.read()
text = text.encode('utf-8', 'ignore')
text = text.decode('utf-8', 'ignore')
a={"File": name, "Text": text,'the':count_the, 'Datum': date, 'File_type': type_1, 'length':length,}
result_list.append(a)
新细胞
df['Text']= df['Text'].str.lower()
p = re.compile(r'[^\w\s]+')
d = re.compile(r'\d+')
for index, row in df.iterrows():
df['Text']=df['Text'].str.replace('\n',' ')
df['Text']=df['Text'].str.replace('################################ end of story 1 ##############################','')
df['Text'] = [p.sub('', x) for x in df['Text'].tolist()]
df['Text'] = [d.sub('', x) for x in df['Text'].tolist()]
df['Text']=df['Text'].apply(word_tokenize)
小怪兽爱吃肉
千万里不及你
相关分类