清华学长用python将《斗罗大陆》人物关系可视化

有几个是斗罗的死粉的,今天来教大家从一本小说/名著里面提取出人名,并对人名之间的关系进行统计(同一段里面人名两两出现),根据人名之间的关系进行绘制关系图--gephi

核心知识点

  1. 提取文本中人名

  2. 统计文本中人物之间的关系

  3. 绘制网络关系图

先看一下效果

清华学长用python将《斗罗大陆》人物关系可视化_第1张图片

01 jieba小例子

在开始分析《斗罗大陆》小说之前,先来一个小例子让大家对jieba库的使用有个印象。

清华学长用python将《斗罗大陆》人物关系可视化_第2张图片

清华学长用python将《斗罗大陆》人物关系可视化_第3张图片

说明:

清华学长用python将《斗罗大陆》人物关系可视化_第4张图片

可以看到文本内容结果jieba库分词之后,可以获取每一个的词性。咱们这里需要获取人名,只需要挑选出nr的词性,并统计每个词的次数。

清华学长用python将《斗罗大陆》人物关系可视化_第5张图片

清华学长用python将《斗罗大陆》人物关系可视化_第6张图片

这里就给大家演示讲解了jieba从文本提取人名的小例子,下面以小说《斗罗大陆》为例,讲解如何去提取里面人物名,并建立有向图,最后绘制人物关系图。

02 提取人物关系

1.制作姓名字典

清华学长用python将《斗罗大陆》人物关系可视化_第7张图片

清华学长用python将《斗罗大陆》人物关系可视化_第8张图片

部分结果如上图,通过提取小说中里面的所有名字,取出前100个并按频率从高到低写入txt。不过发现一些是不完整、无用、一个人物多名等情况。进行整理之后如下。

清华学长用python将《斗罗大陆》人物关系可视化_第9张图片

2.建立人物有向关系

清华学长用python将《斗罗大陆》人物关系可视化_第10张图片

通过构建的人物名在每一段中两两出现的进行统计。最后建立出来,人物节点和人物之间的联系。

3.保存到csv

清华学长用python将《斗罗大陆》人物关系可视化_第11张图片

结果如下:

清华学长用python将《斗罗大陆》人物关系可视化_第12张图片

清华学长用python将《斗罗大陆》人物关系可视化_第13张图片

03 人物关系网图

这里使用的是gephi进行绘制,gephi下载地址如下:

https://gephi.org/
复制代码

下载安装之后,开始导入刚刚保存的node.csv和edge.csv数据绘制人物关系网图

1.新建工程&导入数据

新建工程->选择数据资料tab,点击输入数字表格,添加节点和边的csv数据。

清华学长用python将《斗罗大陆》人物关系可视化_第14张图片

2.调整相关的样式

清华学长用python将《斗罗大陆》人物关系可视化_第15张图片

3.修改字体,显示相应的标签

清华学长用python将《斗罗大陆》人物关系可视化_第16张图片

4.选择一个自动化布局的方式,预览,再调整相关参数

清华学长用python将《斗罗大陆》人物关系可视化_第17张图片

5. 最终点击左下角导出图片

清华学长用python将《斗罗大陆》人物关系可视化_第18张图片

你可能感兴趣的:(php,node.js,python,c语言,golang)