在nltk书中,有一个问题“使用state_union语料库阅读器来阅读国情咨文中的文本。计算每个文档中男人,女人和人的出现。时间?”
我以为我可以使用像state_union('1945-Truman.txt')。count('men')之类的函数,但是,在此州联合会中有60多个文本,我觉得必须有一个更简单的方法来查看这些单词的计数是每个单词的数量,而不是一遍又一遍地重复此功能。
您可以使用.words()语料库中的函数返回字符串列表(即标记/单词):
>>> from nltk.corpus import brown
>>> brown.words()
[u'The', u'Fulton', u'County', u'Grand', u'Jury', ...]
Run Code Online (Sandbox Code Playgroud)
然后使用该Counter()对象对实例进行计数,请参阅https://docs.python.org/2/library/collections.html#collections.Counter:
>>> wordcounts = Counter(brown.words())
Run Code Online (Sandbox Code Playgroud)
但请注意,计数器区分大小写,请参阅:
>>> from nltk.corpus import brown
>>> from collections import Counter
>>> brown.words()
[u'The', u'Fulton', u'County', u'Grand', u'Jury', ...]
>>> wordcounts = Counter(brown.words())
>>> wordcounts['the']
62713
>>> wordcounts['The']
7258
>>> wordcounts_lower = Counter(i.lower() for i in brown.words())
>>> wordcounts_lower['The']
0
>>> wordcounts_lower['the']
69971
Run Code Online (Sandbox Code Playgroud)