前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >python文件操作案例之统计词频

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

作者头像
jiankang666
发布2022-12-05 13:48:25
4680
发布2022-12-05 13:48:25
举报
文章被收录于专栏:java基础笔记

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

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-09-30,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 java基础笔记 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、背景
  • 二、jieba用法
  • 三、统计词频案例
  • 四、参考
  • 五、总结
相关产品与服务
云开发 CloudBase
云开发(Tencent CloudBase,TCB)是腾讯云提供的云原生一体化开发环境和工具平台,为200万+企业和开发者提供高可用、自动弹性扩缩的后端云服务,可用于云端一体化开发多种端应用(小程序、公众号、Web 应用等),避免了应用开发过程中繁琐的服务器搭建及运维,开发者可以专注于业务逻辑的实现,开发门槛更低,效率更高。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档