python - 使用python排序的词频计数

标签 python sorting word-frequency

我必须使用 python 计算文本中的词频。我想把单词保存在字典里,并对每个单词进行计数。

现在,如果我必须根据出现次数对单词进行排序。我可以用同一个字典而不是使用一个新字典来做吗?它的键作为计数,单词数组作为值?

最佳答案

警告:此示例需要 Python 2.7 或更高版本。

Python 的内置 Counter对象正是您要寻找的。计数单词甚至是文档中的第一个示例:

>>> # Tally occurrences of words in a list
>>> from collections import Counter
>>> cnt = Counter()
>>> for word in ['red', 'blue', 'red', 'green', 'blue', 'blue']:
...     cnt[word] += 1
>>> cnt
Counter({'blue': 3, 'red': 2, 'green': 1})

如注释中所述,Counter 采用可迭代对象,因此上面的示例仅用于说明,相当于:

>>> mywords = ['red', 'blue', 'red', 'green', 'blue', 'blue']
>>> cnt = Counter(mywords)
>>> cnt
Counter({'blue': 3, 'red': 2, 'green': 1})

关于python - 使用python排序的词频计数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4088265/

相关文章:

c - C:如何按频率编号和字母顺序从可变数量的文件中对单词进行排序

python - 仅从输出中删除尾随空格

python - 优化多个for循环

python - 数组中的条件选择

c++ - 按降序对 vector 进行排序

Python 命令行参数文件名

java - 交换排序算法查询

jquery - jqGrid - 对数字和文本进行排序

ruby - 如何在大型集合中有效地计算所有短语?