用Python探索红楼梦里的关系

2019-07-17 15:09:28 浏览数 (1)

拜读过徐麟兄(公众号“数据森麟”)发布的《“水泊梁山“互联网有限公司一百单八将内部社交网络》,真的是引人深思,辗转反侧啊(我已经不知道用什么词来形容了

)。于是乎,自己也仿照着,来理一理红楼里的那些关系

憋慌,这绝对不是你想象的那样的文章

01.准备

  1. 红楼TXT版本电子书一本
  2. 红楼人物小全一份(之所以叫小全,是因为只包括宝玉和十二钗)
  3. 安装好Python3并且安装pandas和pycharts库
  4. 找个夜黑风高,无人打扰的夜晚(毕竟这是个技术活

02.编码

Action 1

数据准备阶段

首先对TXT文本做下简单的处理,以空格作为分割标准,再使用pandas读取人物excel列表,并把每个人物出现的次数存入其中。

Action 2

用图表展示人物出场次数

这里使用pyecharts来作图

到目录下找到该HTML文件,打开查看

啥也不说,宝玉妥妥的NO.1,谁叫人家是块顽石呢

,最没想到的是,我们的黛玉小姐姐竟然只能排第三,辣凤子稳居第二,看来古时这种川妹子类型的就很受欢迎呀

Action 3

产生相互之间的关系,因为后面要使用Gephi,所以这里产生三列,Source、Target和Weight

其实就是两层循环,把共同出现在一个段落里的人物的次数拿出来

03.产生相互的关系

使用Gephi,突然发现这真的是一个强大的工具啊,感觉在以后的数据可视化中会大展拳脚的(就是需要后面好好研究下

)。

这里我还是调试了很久的,后面有机会写一下这个软件的相关学习总结吧,这里直接上图了。

导出之后能看的更加清楚

妥妥的“铁”三角啊

,然后凤姐、湘云等在外围插科打诨

04. 后话

最后,放上代码地址:https://github.com/zhouwei713/honglou,点击“阅读原文”也可跳转到GitHub。

最后的最后,撸完代码,又有重新再看一遍红楼梦的冲动了,冲鸭!

0 人点赞