题目源自编程教室的“每周一坑”栏目:【每周一坑】三国演义中谁的存在感最强
本文是一位同学(王文亚)提交的解答,因为做得挺好,特转载至专栏,供各位参考。
更多练习题可以在公众号(Crossin的编程教室)里回复关键字 习题

主要任务

  1. 找出《三国演义》中名字出现最多的10人;
  2. 分析主要几个人物120回中,每回出现的次数,结合具体内容,看发生了什么;
  3. 分析人物之间的关系,利用Gephi简单绘图;
  4. 绘制“逐”字词云。

准备工作

1.由于要分析120回中主要人物的出场次数,爬取《三国演义》120回,每回放在一个段落里;len(f.readlines()) = 120.
2.安装主要的python库,如jieba,wordcloud,pandas,codecs,matplotlib,pyecharts, bs4等,还有Gephi;

开始工作

1.首先是获取分成120回每回一行的文件;
url=http://www.purepen.com/sgyy/根据规律爬出120回;

2.找到次数最多的nr(人名)词语;
函数findMostWords, 逐词查看,长度小于2的自动过滤,按照出现次数排序,写入到文件中,大约是长这个样子的...

3.根据找到的词语排序,大约有7238个词汇,然后手动选取超过出现20次以上的词语,大约200条,剔除一些非人名,如“曹兵”等,最终得到52个词;
['曹操', '玄德', '孔明', '关公', '丞相', '孔明曰', '玄德曰', '云长', '张飞', '主公','吕布', '刘备', '孙权', '赵云', '司马懿', '周瑜', '魏延', '袁绍', '马超', '姜维', '黄忠', '诸葛亮', '庞德', '张辽', '刘表', '董卓', '孙策', '鲁肃', '邓艾', '大将军', '张苞', '袁术', '刘玄德', '玄德大', '子龙', '司马', '孔明笑', '公瑾', '操大喜', '翼德', '刘皇叔', '赵子龙', '郭嘉', '仲达', '关云长','操大怒', '玄德问', '阿斗', '刘豫州', '玄德闻', '玄德乃', '曹丞相']

4.逐词匹配上述的52个词,得到52个词分别出现的次数;

5.整理上述52个词汇,将玄德曰,玄德怒,玄德乃,刘皇叔等词汇合并,绘制Top10;

6.根据上述52个词汇,分别分析每一回,利用pandas.DataFrame很方便得到每回52个人分别出现的次数;

表格中有大量的空白,后续使用,需要将空白填充0, DataFrame.fillna(0, inplace=True)

7.绘制一些简单的图;
蜀国主要人物全书分布情况,三位结拜兄弟贯穿前80回左右,等他们退出历史舞台,诸葛亮继续辅佐,支撑着蜀国大业。

诸葛亮在35-40, 80-100回出现了较多次数,自然是 “三顾茅庐”、“火烧七百里联营”、“巧布八阵图”、“七擒孟获” 等较为熟知的历史故事; 同时,80回后诸葛亮出现次数占据了全书中较大范围,也是 “先帝托孤”后“鞠躬尽瘁” 的具体表现。

四位当权者曹操、刘备、孙权、司马懿活动活度,前80回,曹刘孙较为活跃,体现出了三国纷争的局面,读这一部分,厮杀场面也是相当精彩; 待三位同时代的人物退出历史舞台后,逐渐司马懿开始活跃,“一统秦两汉,三分魏蜀吴,两晋前后延”,历史朝代更替,滚滚向前。

分析数据的能力还优待提高,想不出较好的分析的内容,还需多写、多与人沟通交流,提升对数据的认识。
8.分析人物之间的关系。根据全文2700多个自然段,如果一个自然段内同时出现了A和B,将A和B之间的关系+1;
得到Node和Edge两份csv文件,输入到Gephi,得到以下关系图,故事还是围绕这曹刘的纷争开展,诸葛亮的经纬之才也体现的淋漓尽致。

9.词云制作;
PS做了一张图,制作词云。根据各种曰可知书中的对话部分占据了很大一部分章节,读者读起来也更有代入感,身临其境。

真正自己去做的时候,才能一次次填补自己的坑。哈哈哈,加油!

  • *

作者:王文亚

项目地址:

https://github.com/Damon0626/Crossin-Programming-Room/tree/master/09-Analysis%20The%20Three%20Kingdoms

════

其他文章及回答:

如何自学Python | 新手引导 | 精选Python问答 | Python单词表 | 人工智能 | 爬虫 | 我用Python | requests | 计算机视觉

欢迎搜索及关注公众号: Crossin的编程教室

《三国演义》人物数据分析相关推荐

  1. 三国演义人物词频统计-4

    题目来源:Python语言程序设计 授课老师: 嵩天.黄天羽.礼欣 hamlet小说下载路径:https://python123.io/resources/pye/threekingdoms.txt ...

  2. python三国演义人物出场统计ppt_Python学习之四大名著人物出场次数Python代码-Go语言中文社区...

    <三国演义>,<水浒传>,<西游记>的人物出场次数Python代码: 经过代码运行的结果可以看出三国作者对曹操和孔明比较喜爱:水浒作者对宋江和武松比较喜爱:西游作者 ...

  3. 三国演义人物词频统计-1

    题目来源:Python语言程序设计 授课老师: 嵩天.黄天羽.礼欣 hamlet小说下载路径:https://python123.io/resources/pye/threekingdoms.txt ...

  4. 三国演义人物词频统计-3

    题目来源:Python语言程序设计 授课老师: 嵩天.黄天羽.礼欣 hamlet小说下载路径:https://python123.io/resources/pye/threekingdoms.txt ...

  5. 三国演义人物词频统计-2

    题目来源:Python语言程序设计 授课老师: 嵩天.黄天羽.礼欣 hamlet小说下载路径:https://python123.io/resources/pye/threekingdoms.txt ...

  6. 《三国演义》人物数据分析 1

    题目源自编程教室的"每周一坑"栏目:[每周一坑]三国演义中谁的存在感最强 本文是一位同学(王文亚)提交的解答,因为做得挺好,特转载至专栏,供各位参考. 更多练习题可以在公众号(Cr ...

  7. python三国演义人物出场统计_python爬取三国演义文本

    1.目标 python爬取三国演义,生成词云.图表 2.码前须知 项目目标:三国人物名称及出现次数-----数据统计分析 提出问题:哪个人物在三国演义中出现的次数最多?,我们希望通过数据分析来获得答案 ...

  8. 三国演义人物出场统计代码含义_实例2之《三国演义》人物出场统计

    大家好,我是人间富贵花下的贫穷草,简称人间富贵草. jieba(结巴)作为一个优秀的第三方中文分词函数库,今天我们就把它拉出来溜溜. <三国演义>txt文本下载地址: https://ww ...

  9. python三国演义人物出场统计ppt_Python统计三国演义主要人物出场次数

    import jieba #读取三国演义 with open("三国演义.txt",'r',encoding='utf-8') as f: txt= f.read() #进行中文分 ...

最新文章

  1. 踩坑了,JDK8中HashMap依然会产生死循环问题!
  2. 最短编辑距离 python_最短编辑距离算法实现
  3. [原创]windows server 2012 AD架构 试验 系列 – 5 AD备份与还原
  4. c 数据压缩算法_CCSDS图像压缩算法之我见(一)
  5. 几篇关于Hadoop+Hive数据仓库的入门文章
  6. Chrome正在启用HTTP/3,支持IETF QUIC
  7. 数据结构之B树查找、插入、删除详解
  8. google hacking 记录
  9. 自然语言处理seq2seq模型实现人工智能对对联(基于TensorFlow框架)
  10. 网络转载的小波框架总结
  11. python 字符串前面加 u, r, b的含义
  12. JS将数字金额转换为大写人民币汉字
  13. 显示屏漏光会有什么影响
  14. iGrimace iOS7-Ios8-ios一键新机 系统 NZT NEO 非V8锤子IG基本操作全教程:v3 v8
  15. 程序员如何保持身心健康?
  16. 上海Java培训机构排名榜单已出炉,实力学员推荐不看后悔
  17. 用计算机模拟股票大盘,股票模拟盘操作与实盘不同之处有哪些
  18. DPDK 限速模块 qos_meter
  19. APK 反编译可视化修改工具IDE
  20. 《程序员》2012年2期精彩内容:大数据

热门文章

  1. ZooKeeper 典型应用场景有哪些?
  2. leetcode167. 两数之和 II - 输入有序数组
  3. python部署到iis效率_IIS 部署 Python Django网站流程(受够了野路子)
  4. Stopping ADB server failed(code -1)
  5. ubantu Wine QQ
  6. 最近的工作生活的心得感悟,给自己的表现打50分,不及格
  7. php垃圾回收算法分代,PHP的垃圾回收机制代码实例讲解
  8. 内存管理单元MMU简介
  9. php unicode乱码加密,PHP解密Unicode及Escape加密字符串
  10. Springboot整合ES