博主简介:原互联网大厂tencent员工,网安巨头Venustech员工,阿里云开发社区专家博主,微信公众号java基础笔记优质创作者,csdn优质创作博主,创业者,知识共享者,欢迎关注,点赞,收藏。
一、背景
Python 是一门易于学习、功能强大的编程语言。它提供了高效的高级数据结构,还能简单有效地面向对象编程。Python 优雅的语法和动态类型以及解释型语言的本质,使它成为多数平台上写脚本和快速开发应用的理想语言。下面我们来介绍一下python的文件统计词频相关知识。
二、jieba用法
jieba是Python中一个重要的第三方中文分词函数库。由于jieba库是第三方库,不是Python安装包自带的,因此,需要通过pip指令进行安装,pip安装命令如下:
代码语言:javascript复制C:>pip3 install jieba
安装完成后,可调用库中的lcut()函数进行分词,例如:
代码语言:javascript复制>>>import jieba
>>>jieba.lcut('我们正在努力学习Python语言')
['我们', '正在', '努力学习', 'Python', '语言']
三、统计词频案例
例:统计《三国演义》中人物出场次数。需要自行下载一个三国演义.txt文件,或者创建一个,填写一些名字信息。
代码语言:javascript复制import jieba #导入jieba库
excludes = {"将军","却说","主公","荆州","二人","不可","不能","如此"} #词库
with open("三国演义.txt", "r")as file:
txt =file.read() #打开文件并读取文件内容
words = jieba.lcut(txt) #进行分词,将结果放入words列表中
counts = {} #定义字典用于存储词语和计数器
for word in words: #遍历words
if len(word) == 1: #排除单个字符的分词结果
continue
#同一人物不同名字的处理功能
elif word == "诸葛亮" or word == "孔明曰":
rword = "孔明"
elif word == "关公" or word == "云长":
rword = "关羽"
elif word == "玄德" or word == "玄德曰":
rword = "刘备"
elif word == "孟德" or word == "丞相":
rword = "曹操"
else:
rword = word
counts[rword] = counts.get(rword,0) 1 #计数器累加
for word in excludes: #排除词库中内容
del(counts[word])
items = list(counts.items()) #将字典元素转换为列表
items.sort(key=lambda x:x[1], reverse=True) #排序
for i in range(5): #输出前5项
word, count = items[i]
print ("{0:<10}{1:>5}".format(word, count))
结果如下。
四、参考
1、廖雪峰的官网 2、python官网 3、Python编程案例教程
五、总结
以上就是就是关于Python的文件统计词频相关知识,可以参考一下,觉得不错的话,欢迎点赞、收藏、在看,欢迎微信搜索关注java基础笔记,后面会不断更新相关知识,大家一起进步。