如何在Python中提取文本10个高频词并仅返回单词列表(禁用NLTK)
问题描述
我有一段文本,想要提取其中出现频率最高的10个单词。使用text.most_common(10)方法时,得到的是包含出现次数的元组(不需要次数),如何修改代码使输出仅为单词组成的列表?注:程序中不能使用nltk库。
我的代码
tuple(map(str, Counter(text).most_common(10)))
当前输出
('science', 55)
期望输出
["science"]
解决方案
使用列表推导式提取每个元组的第一个元素即可:
from collections import Counter # 替换text为你的实际文本内容 top_10_words = [word for word, count in Counter(text).most_common(10)] print(top_10_words)
说明
Counter(text).most_common(10)返回的是前10个高频词的元组列表,每个元组结构为(单词, 出现次数)- 列表推导式遍历这些元组,只保留元组的第一个元素(即单词),最终生成仅包含单词的列表
- 你原代码里的
tuple(map(str, ...))会把整个元组转为字符串,不符合需求,替换为上述写法即可得到目标输出
内容的提问来源于stack exchange,提问作者Asimina
相关产品推荐
相关产品推荐

