赞
踩
参考教程:B站视频讲解——https://space.bilibili.com/3546616042621301
附件中为2023年政府工作报告,本关要求将报告读取为一个字符串,再利用jieba对中文进行分词,略过停用词后,统计报告中出现的前n个高频词。
输入一个正整数n,将字符串切分为中文词语后,略过停用词(“src/stopword.txt”)和单字词,统计每个长度大于1的词出现的频度,词频从高到低输出前n个高频词语。
为实现自动评测,本关需要在代码前加以下三行语句,用于导入分词库和关闭jieba 日志输出。
import jieba # jieba是中文分词库,将中文句子切分成词。
import logging # 导入模块,用于设置日志级别
jieba.setLogLevel(logging.INFO) # 关闭jieba日志输出
平台会对你编写的代码进行测试,按词频由高到低输出前n个高频词,词频相同时,按出现次序统计。
输出格式为(参考示例):
词语左对齐宽度4;数量右对齐宽度4
10
发展 136
推进 66
建设 60
经济 58
支持 51
实施 46
推动 44
政策 38
政府 36
工作 35
import jieba # jieba是中文分词库,将中文句子切分成词。
import logging # 导入模块,用于设置日志级别
jieba.setLogLevel(logging.INFO) # 关闭jieba日志输出
with open('src/政府工作报告.txt', 'r', encoding='utf-8') as f:
s = f.read()
with open('src/stopword.txt', 'r', encoding='utf-8') as f:
stop = f.read().split() # 读停用词表
s = jieba.lcut(s) # 精确模式分词
s = [c for c in s if c not in stop and len(c)>1]
dic = {}
for c in s: # 统计词频
dic[c] = dic.get(c, 0)+1
n = int(input())
# 排序,高到低
dic = sorted(dic.items(), key=lambda x:x[1], reverse=True)
for k,v in dic[:n]:
print(f'{k:<4}{v:>4}')
有问题欢迎留言~
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。