这是一个相对简单的问题,但我似乎无法解决它。 我有一个字符串,格式如下:
["category1",("data","data","data")]
["category2", ("data","data","data")]
我称不同类别的文章为“帖子”,我想从数据部分获取最常见的单词。所以我尝试了以下操作:
from nltk.tokenize import wordpunct_tokenize
from collections import defaultdict
freq_dict = defaultdict(int)
for cat, text2 in posts:
tokens = wordpunct_tokenize(text2)
for token in tokens:
if token in freq_dict:
freq_dict[token] += 1
else:
freq_dict[token] = 1
top = sorted(freq_dict, key=freq_dict.get, reverse=True)
top = top[:50]
print top
然而,这将给我每个帖子中的顶部单词。
我需要一个通用的顶部单词列表。
但是,如果我在循环之外去掉“print top”,它只会给我最后一篇文章的结果。
有人有主意吗?
defaultdict
的一个用例。就像这个答案中所述。啊,@Nikolaas,请不要忽略提供所有信息,以便我们可以适当地给出建议,而不是留下半知不解的评论。 - kojiro