>>> import collections, re
>>> texts = ['John likes to watch movies. Mary likes too.', 'John also likes to watch football games.']
>>> bagsofwords = [ collections.Counter(re.findall(r'\w+', txt)) for txt in texts]
>>> bagsofwords[0]
Counter({'likes': 2, 'watch': 1, 'Mary': 1, 'movies': 1, 'John': 1, 'to': 1, 'too': 1})
>>> bagsofwords[1]
Counter({'watch': 1, 'games': 1, 'to': 1, 'likes': 1, 'also': 1, 'John': 1, 'football': 1})
>>> sumbags = sum(bagsofwords, collections.Counter())
>>> sumbags
Counter({'likes': 3, 'watch': 2, 'John': 2, 'to': 2, 'games': 1, 'football': 1, 'Mary': 1, 'movies': 1, 'also': 1, 'too': 1})
>>>
对于bagsofwords[0]
,是否可以访问字符串"likes"
及其计数?
答案 0 :(得分:1)
最简单的方法是,
dictofwords = dict(bagsofwords[0])
for word, count in dictofwords.iteritems():
print word, count
<强>输出:强>
电影1
看1
到1
喜欢2
喜欢2
约翰1 玛丽1 太1
您可以按如下方式迭代计数器。
for i in bagsofwords[0].elements():
print i, bagsofwords[0][i]
<强>输出:强>
电影1
看1
到1
喜欢2
喜欢2
约翰1 玛丽1 太1
Counter有一个名为most_common()
的内置方法。使用它可以以排序的形式获取它。
for i in bagsofwords[0].most_common():
print i[0], i[1]
<强>输出:强>
喜欢2
电影1
看1
到1
约翰1 玛丽1 太1
希望它有所帮助! :)