python文件操作案例之统计词频

2022-12-05 13:48:25 浏览数 (1)

博主简介:原互联网大厂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基础笔记,后面会不断更新相关知识,大家一起进步。

0 人点赞