python红楼梦人物统计_Python分析红楼梦,宝玉和十二钗的人物关系

由于我们只统计宝玉和十二钗(正册)这些人物,因此我们需要实现准备一个人物名单:

这个后面的nr是表示人物属性,方便分词工具jieba识别。

进行这十三个人物在整本书的出场率统计还是比较简单的,我们只需要在分词结束和统计相关人物出现的频率。值得注意的是,有两个因素可以影响最后的统计准确性:

第一个是分词本身的准确性,比如我们知道林黛玉有个诨号“颦儿”

但是,通过打印我们发现分词结果并没有颦儿,也就是说我们输在了起跑线,林黛玉的出场统计次数将会因为颦儿没有被分词出来而偏低。

第二个是红楼梦人物有多个表达方式,最常见的是文本中有时候会给人物加上姓,如林黛玉;有时候不带上姓,如黛玉。还有贾元春有时候叫贾妃,元妃等:

还有一个典型的例子是红楼诗社成员都有自己的笔名:

黛玉 潇湘妃子

宝钗 蘅芜君

李纨 稻香老农探春 蕉下客

迎春 菱州

惜春 藕榭

湘云 枕霞旧友

这样的例子非常多。在我们当前的版本代码中,为了编程方便,这些例子都暂时不考虑进去。我们将宝玉加上十二钗出现的图画出来:

宝玉,黛玉,凤姐,宝钗属于一线人物,出场率很高;元春,秦可卿还有巧姐出场章节有限,因此总的出场率很低。

人物关系

我们采用共现的技术来建立人物关系,即一段文字中两个人物出现,则给这两个人物的联系记上一笔,若以后在其他语句中再出现,再加上一笔,以此类推,直到找到所有人物关系节点。

我们使用Python中Echarts将人物关系网画出来:

这里圆圈的大小代表人物出场的频率,通过将鼠标发在两个人物之间的边上面,可以显示人物之间关联的次数:

可以看出来,宝玉和十二钗的关系十分紧密,尤其是黛玉,宝钗,凤姐。而这些人之间互动也十分频繁。剩下的一些边缘人物仅仅和主角团有互动,他们之间的互动相对很少,或者没有。

参考代码:

https://github.com/zhouwei713/data_analysis/tree/master/honglou

大家如果跑这个代码,可能遇到一个技术问题,就是Excel打开'utf-8'编码的csv文件出现乱码,一个非常简便的解决方法是:选择用记事本打开,再另存为csv文件。

人物关系网大全

上面展示的分析仅仅是宝玉和十二钗之间的简单分析,并不能看到整个红楼梦的全貌,这里给大家分享一个人物关系网大全:

https://grapheco.github.io/InteractiveGraph/dist/examples/example1.html

在这里你可以看到红楼梦几乎所有人物和关键地点之间的联系。

用鼠标点击人物头像后会出现相关介绍:

也可以看到和其他人物之间的关系,和这个人物的主要事件:

可谓是非常详尽了,用来辅助读红楼梦是再好不过了。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值