返回频率分布如何作为整数

时间:2012-11-15 05:15:46

标签: python nltk

我正在使用FreqDist来获取出现在语料库中的单词的出现次数,因为它非常快。问题是ftable没有将答案作为整数返回,我需要对其进行一些基本操作。

words = brown.words()
content = [w for w in words if w.lower()]
ftable = nltk.FreqDist(content)

e.g:

percent = ftable[sing]/ftable[s])*100

我尝试过像ftable.N [唱歌],但没有运气。

谢谢!

编辑:也在评论中。 w.lower()是小写语料库中的单词,这样当我对它们运行for循环时,我只是比较小写值,因为ftable完全匹配字符串。如你好!=你好 如果使用Counter就快了吗? 是否有一种简单的方法可以降低被搜索的语料库/单词列表的大小?

1 个答案:

答案 0 :(得分:0)

看起来你正在寻找collections.Counter,而不是频率分布:

>>> from collections import Counter
>>> words = ['a', 'a', 'a', 'b']
>>> Counter(words)
Counter({'a': 3, 'b': 1})

此外,[w for w in words if w.lower()]可能有点慢。您可以使用filter(None, words)来加快速度。