带有计数器的列表的计数元素

问题描述 投票:1回答:1

我是python和编程的新手,需要您的帮助。

我正在尝试使用nltk.word_tokenizeCounter来计算文本中最常见的单词。当我获得文本的所有元素的列表并且想要计算所有元素时,Counter仅计算字母。

这是代码:

from nltk.tokenize import word_tokenize

word_counter = Counter()

test3 = "hello, hello, how are you? It's me - Boris"
words = word_tokenize(test3)
print(words)
['hello', ',', 'hello', ',', 'how', 'are', 'you', '?', 'It', "'s", 'me', '-', 'Boris']

for word in words:
    word_counter.update(word)
print(word_counter)

输出:

Counter({'o': 5, 'e': 4, 'l': 4, 'h': 3, ',': 2, 'r': 2, 's': 2, 'w': 1, 'a': 1, 'y': 1, 'u': 1, '?': 1, 'I': 1, 't': 1, "'": 1, 'm': 1, '-': 1, 'B': 1, 'i': 1})

我该如何解决?我浏览了一些主题,他们用text.split()解决了这个问题,但没有nltk那么精确。

谢谢!

python nltk counter
1个回答
1
投票

只需如下使用Counter

Counter

word_counter = Counter(words) 接受一个可迭代的并更新该可迭代产生的元素的计数。在循环中,这就是单词的字母(记住字符串是可迭代的)。如果要使用Counter.update,则可以执行以下操作:

Counter.update

但是除非您要对多个单词列表重复第二步,否则无需将计数器的初始化与实际计数分开。

© www.soinside.com 2019 - 2024. All rights reserved.