统计unique_words列表词汇在dataset['text']中的出现次数并展示TopK高频词
统计指定词汇在文本中的出现频率并取Top K
1. 准备示例数据
import pandas as pd # 目标词汇列表 unique_words = ['ab', 'bc', 'cd', 'de'] # 示例数据集 dataset = pd.DataFrame({ 'id': ['1x', 'p2'], 'text': ['ab cd de th sk gl wlqm dhwka oqbdm', 'de de de lm eh nfkie qhas hof'] })
2. 统计每个目标词汇的总出现次数
方法一:遍历统计(适合词汇量较少场景)
word_counts = {} for word in unique_words: # 累加所有文本中该词汇的出现次数 total_count = dataset['text'].str.count(word).sum() word_counts[word] = total_count
方法二:全局拆分统计(适合词汇量较大场景)
from collections import Counter # 合并所有文本并按空格拆分出所有词汇 all_text_words = ' '.join(dataset['text']).split() # 统计所有词汇出现次数,再过滤出目标词汇 full_counter = Counter(all_text_words) word_counts = {word: full_counter.get(word, 0) for word in unique_words}
3. 提取Top K高频词汇
k = 3 # 按出现次数降序排序,取前k个结果 top_k_words = sorted(word_counts.items(), key=lambda x: x[1], reverse=True)[:k] # 输出结果 for word, count in top_k_words: print(f"'{word}', {count}")
示例运行输出
'de', 4 'ab', 1 'cd', 1
注意事项
- 若文本存在大小写差异,需先统一格式:
dataset['text'] = dataset['text'].str.lower() - 若文本包含标点符号,需先清洗:
dataset['text'] = dataset['text'].str.replace(r'[^\w\s]', '', regex=True)
内容的提问来源于stack exchange,提问作者sasha11
相关产品推荐
相关产品推荐

