我正在使用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就快了吗? 是否有一种简单的方法可以降低被搜索的语料库/单词列表的大小?
答案 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)
来加快速度。