我在某些句子中找到了经常使用的双字母组合:
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()打印双字母或是随机生成的
提前致谢
答案 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
总之,在不检查所有可能的版本配置的情况下,您不能期望订购具有相同频率的单词。