0

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

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

例如:

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

我已经尝试过类似 ftable.N[sing] 但没有运气。

谢谢!

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

4

1 回答 1

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).

于 2012-11-15T05:30:24.370 回答