使用FreqDist,python总结单词频率的数量
Posted
技术标签:
【中文标题】使用FreqDist,python总结单词频率的数量【英文标题】:Sum up the number of words frequency using FreqDist, python 【发布时间】:2011-05-11 13:20:01 【问题描述】:如何使用 FreqDist 中的 fd.items() 总结词频数?
>>> fd = FreqDist(text)
>>> most_freq_w = fd.keys()[:10] #gives me the most 10 frequent words in the text
>>> #here I should sum up numbers of each of these 10 freq words appear in the text
例如如果most_freq_w
中的每个单词出现10次,结果应该是100
!!!我不需要文本中所有单词的数量,只需要最常用的 10 个
【问题讨论】:
想想(这简直太简单了)。或者至少向我们展示您的尝试。 我试图从most_freq_w
中取出fd.items
- 但这绝对是错误的,因为结果是0
【参考方案1】:
我不熟悉nltk
,但由于FreqDist
派生自dict
,那么以下应该可以工作:
v = fd.values()
v.sort()
count = sum(v[-10:])
【讨论】:
注意:FreqDist
已经返回按降序排序的值,即count = sum(fd.values()[:10])
产生与上述相同的结果。【参考方案2】:
要查找一个单词在语料库中出现的次数(你的一段文字):
raw="<your file>"
tokens = nltk.word_tokenize(raw)
fd = FreqDist(tokens)
print fd['<your word here>']
【讨论】:
【参考方案3】:它有一个漂亮的打印功能
fd.pprint()
会做的。
【讨论】:
【参考方案4】:如果FreqDist
是单词到频率的映射:
sum(map(fd.get, most_freq_w))
【讨论】:
以上是关于使用FreqDist,python总结单词频率的数量的主要内容,如果未能解决你的问题,请参考以下文章