当前位置:网站首页>txt文件英语单词词频统计
txt文件英语单词词频统计
2022-08-05 05:25:00 【回首思】
目录
一、需求分析
把txt文件里的英语单词按照出现次数排序并生成csv文件,如果次数相同按照单词的md5值来排序
二、相关库列表
- pandas
- re
- collections
- hashlib
三、代码在此
- 打开文件
txt_file = open(file_path, 'r')
- 读取文件内容
txt_data = txt_file.read()
- 字母全小写
txt_lower = txt_data.lower()
- 正则表达式去特殊符号
# 正则表达式去除特殊符号 punc = '~`!#$%^&*()_+-=|\';":/.,?><~·!@#¥%……&*()——+-=“:’;、。,?》《{}\n' # 调用正则表达 txt_query = re.sub(r"[%s]+" % punc, "", txt_lower)
- 调用统计库对词频统计
# 使用空格来对字符串进行裁切 txt_list = txt_query.split(' ') # 调用统计库来对词频进行统计 word = Counter(txt_list)
- 把每个单词的信息写入到一个列表
# 创建一个列表来接收DataFrame原型 pa_list = [] # 把键、值和根据键名生成的md5写入原型里 for key, value in word.items(): pa_list.append([key, value, hashlib.md5(key.encode('utf-8')).hexdigest()])
- 调用pandas完成排序和文件导出
# 生成DataFrame pd_data = pd.DataFrame(pa_list) # 根据值和md5进行排序 dataexclex = pd_data.sort_values([1, 2]) # 把文件导出 dataexclex.to_csv(f'./{new_file_name}.csv')
- 完整代码
import pandas as pd import re from collections import Counter import hashlib def Word_frequency_statistics(file_path,new_file_name): # 打开文件 txt_file = open(file_path, 'r') # 读取文件内容 txt_data = txt_file.read() # 字母小写化 txt_lower = txt_data.lower() # 正则表达式去除特殊符号 punc = '~`!#$%^&*()_+-=|\';":/.,?><~·!@#¥%……&*()——+-=“:’;、。,?》《{}\n' # 调用正则表达 txt_query = re.sub(r"[%s]+" % punc, "", txt_lower) # 使用空格来对字符串进行裁切 txt_list = txt_query.split(' ') # 调用统计库来对词频进行统计 word = Counter(txt_list) # 创建一个列表来接收DataFrame原型 pa_list = [] # 把键、值和根据键名生成的md5写入原型里 for key, value in word.items(): pa_list.append([key, value, hashlib.md5(key.encode('utf-8')).hexdigest()]) # 生成DataFrame pd_data = pd.DataFrame(pa_list) # 根据值和md5进行排序 dataexclex = pd_data.sort_values([1, 2]) # 把文件导出 dataexclex.to_csv(f'./{new_file_name}.csv') # 要词频统计的文件路径 file_path = '' # 导出时的文件名称 new_file_name = '' # 调用函数统计词频 Word_frequency_statistics(file_path,new_file_name)
四、一些问题
我只试过wav文件,mp3文件一个也可以,前提是文件夹里的文件全是要参与的文件,安装库的时候遇到问题简易回退一个大版本0.9.0=>0.8.0实际体验没多大区别。
边栏推荐
- 请问下通过flink sql读取hologres 的两张表的 binlog,然后如何进行join?
- Nacos配置服务的源码解析(全)
- From "dual card dual standby" to "dual communication", vivo took the lead in promoting the implementation of the DSDA architecture
- ROS2下使用ROS1 bag的方法
- 程序员应该这样理解I/O
- Native JS takes you to understand the implementation and use of array methods
- NAT experiment
- config.js相关配置汇总
- VLAN is introduced with the experiment
- wc, grep, tar, vi/vim
猜你喜欢
LinkSLA insists that users come first and creates a sustainable operation and maintenance service plan
sql server duplicate values are counted after
By solving these three problems, the operation and maintenance efficiency will exceed 90% of the hospital
Growth: IT Operations Trends Report
NACOS配置中心设置配置文件
滚动条问题,未解决
The cocos interview answers you are looking for are all here!
cs231n学习记录
One-arm routing experiment and three-layer switch experiment
[Problem has been resolved]-Virtual machine error contains a file system with errors check forced
随机推荐
DevOps流程demo(实操记录)
深入分析若依数据权限@datascope (注解+AOP+动态sql拼接) 【循序渐进,附分析过程】
无法导入torchvision.io.read_image
config.js related configuration summary
LaTeX笔记
产品学习资料
跨域的十种解决方案详解(总结)
What is Alibaba Cloud Express Beauty Station?
Insight into the general trend of the Internet, after reading this article, you will have a thorough understanding of Chinese domain names
摆脱极域软件的限制
Matplotlib绘图笔记
D39_Vector
js判断文字是否超过区域
LeetCode中常用语言的一些基本方法记录
七种让盒子水平垂直居中的方法
教您简单几步实现工业树莓派正确安装RS232转USB驱动
LaTeX 图片加标题 文本分栏自动换行
Difference between link and @improt
VSCode编写OpenCV
Vim tutorial: vimtutor