我不确定自己是否正确理解了Python中FreqDist函数的工作方式。因为我在按照教程学习,根据教程所说,下面的代码会为给定的单词列表构建一个频率分布,并计算出使用频率最高的x个单词。(在下面的示例中,corpus是一个NLTK语料库,file是该语料库中某个文件的文件名)
words = corpus.words('file.txt')
fd_words = nltk.FreqDist(word.lower() for word in words)
fd_words.items()[:x]
然而,当我在Python上执行以下命令时,它似乎表示相反:
However, when I go through the following commands on Python, it seems to suggest otherwise:
>>> 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 个单词吗?
有人能告诉我是否我做错了什么,或者错误在我正在跟随的教程中吗?
FreqDist
的排序行为已更改。这可能会解释混淆的原因。另外:使用fd_words.most_common()
而不带参数,以按降序获取所有内容。 - alexis