我试图在另一个单词列表中找到一个单词列表的出现。 我的代码如下所示:
for cat, text2 in posts:
words=wordpunct_tokenize(text2)
for word in words:
if word in top:
counter[word]+=1
print counter
单词如下所示:[("Post1", "post1" ,"post1"), ("post2","post2), ("post3")]
top看起来像这样"Post1, Post2, Post3"
预期结果将是:
{post1: 3}
{post2, 2}
{post3, 1}
然而我现在得到的输出是:
{'post1': 3})
{'post2': 2, 'post1': 3})
{'post3': 1, 'post2': 2, 'post1': 3})
看起来程序会将上一行中的单词添加到下一行,有谁知道如何解决这个问题?
答案 0 :(得分:2)
提示:Python中有一个类已经做了你想做的事,它被称为Counter
并且它在collections
模块中:
from collections import Counter
c = Counter()
for cat, text2 in posts:
c.update(word for word in wordpunct_tokenize(text2) if word in top)
最后,c
变量将包含找到的单词的频率计数。