随缘更新
之前看到了一些关于小说人物之间联系的可视化,看起来挺好玩的。(真的很简单)由于网上给的教程不完善,所以就自己实现了一下。
##原理
人物出场次数:用jieba分词后对人名出现次数进行统计
人物互动关系:将小说按段落划分后进行jieba分词与人名匹配。然后将出现的人名两两配对后计数。
配置输出:将人物出场次数(Id,Label,Weight,如:name1,name1,times)任务互动关系(Source,Target,Weight,如:name1,name2,times)存储为gephi接受的csv格式
可视化(gephi):导入数据后调整可视化参数即可。
文末会附一份教程word,本身这个教程也是因为朋友需要才写的,所以完全0基础也可以使用。
##流程
###文件准备
准备一份「小说.txt」 和 一份「人名.txt」。
「人名.txt」长这样:
###环境
- python3 (依赖 jieba)
pip install jieba
- java
- getphi
###怎么处理呢?
这段只作为说明,实际可用代码见文末
先让 jieba 加载字典。
使用 readlines 逐行读取。
使用 jieba.cut 分词。
给这行维护一个list。
将出现的人名维护进list。
将人名list 放入 dict 作为 key,出现一次 +1 (人物出现的次数就统计出来了)。
将一段中两两出现的人计数(任务互动的关系也出来了)。
将二者存储为gephi 接收的csv格式就可以了。
|
|
最后我们只要把数据导入到gephi中去生成自己喜欢的图形就好啦。
文末会附上详细的使用文档。
看看gephi生成的关系图吧。
代码和说明:zealotCE/Character-interaction-visualization
感谢前人探路:基于共现发现人物关系的python实现
gephi教程(虽然没看):Gephi 中文教程 - Udemy