使用jupyter Notebook的Facebook Messenger分析

问题描述

我下载了Facebook Messenger数据,并试图对其进行分析。 所以我的目标是知道所有消息中单词出现的次数。 我将JSON文件转换为pandas Dataframe,并且有一个包含所有消息的列。 我将“消息”列转换为列表,并尝试使用NLTK来计数单词。

from nltk.tokenize import word_tokenize
from nltk.probability import Freqdist

mylist = df['content'].tolist()
tok_words = [word_tokenize(i) for i in mylist]

但是问题是当我尝试使用Freqdist时,它显示错误“ TypeError:不可散列的类型:'list'“

fdist = Freqdist(tok_words)
fdist.most_common(5)

当尝试使用它对我有

fdist = Freqdist(tok_words[0])
fdist.most_common(5)

我想将Freqdist不仅用于第一个索引,还用于所有列表。

解决方法

尝试:

fdist = FreqDist()
for words in tok_words:
    fdist.update(FreqDist(words))
fdist.most_common(5)