Nltk .most_common(),返回的顺序是什么?

时间:2016-04-14 10:27:47

标签: nltk n-gram frequency-analysis human-language

我在某些句子中找到了经常使用的双字母组合:

import nltk 
from nltk import ngrams
mydata = “xxxxx"
mylist = mydata.split()
mybigrams =list(ngrams(mylist, 2))
fd = nltk.FreqDist(mybigrams)
print(fd.most_common())

在打印出具有最常见频率的双字母时,一次出现7次,其他所有95只其他双子座只发生一次。然而,当将双字母组合与我的句子进行比较时,我看不出所有频率1的双子语被打印出来的逻辑顺序。有没有人知道是否有任何逻辑方式.most_common()打印双字母或是随机生成的

提前致谢

1 个答案:

答案 0 :(得分:3)

简短回答,基于collections.Counter.most_common的文档:

  

具有相同计数的元素是任意排序的:

在当前版本的NLTK中,nltk.FreqDist基于nltk.compat.Counter。在Python 2.7和3.x上,collections.Counter将从标准库导入。在Python 2.6上,NLTK提供了自己的实现。

有关详细信息,请查看源代码:
https://github.com/nltk/nltk/blob/develop/nltk/compat.py

总之,在不检查所有可能的版本配置的情况下,您不能期望订购具有相同频率的单词。