在NLTK中,你可以很容易地计算一个文本中单词的出现次数。比如说,可以通过以下方式实现:
from nltk.probability import FreqDist
fd = FreqDist([word for word in text.split()])
其中text是一个字符串。现在,您可以绘制分布图如下:
fd.plot()
这将为您提供一个漂亮的折线图,显示每个单词的计数。在文档中没有提到如何绘制实际频率,而您可以在fd.freq(x)
中看到。
有没有一种直接的方法来绘制标准化计数,而不需要将数据转换为其他数据结构,然后分别进行标准化和绘制?
freq
方法可以进行归一化,但这并不能解决我直接从对象绘制图表的问题。 - mar tinthe, hungry, eats
,分别计数为100、30、50
。概率将分别为100/180,30/180,50/180
。如果你在直方图上绘制计数和概率,以词汇作为x轴,概率作为y轴,并将它们按最高概率到最低概率排序,那么你不是会得到与以单词作为x轴和计数作为y轴相同的点(只是y轴上的比例不同)吗?;P - alvas