当前位置: 首页 > 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/a/156416.html

相关文章:

  • redhat虚拟机
  • 算法演练----24点游戏
  • 【小程序】封装网络请求request模块
  • MTSET可溶于DMSO、DMF、THF等有机溶剂,并在水中有轻微的溶解性,91774-25-3
  • 深入理解 Vue v-model 原理与应用
  • Rust 建造者模式
  • 【开源】基于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实现大数据存储查询