Python 合并多个TXT文件并统计词频的实现
Python  /  管理员 发布于 6年前   165
需求是:针对三篇英文文章进行分析,计算出现次数最多的 10 个单词
逻辑很清晰简单,不算难, 使用 python 读取多个 txt 文件,将文件的内容写入新的 txt 中,然后对新 txt 文件进行词频统计,得到最终结果。
代码如下:(在Windows 10,Python 3.7.4环境下运行通过)
# coding=utf-8import reimport os# 获取源文件夹的路径下的所有文件sourceFileDir = 'D:\\Python\\txt\\'filenames = os.listdir(sourceFileDir)# 打开当前目录下的 result.txt 文件,如果没有则创建# 文件也可以是其他类型的格式,如 result.jsfile = open('D:\\Python\\result.txt', 'w')# 遍历文件for filename in filenames: filepath = sourceFileDir+'\\'+filename # 遍历单个文件,读取行数,写入内容 for line in open(filepath): file.writelines(line) file.write('\n')# 关闭文件file.close()# 获取单词函数定义def getTxt(): txt = open('result.txt').read() txt = txt.lower() txt = txt.replace(''', '\'') # !"@#$%^&*()+,-./:;<=>?@[\\]_`~{|} for ch in '!"'@#$%^&*()+,-/:;<=>?@[\\]_`~{|}': txt.replace(ch, ' ') return txt# 1.获取单词hamletTxt = getTxt()# 2.切割为列表格式,'' 兼容符号错误情况,只保留英文单词txtArr = re.findall('[a-z\''A-Z]+', hamletTxt)# 3.去除所有遍历统计counts = {}for word in txtArr: # 去掉一些常见无价值词 forbinArr = ['a.', 'the', 'a', 'i'] if word not in forbinArr: counts[word] = counts.get(word, 0) + 1# 4.转换格式,方便打印,将字典转换为列表,次数按从大到小排序countsList = list(counts.items())countsList.sort(key=lambda x: x[1], reverse=True)# 5. 输出结果for i in range(10): word, count = countsList[i] print('{0:<10}{1:>5}'.format(word, count))
效果如下图:
另一种更简单的统计词频的方法:
# coding=utf-8from collections import Counter# words 为读取到的结果 listwords = ['a', 'b' ,'a', 'c', 'v', '4', ',', 'w', 'y', 'y', 'u', 'y', 'r', 't', 'w']wordCounter = Counter(words)print(wordCounter.most_common(10))# output: [('y', 3), ('a', 2), ('w', 2), ('b', 1), ('c', 1), ('v', 1), ('4', 1), (',', 1), ('u', 1), ('r', 1)]
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
123 在
Clash for Windows作者删库跑路了,github已404中评论 按理说只要你在国内,所有的流量进出都在监控范围内,不管你怎么隐藏也没用,想搞你分..原梓番博客 在
在Laravel框架中使用模型Model分表最简单的方法中评论 好久好久都没看友情链接申请了,今天刚看,已经添加。..博主 在
佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 @1111老铁这个不行了,可以看看近期评论的其他文章..1111 在
佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 网站不能打开,博主百忙中能否发个APP下载链接,佛跳墙或极光..路人 在
php中使用hyperf框架调用讯飞星火大模型实现国内版chatgpt功能示例中评论 教程很详细,如果加个前端chatgpt对话页面就完美了..Copyright·© 2019 侯体宗版权所有· 粤ICP备20027696号