当前位置: 首页 > article >正文

Python词频统计(数据整理)

 请编写程序,对一段英文文本,统计其中所有不同单词的个数,以及词频最大的前10%的单词。

输入格式:

 输入给出一段非空文本,最后以符号#结尾。输入保证存在至少10个不同的单词。

输出格式:

 在第一行中输出文本中所有不同单词的个数。注意“单词”不区分英文大小写。随后按照词频递减的顺序,按照 <词频:单词> 的格式输出词频最大的前10%的单词。若有并列,则按递增字典序输出。

输入样例:

This is a test.

The word "this" is the word with the highest frequency.

Longlonglonglongword should be cut off, so is considered as the same as longlonglonglonee.  But this_8 is different than this, and this, and this...#
this line should be ignored.

输出样例:

23
5:this
4:is

(注意:虽然单词the也出现了4次,但因为我们只要输出前10%(即23个单词中的前2个)单词,而按照字母序,the排第3位,所以不输出。) 

代码示例 :

#定义临时文本段落
text = ""
#定义文本统计字典
text_dic = {}
#多行输入
while True:
    #定义临时缓存并整理
    buffer = input().replace('.','').replace('"','').replace(',','').lower()
    if buffer:
        text += buffer + ' '
        if buffer[-1] == '#':
            text = text.replace('#', '')
            print('text',text)
            break
    else:
        continue
#剪切临时文本存入字典
for x in text.split(' '):
    if x == '':
        continue
    if x not in text_dic:
        text_dic[x] = 1
    else:
        text_dic[x] += 1
#从大到小值排序
sorted_dict = {k: v for k, v in sorted(text_dic.items(), key=lambda item: item[1],reverse = True)}
#文本前百分之十
top_10_percent = sum(sorted_dict.values()) * 0.1
top_10_percent_count = 0
#定义词的种数
words = 0
for x in sorted_dict:
    words += 1
    if top_10_percent_count < top_10_percent:
        top_10_percent_count += sorted_dict[x]
        print(f'{sorted_dict[x]}:{x}')
print(words)

以上代码全为本人亲自手敲,可能有一些错误和不足之处,如有更好的方法和建议,欢迎您在评论区友善讨论。


http://www.kler.cn/news/156416.html

相关文章:

  • 【开源】基于JAVA语言的APK检测管理系统
  • 2024年甘肃省职业院校技能大赛(中职教师组)网络安全竞赛样题卷④
  • h5进行svga动画礼物特效播放的代码实现队列按顺序播放
  • 终端安全管理软件是监控软件吗
  • Cesium 展示——新增需求和分析
  • 2023年关于爬取Bilibili(B站)视频的一些最新资源和案例
  • Synchronized关键字的底层原理
  • 关系型数据库的数据隔离级别Read Committed与Repeatable Read
  • springboot(ssm 二手图书交易系统 图书销售系统Java(codeLW)
  • 删除PPT文件的备注内容
  • python爬虫之创建属于自己的ip代理池
  • 行业分析:2023年木炭行业市场需求及发展前景
  • 鸿蒙基础入门与高频知识点梳理
  • 2.1 Linux C 编程
  • 在一个没有超级用户的mongodb 生产库上如何添加超级用户
  • 【每日OJ —— 110. 平衡二叉树】
  • uniapp微信小程序解决绘制polygon结束时的问题
  • pdfjs,pdf懒加载
  • 高效且实用的表单配置方式:低代码表单上传文件后即刻回显
  • ruoyi+Hadoop+hbase实现大数据存储查询
  • 400页Python学习PDF笔记,全面总结零基础入门看这一篇足够了
  • 《微信小程序开发从入门到实战》学习四十
  • 大数据|计算机毕业设计——基于Django协同过滤算法的房源可视化分析推荐系统的设计与实现
  • flutter开发实战-readmore长文本展开和收缩控件
  • C++学习 --函数对象
  • 线上超市小程序可以做什么活动_提升用户参与度与购物体验
  • 活动回顾|德州仪器嵌入式技术创新发展研讨会(上海站)成功举办,信驰达科技携手TI推动技术创新
  • 学习-java多线程面试题
  • 在 Linux 上修改 Oracle 控制文件、日志文件和数据文件的目录的脚本
  • Rust UI开发(五):iced中如何进行页面布局(pick_list的使用)?(串口调试助手)