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

简介: 由于要分析120回中主要人物的出场次数,爬取《三国演义》120回,每回放在一个段落里;len(f.readlines()) = 120.

主要任务


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 :零基础入门课程目录

新手 :初学者指南及常见问题

资源 :超过500M学习资料网盘地址

项目 :十多个进阶项目代码实例


如需了解视频课程及答疑群等更多服务,请号内回复 码上行动

代码相关问题可以在论坛上发帖提问 bbs.crossincode.com

推荐阅读:

爬抖音 | AI名画 | 押韵工具 | 虎扑 | 如何debug | 查天气 | 我用Python | 知乎 | 排序 | 电影票 | 技术宅 | 单词表 | 新手建议 | 如何提问 | 中文编程

相关文章
|
自然语言处理 数据可视化 数据挖掘
【文末送书】AIGC时代的数据分析与可视化
【文末送书】AIGC时代的数据分析与可视化
233 0
【文末送书】AIGC时代的数据分析与可视化
|
数据可视化 数据挖掘 Python
数据分析案例-往届世界杯数据可视化
数据分析案例-往届世界杯数据可视化
636 0
数据分析案例-往届世界杯数据可视化
|
2月前
|
数据可视化 数据挖掘 数据处理
ChatGPT数据分析应用——热力图分析
ChatGPT数据分析应用——热力图分析
114 1
|
2月前
|
搜索推荐 数据挖掘
ChatGPT数据分析应用——漏斗分析
ChatGPT数据分析应用——漏斗分析
75 2
|
2月前
|
数据采集 机器学习/深度学习 数据挖掘
一、新闻推荐之数据探索与数据分析
一、新闻推荐之数据探索与数据分析
22 0
|
7月前
|
存储 数据采集 数据挖掘
TMDB电影数据分析(上)
TMDB电影数据分析(上)
|
7月前
|
数据采集 存储 数据挖掘
TMDB电影数据分析(下)
TMDB电影数据分析(下)
|
7月前
|
数据可视化 搜索推荐 数据挖掘
数据挖掘实战 —— 抖音用户浏览行为数据分析与挖掘(一)
数据挖掘实战 —— 抖音用户浏览行为数据分析与挖掘(一)
|
7月前
|
机器学习/深度学习 数据采集 算法
数据挖掘实战 —— 抖音用户浏览行为数据分析与挖掘(二)
数据挖掘实战 —— 抖音用户浏览行为数据分析与挖掘(二)
|
7月前
|
算法 搜索推荐 数据挖掘
数据挖掘实战 —— 抖音用户浏览行为数据分析与挖掘(续)
数据挖掘实战 —— 抖音用户浏览行为数据分析与挖掘(续)