Python 将pandas中的主题名称和描述转换为主题名称、单词和频率

Python 将pandas中的主题名称和描述转换为主题名称、单词和频率,python,pandas,nltk,Python,Pandas,Nltk,我有一个熊猫数据框架,包括主题名称、描述 我试图将其转换为主题名、单词(出现在描述栏)及其频率 我尝试过这个,但它只给了我描述的单词和频率,而不是主题名称级别 import nltk top_N = 4 a = df['ParsedText'].str.cat(sep=' ') nltk.download('punkt') words = nltk.tokenize.word_tokenize(a) word_dist = nltk.FreqDist(words) rslt = pd.Dat

我有一个熊猫数据框架,包括主题名称、描述

我试图将其转换为主题名、单词(出现在描述栏)及其频率

我尝试过这个,但它只给了我描述的单词和频率,而不是主题名称级别

import nltk
top_N = 4
a = df['ParsedText'].str.cat(sep=' ')
nltk.download('punkt')
words = nltk.tokenize.word_tokenize(a)
word_dist = nltk.FreqDist(words)
rslt = pd.DataFrame(word_dist.most_common(top_N),
                columns=['Word', 'Frequency'])
print(rslt)       
  • 解析文本是一个描述列
您可以尝试:

(df.assign(Description=df.Description.str.split()).explode()
   .groupby('TopicName')['Description'].value_counts()
   .reset_index(name='Frequency')
)

TypeError:explode()缺少1个必需的位置参数:“column”output=pd.DataFrame(df.assign(ParsedText=df.ParsedText.str.split()).explode().groupby('ID')['ParsedText'].value_counts().reset_index(name='Frequency'))传递“Description”进行分解。在传递参数进行分解后,它对我有效。我可以为每个描述排除停止词吗?在
之后插入
.loc[lambda x:~x['description'].isin(列出停止词)]
。分解('description')
。但是你应该考虑一些标记化,例如从<代码> NLTK 。谢谢。上述解决方案有所帮助。