利用python实现词频统计
这是我们老师的作业 代码中都有注释
要求
词频统计软件:
1)从文本中读入数据:(文件的输入输出)
2)不区分大小写,去除特殊字符。
3) 统计单词 例如:about :10 并统计总共多少单词
4)对单词排序。出现次数
5)输出词频最高的10个单词和次数
6)把统计结果存入文本
1.文件的读取,区分大小写,去除特殊字符
import redef getword():# 读取文件f=open('read.txt','r',encoding='utf-8')# 将大写转化成小写word=f.read().lower()# 关闭文件f.close()#利用正则除去特殊字符 |\符+list=re.split('\s+|\,+|\.+|\!+|\:+|\?+|\;+|\(+|\)+|\-+|\_+|\=+|\++|\“+|\、+|\/+|\{+|\}+|\”+|\:+|\。+|\“+|\[+|\]+|\【+|\】+|\—+|\%+|\"+',word)# 遍历列表 去除列表中的空格i = 0while i < len(list):if list[i] == '':list.remove(list[i])i -= 1i += 1# for a in list:# if a == "":# list.remove(a)#用for循环的话如果存在多个空字符串 其列表会随时发生变化,导致无法正常删除空字符串 所以在使用for…in循环遍历列表时,最好不要对元素进行增删操作# 对于others'优化 如果最后一个字符是‘就将’其去掉for i in range(len(list)):l=list[i]if list[i][-1] == "'":list[i] = list[i][:-1]return list
2. 统计,排序
from getfilewords import getworddef statistics():dict={} #定义一个空的字典,在后面的运算中逐步添加数据words=getword()for word in words: #遍历整个列表if word in dict.keys(): #判断当前单词是否已经存在 dict.keys()是已存进字典中的单词# 补充:keys() 方法用于返回字典中的所有键;# values() 方法用于返回字典中所有键对应的值;#详情见Test1dict[word]=dict[word]+1 #在当前单词的个数上加 1else:dict[word]=1 #当前单词第一次出现时 会把单词写入dict字典里 格式为 ‘单词’=1
#排序w_order=sorted(dict.items(),key=lambda x:x[1],reverse=True)
# print(dict.items())
# dict.items()返回的是列表
# 按字典集合中,每一个元组的第二个元素排列。
# sorted会对dict.items()这个list进行遍历,把list中的每一个元素,也就是每一个tuple()当做x传入匿名函数lambda x:x[1],函数返回值为x[1]
# reverse属性True为降序 False为升序return w_order #返回排序后的列表
3.结果写入文本
from WordStatistics import statistics
def writefile():w_order=statistics()f = open('result.txt', 'w',encoding='utf-8')print("文章单词总个数:",+len(getword()),file=f)print("文章单词总个数:", +len(getword()))# 写入文件print("词频最高的10个单词和次数",file=f)print("词频最高的10个单词和次数")w_order10=w_order[:10]#将列表的前十位提取并且遍历 输出key(单词)和values(次数)for key,values in w_order10:print(key,':',values,file=f)print(key, ':', values)#遍历列表中的所有数据print("统计结果",file=f)for key,values in w_order:print(key,':',values,file=f)f.close()#关闭文件
4.程序入口
import osfrom writefile import writefileprint("词频统计软件")
print("正在统计中。。。")
print("统计成功,结果保存到result.txt")
writefile()
print("程序运行结束")
os.system("pause")
5.运行截图
这是需要统计的文本
运行程序
运行结果
最后成功实现!
利用python实现词频统计相关推荐
- 利用Python进行词频统计并生成词云——以京东商城iphone13购物评论为例
本文介绍一种快速生成关键词-词频统计-词云生成的办法,作为Python数据分析初级技能,除基本运行环境外无需其他软件或工具,且流程搭建成功后可重复利用,可极大提升相似事务的处理效率. 一.操作环境 1 ...
- 利用python进行词频统计_利用python做词频计算(word-count)
主要针对英文文本做出词频计算,因为英文是用空格作为词语分割的.中文需要用到分词的库. 下面就用奥巴马的一片演讲做词频计算 1,分析的文本 speech_etxt = ''' My fellow cit ...
- 利用python做词频统计
方法一:利用python字典的方式 speech_etxt = ''' My fellow citizens: I stand here today humbled by the task befor ...
- python 英语词频统计软件_Python数据挖掘——文本分析
作者 | zhouyue65 来源 | 君泉计量 文本挖掘:从大量文本数据中抽取出有价值的知识,并且利用这些知识重新组织信息的过程. 一.语料库(Corpus) 语料库是我们要分析的所有文档的集合. ...
- hadoop使用mapreduce统计词频_hadoop利用mapreduce运行词频统计(非例程)
1.运行环境 1.Ubuntu16.04单系统 2.hadoop-3.2.1 2.操作步骤 1.使用eclipse编写map reduce run 函数 2.导出jar包 3.将需要进行词频统计的文件 ...
- Python英文词频统计(哈姆雷特)程序示例
今天继续给大家介绍Python相关知识,本文主要内容是Python英文词频统计程序示例,主要是对英文文本--<哈姆雷特>进行分词. 一.英文文本词频统计思路 想要对<哈姆雷特> ...
- python进行词频统计_如何利用Python进行文本词频统计
欢迎点击「算法与编程之美」↑关注我们! 本文首发于微信公众号:"算法与编程之美",欢迎关注,及时了解更多此系列文章. 问题描述 Python在自然语言处理这个方面,有其天然的优势: ...
- python 英语词频统计软件_Python实现统计英文文章词频的方法分析
本文实例讲述了Python实现统计英文文章词频的方法.分享给大家供大家参考,具体如下: 应用介绍: 统计英文文章词频是很常见的需求,本文利用python实现. 思路分析: 1.把英文文章的每个单词放到 ...
- python英文词频统计代码_python实现中文和英文的词频统计功能方法汇总
python的思维就是让我们用尽可能少的代码来解决问题.对于词频的统计,就代码层面而言,实现的方式也是有很多种的.之所以单独谈到统计词频这个问题,是因为它在统计和数据挖掘方面经常会用到,尤其是处理分类 ...
- python英文词频统计-Python实现统计英文文章词频的方法分析
本文实例讲述了Python实现统计英文文章词频的方法.分享给大家供大家参考,具体如下: 应用介绍: 统计英文文章词频是很常见的需求,本文利用python实现. 思路分析: 1.把英文文章的每个单词放到 ...
最新文章
- php 自动测试,PHP自动化测试
- html js css倒计时,js+css3倒计时动画特效
- 警惕使用System.Environment.CurrentDirectory遇到的坑
- 问题 H: 方块填数(2012年蓝桥决赛第5题--dfs)
- 使用Properties集合存储数据,遍历取出Properties集合中的数据
- JavaScript 引擎和 Just-in-Time 编译概念,Hot Function 的简单介绍
- java oauth server_Spring OAuth2 ResourceServer外部AuthorizationServer
- python加载图片并显示_python OpenCV 读取并显示图像
- 项目中查询数据和模糊查询
- spring mvc使用html页面,Spring MVC静态页面
- Django网站管理--ModelAdmin
- API接口设计之RESTful软件架构风格
- OS篇-Bochs在Ubuntu下的安装教程
- 手机电视(CMMB+MBBMS)安全架构原理
- hdu 5455 Fang Fang 坑题
- 计算机网络总线型结构优,总线型拓扑结构优缺点是什么
- OpenWrt之DNS域名解析系统(/etc/resolv.conf)
- oracle函数按周,关于oracle按日周月分组统计以及next_day()函数详解
- html5设置全屏背景图,HTML5 body设置全屏背景图片 如何让body的背景图片自适应整个屏----实战经验...
- 《MySQL系列》MySQL详细入门教程