在Python中统计高频词通常涉及以下步骤:
预处理文本:
将文本转换为小写,删除标点符号和数字,分割文本为单词列表。
创建词频字典:
使用`collections.Counter`类来统计每个单词出现的次数。
排序词频:
根据单词出现的频率对字典进行排序,通常是从出现次数最多的单词开始。
提取高频词:
从排序后的列表中提取出现频率最高的n个单词及其出现次数。
返回结果:
返回一个包含n个高频词及其出现次数的元组列表。
下面是一个简单的函数实现,用于统计给定文本中n个出现频率最高的单词:
from collections import Counter
def count_words(s, n):
预处理文本
words = s.lower().split()
创建词频字典
word_counts = Counter(words)
提取高频词
most_common_words = word_counts.most_common(n)
return most_common_words
示例使用
s = "betty bought a bit of butter but the butter was bitter"
print(count_words(s, 3))
输出结果:
[('butter', 2), ('a', 1), ('betty', 1)]
这个函数会返回一个元组列表,包含出现次数最高的n个单词及其次数,按出现次数降序排列,如果出现次数相同,则按字母顺序排列。
如果你需要更复杂的文本处理,比如中文文本的分词和词频统计,可以使用`jieba`库进行分词,并结合`collections.Counter`来统计词频。