需要借助一个中文词频分析工具--jieba库。

什么是jieba库

jieba是Python中一个重要的第三方中文分词函数库

通过指令pip install jieba 安装

使用:

>>>import jieba

>>>jieba.lcut("中国是一个伟大的国家")

['中国', '是', '一个', '伟大', '的', '国家']

jieba库解析

jieba库主要提供分词功能,可以辅助自定义分词词典。

例:


实现思路

主要思路

提取文本,将文本分成若干词组,将不需要的词组删除,遍历词组统计词组出现的次数。

具体步骤

  • 首先将文本读取并保存为字符串;
  • 使用jieba库的lcut函数将字符串分开返回词组列表;
  • 遍历词组列表计算词组出现次数将,词组及次数添加到字典中(同时需要考虑人物多称的情况)
  • 需要考虑jieba库会分开的是所有词语,而不是具体的人物名称,因此需要考虑将不需要的词组排除;
  • 将字典的键和值保存为列表,并按次数排序,最后输出。

代码实现

import jieba
excludes = {"将军","却说","荆州","二人","不可","不能","如此","商议","如何","主公","军士","左右","军马","引兵","次日","大喜","天下","东吴","于是","今日","不敢","魏兵","陛下","一人","都督","人马","不知","汉中"}#此字典用于放需要排除的非人物词语
txt = open("三国演义.txt","r",encoding='utf-8').read();
words = jieba.lcut(txt) #使用jieba库对文本进行精确分词,返回列表类型
counts = {} #使用字典保存各人物的出场次数
for word in words:if len(word) == 1:#词长度为1的情况直接下一个词continueelif word == "诸葛亮" or word == "孔明曰":#修改文本中出现的人物名字,一个人物可能有多个别称rword = "孔明"elif word == "关公" or word == "云长":rword = "关羽"elif word == "玄德" or word == "玄德曰":rword = "刘备"elif word == "孟德" or word == "丞相":rword = "曹操"else:rword = wordcounts[rword] = counts.get(rword,0) + 1#将rword添加到字典中,如果不存在字典中则返回0,如果存在则在原值加1
for word in excludes:#遍历需要排除词语的字典,将其在word中删除del(counts[word])
items = list(counts.items())#将字典的元素和对应的值,转换为存放元组的列表,以便排序
items.sort(key = lambda x:x[1],reverse=True)#按照列表中元组的第二个元素(即次数)排序
for i in range(10):#输出场次数最多的前十名人物word,count = items[i]print("{0:<10}{1:>5}".format(word,count))

运行结果


【Python】 -- 使用jieba库实现对《三国演义》人物出场次数统计相关推荐

  1. 红楼梦人物出场次数统计

    这个也是学习过程中的一个成果吧,希望大家能批评指正. 红楼梦人物出场次数统计.亮点在于,考虑了人物的别称,以及有较为丰富的排除词库.如凤姐的称谓就有许多,凤辣子,凤姐,王熙凤等等,还有黛玉,有林黛玉, ...

  2. python三国演义人物 统计分析_python统计三国演义人物出场次数

    [Python] 纯文本查看 复制代码import jieba excludes = {"将军", "却说", "荆州", "二人 ...

  3. Python词频统计——《红楼梦》人物出场次数统计

    代码实现 import jieba as j names = ['贾母', '贾珍', '贾蓉', '贾赦', '贾政', '袭人', '王熙凤', '紫鹃', '翠缕', '香菱','豆官', '薛 ...

  4. Python零基础入门习题(六)红楼梦人物出场次数统计

    前言 Python语言简单易用,可读性强.在了解基础语法后,你就可以来尝试解决以下的题目.放心,本系列的文章都对新手非常友好. 一.生日悖论 生日悖论是指在不少于 23 个人中至少有两人生日相同的概率 ...

  5. 三国演义人物出场顺序统计(文本词频统计)

    1.使用jieba库 对中文文本进行分词 2.使用字典表达词频 (与hamlet案例相似) import jieba txt = open("threekingdoms.txt", ...

  6. 词频统计——三国人物出场次数统计

    #三国演义人物的升级版 #1.给出排除词库 #CalThreeKingdomsV1.py # import jieba # txt = open("threekingdoms.txt&quo ...

  7. 红楼梦人物出场统计python_Python程序设计习题3——红楼梦人物出场次数统计

    统计<红楼梦>中前20位出场最多的人物 使用Python编写程序,统计书籍<红楼梦>中前20位出场次数最多的人物 #红楼梦人物出场统计 import jieba txt=ope ...

  8. Ubuntu的中文是哪种字体?python的词云分析和 三国演义人物出场统计

    Ubuntu的默认中文是哪种呢? fc-list :lang=zh 用这个命令查看出来 NotoSerifCJK-Bold.ttc 为什么要知道这个呢? 来看一块python3代码 import ji ...

  9. 【jieba库】使用jieba库对《三国演义》全篇进行分词处理,统计《三国演义》中各个人物的出场次数,打印次数排名前五的人物姓名具有排除词库和合并不同称谓功能的Python程序|CSDN创作打卡

    程序解决问题描述如下: 使用jieba库,该语句可以分割中文语句中的词汇.同时掌握对txt文档的读写操作,对其中出现的高频词汇进行了统计.建立一个排除词库,用于排除程序对一些无意义的词的计数,使得最终 ...

最新文章

  1. 洞察疫情,微软推出新冠数据分析网站COVID Insights
  2. windows(xshell)免密码登录
  3. 程序员面试题精选100题(51)-顺时针打印矩阵[算法]
  4. Internet Explorer 11 Enterprise Mode 排错
  5. ABAP中有关于换行符,TAB KEY等
  6. linux 产生三位数的随机数
  7. bashrc文件实例
  8. 【原创】构建高性能ASP.NET站点 开篇
  9. RT-Thread I/O设备模型
  10. 重塑自己的语音 笔记1
  11. android 修复工具下载,安卓数据恢复软件(FonePaw for Android)
  12. Adobe Illustrator for Mac 2020 24.0.1版 — 矢量绘图工具
  13. 群晖(Synology)配置 NAS + 软路由 续
  14. 无锡太湖学院计算机科学技术,无锡太湖学院
  15. vue动态绑定背景图片
  16. pycharm 将本地文件添加到library root
  17. Go语言Win10环境配置
  18. 有苦有乐的算法 --- 并查集的实现原理
  19. 用于C U I应用程序:/ S U B S Y S T E M : C O N D O L E,而用于G U I :S U B S Y S T E M : W
  20. dnf修改服务器制裁24,DNF关于对非法第三方软件封号制裁的重申

热门文章

  1. 《遇见未知的自己》书摘
  2. 高绩效人士的四象限法则
  3. Material Recognition in the Wild with the Materials in Context Database论文笔记
  4. keycloak mysql_Keycloak 使用手册
  5. nodejs读写json数据
  6. 阿里one java agent的可插拔java agent运行
  7. 4.2 PCIe体系结构的组成部件
  8. 登录失败 12306服务器不稳定,12306官方再次出现服务器故障 无法购票
  9. Java:简述对象转换为字符串的三种方式
  10. vb读取计算机mac地址,用VB获取MAC地址