统计词频并输出高频词汇。

任务:统计词频并输出高频词汇。

所给数据为某日中国日报英文版的一篇新闻报道, 现要求使用Python语言编写程序统计其中出线频率最高的十个单词, 输出对应的单词内容和频率(以字典形式呈现) 。 

说明:

(1) 需在代码中排除标点符号干扰,即标点符号不被当作单词或单词的一部分。

(2) 若单词中有大写字母需转换为小写字母进行统计, 即大小写不敏感。

(3)空格不记为单词。

 代码:

先读文本:

file =open("./word.txt","r",encoding="utf-8",)
text = file.read()

创建一个翻译表translator,将字符串中所有的标点符号映射成空字符串。

string.punctuation 是 Python 标准库 string 模块中的一个常量,它包含了所有的 ASCII 标点符号。这些标点符号被定义为那些通常不作为单词一部分的字符,例如逗号、句号、分号、冒号、引号、括号、各种标点和特殊符号等。“!"#$%&'()*+,-./:;<=>?@[\]^_`{|}~”。

translator = str.maketrans('', '', string.punctuation)
#str.maketrans('要替换的字符集合', '替换后的字符集合', 指定替换的字符集合)
cleaned_text = text.translate(translator)
#使用translate移除所有的标点符号并存在cleaned_text中

转化为小写并且分割为单词列表

cleaned_text = cleaned_text.lower()
words = cleaned_text.split()

使用counter创建一个计数器,统计每个单词出现的次数,用most_common获取频率最高的十个。

最后转化成字典打印出来。

word_counts = Counter(words)
top_ten = word_counts.most_common(10)
print(dict(top_ten))

完整代码:

import string
from collections import Counter

# 假设文本数据存储在 text 变量中
file =open("./word.txt","r",encoding="utf-8",)
text = file.read()

# 移除标点符号
translator = str.maketrans('', '', string.punctuation)
cleaned_text = text.translate(translator)

# 转换为小写
cleaned_text = cleaned_text.lower()

# 分割文本为单词列表
words = cleaned_text.split()

# 统计单词频率
word_counts = Counter(words)

# 获取出现频率最高的十个单词
top_ten = word_counts.most_common(10)

# 输出结果
print(dict(top_ten))

输出:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值