Python:如何计算NLTK语料库中最常用的X词?

时间:2016-01-29 14:03:28

标签: python nltk

我不确定我是否已正确理解FreqDist函数如何在Python上运行。当我按照教程进行操作时,我会相信以下代码构造给定单词列表的频率分布并计算最常用的x个单词。 (在下面的示例中,将语料库设为NLTK语料库,将文件作为该语料库中文件的文件名)

words = corpus.words('file.txt')
fd_words = nltk.FreqDist(word.lower() for word in words)
fd_words.items()[:x]

但是,当我在Python上执行以下命令时,似乎另有建议:

>>> from nltk import *
>>> fdist = FreqDist(['hi','my','name','is','my','name'])
>>> fdist
FreqDist({'my': 2, 'name':2, 'is':1, 'hi':1}
>>> fdist.items()
[('is',1),('hi',1),('my',2),('name',2)]
>>> fdist.items[:2]
[('is',1),('hi',1)]

fdist.items()[:x]方法实际上是返回x个最不常见的单词?

有人可以告诉我,如果我做错了,或者错误在于我正在关注的教程吗?

1 个答案:

答案 0 :(得分:13)

默认情况下,FreqDist未排序。我认为您正在寻找most_common方法:

from nltk import FreqDist
fdist = FreqDist(['hi','my','name','is','my','name'])
fdist.most_common(2)

返回:

[('my', 2), ('name', 2)]