分析:

1. 读取小说,以读的形式打开

with open('文件名.txt','r',encoding='utf8') as f:
str = f.read()

2. 切割小说

ret = jieba.lcut(str)

3. 统计所有词语出现次数 --> 准备一个字典

dic = {}
for word in ret:
if len(word) == 1: # 去掉名字为一个字的
continue
dic[word] = dic.get(word, 0) + 1

  准备一个多余称呼的列表

excluedes = ["诸葛亮","卧龙","玄德","关公","丞相",...]

  如果文中某个人物有多个称呼时,应将多个称呼叠加到某一个称呼上,再将多余的删除

dic['关羽'] = dic['关羽'] + dic['美髯公'] + dic['关公'] + dic['关云长'] + dic['云长']

for i in excluedes:
del dic[i]

4. 对字典进行排序,升序

lis = list(dic.items())
lis.sort(key=lambda x:x[1],reverse=True)

5. 取出出现次数前十的数据

for i in range(10):
print(lis[i][0])

使用jieba分析小说人物出现次数的更多相关文章

  1. 使用jieba分析小说太古神王中,男主更爱谁?去文章中找答案吧!#华为云·寻找黑马程序员#

    欢迎添加华为云小助手微信(微信号:HWCloud002 或 HWCloud003),输入关键字"加群",加入华为云线上技术讨论群:输入关键字"最新活动",获取华 ...

  2. 使用python统计《三国演义》小说里人物出现次数前十名,并实现可视化。

    一.安装所需要的第三方库 jieba (jieba是优秀的中文分词第三分库) pyecharts (一个优秀的数据可视化库) <三国演义>.txt下载地址(提取码:kist ) 使用pyc ...

  3. python统计喜欢的小说主角出场次数

    这周老师布置了一项作业,让我们回去将自己喜欢的小说里面的主角出场次数统计出来,我对这个充满了兴趣,但我遇到了三个问题: (1)一开始选了一部超长的小说(最爱之一),但是运行时老是不行,老是显示下图错误 ...

  4. shell脚本分析 nginx日志访问次数最多及最耗时的页面

    当服务器压力比较大,跑起来很费力时候.我们经常做站点页面优化,会去查找那些页面访问次数比较多,而且比较费时. 找到那些访问次数高,并且比较耗时的地址,就行相关优化,会取得立竿见影的效果的. 下面是我在 ...

  5. python jieba分词小说与词频统计

    1.知识点 """ 1)cut() a) codecs.open() 解决编码问题 b) f.readline() 读取一行,也可以使用f.readlines()读取多行 ...

  6. 文本可视化[二]——《今生今世》人物关系可视化python实现

    文本可视化[二]--<今生今世>人物关系可视化python实现 在文本可视化[一]--<今生今世>词云生成与小说分析一文中,我使用了jieba分词和wordcloud实现了,文 ...

  7. Python 分析到底是谁操纵《庆余年》上了热搜?

    庆余年电视剧终于在前两天上了,这两天赶紧爬取数据看一下它的表现. ​ ​ 庆余年 ​ <庆余年>是作家猫腻的小说.这部从2007年就开更的作品拥有固定的书迷群体,也在文学IP价值榜上有名. ...

  8. R语言-用R眼看琅琊榜小说的正确姿势

    博客总目录:http://www.cnblogs.com/weibaar/p/4507801.html 目录: 零:写在前面的一些废话 一.R眼看琅琊榜的基本原理 1.导入数据 2.筛选数据 3.多条 ...

  9. 分析《令人心动的offer2》网友们都在吐槽什么?

    综艺,是我们劳累了一天的放松方式,也是我们饭后的谈资.看着自己喜欢的综艺,时光足够美.而<令人心动的offer >,就是一个不错的综艺选择.有人说它让自己更自卑了,而我觉得挺有意思. &l ...

随机推荐

  1. kotlin系列文章 --- 3.条件控制

    if表达式 一个if语句包含一个布尔表达式和一条或多条语句 // 基础用法 var max = a if (a<b) max = b // 加上else var max: Int if(a> ...

  2. SpringBoot注入Service失败

    Description: The bean 'userService' could not be injected as a 'com.phy.hemanresoruce.service.UserSe ...

  3. div模拟select/option解决兼容性问题及增加可拓展性

    个人博客: http://mcchen.club 想到做这个模拟的原因是之前使用select>option标签的时候发现没有办法操控option的很多样式,比如line-height等,还会由此 ...

  4. SpringBootSecurity学习(22)前后端分离版之OAuth2.0自定义授权码

    使用JDBC维护授权码 前面的代码中,测试流程第一步都是获取授权码,然后再携带授权码去申请令牌,授权码示例如下: 产生的授权码默认是 6 位的,产生以后并没有做任何管理,可以说是一个临时性的授权码,o ...

  5. 【TencentOS tiny】深度源码分析(1)——task

    任务的基本概念 从系统的角度看,任务是竞争系统资源的最小运行单元.TencentOS tiny是一个支持多任务的操作系统,任务可以使用或等待CPU.使用内存空间等系统资源,并独立于其它任务运行,理论上 ...

  6. Kubernetes中的PV和PVC是啥

    K8S引入了一组叫作Persistent Volume Claim(PVC)和Persistent Volume(PV)的API对象,大大降低了用户声明和使用持久化Volume的门槛. 在Pod的Vo ...

  7. SQL server数据库系统部分常用的存储过程及说明

    --SQL server数据库系统常用的存储过程 exec sp_databases --能看到所有具有权限的数据库名,大小和备注 exec sp_helpdb --数据库名,大小,管理员,创建时间状 ...

  8. SpringBoot2.x--入门篇--01--HelloWorld

    很多人说,学习springboot至少需要spring基础,servlet基础等等,笔者不敢苟同.凡是有一定java基础的人,都可以直接学习springboot,当学到原理和源码时,通过查缺补漏的方式 ...

  9. webpack4.0入门总结

    1. 安装webpack: // 初始化.安装webpack以及webpack-clinpm init npm install --save-dev webpack webpack-cli 2.创建配 ...

  10. 并发编程之Fork/Join

    并发与并行 并发:多个进程交替执行. 并行:多个进程同时进行,不存在线程的上下文切换. 并发与并行的目的都是使CPU的利用率达到最大.Fork/Join就是为了尽可能提高硬件的使用率而应运而生的. 计 ...