最近庆余年电视剧很火爆,平时在微信群里都有朋友开始讨论剧情,连我这个没怎么看过小说的人都了解了一些剧情。
于是我在想,能不能用python来分析下庆余年的人物关系呢?
首先我在网上下载到了庆余年小说的txt文档。
大概翻了翻,一共有11万多行,接近370万字。真是一部巨作,按照这个文字量,我不连续读个十天半个月是读不完的。
那我们还是直接上python吧,是时候展现科技的力量了,把繁重重复的工作交给计算机来完成。
首先我们要确定究竟要用python分析庆余年这本小说的什么内容,我的初步计划是分析其中主要人物之间的关系即可,至于分析每个人的情绪,阵营之类的可以留到以后给大家讲解。
如果需要分析人物关系,最简单的办法就是分析每一段话里人物姓名共同出现的次数。
例如:
但范闲似乎不大想面对司理理有些惘然的面庞,似乎对于自己的把握也不是那么充分,所以他再也没有上过司理理的马车,反而更多的时候会登上肖恩的马车,从这位看似沉默的老人嘴里,获取一些许多年前的八卦新闻,江湖秘辛。一方面是真的向这位曾经最恐怖的密探头领学习很多知识,另一方面范闲也不想让肖恩有太多的时间安排后手。
以上这段话 范闲,司理理,肖恩三个人名都出现了,那么程序就会建立他们三个人之间相互的关系,因为他们之间至少是直接或者间接接触过的。类似于以下这么一个数据结构,两个人的名字加上他们共同出现的次数。
范闲,司理理,1
范闲,肖恩,1
司理理,范闲,1
司理理,肖恩,1
肖恩,司理理,1
肖恩,范闲,1
现在我们还需要一个人物名称表,因为我们只需要理清主要人物关系即可,排除掉别的干扰,于是我构建了这么一个人物名称表文件,role。
好了,现在我们开始写代码吧,应该40行代码即可分析出基本的人物关系。
执行代码之后,我们会得到类似于人物关系全红这么一个文件。
数字越大表示两个人之间的互动越多,换句话说也就是关系越亲密或者是又爱又恨?
让我们来完成最后一个环节,写一段代码输出人物关系网络来看看结果吧,不到50行代码借助pyecharts完成了图像绘制。
现在来用图表的方式看看这个小说吧。
通过这个图我们可以看到每个人名所对应的节点,节点越大表示出场次数越多,或者说是越重要。
看起来,这个图表还是能够反映事实人物关系情况的。
我们还可以单独看某两个人之间的关系情况(互动次数)。
范闲和长公主互动955次,堪称小说互动次数最多的两人,没想到吧。
也可以看到庆帝全书跟很多人没有互动过。
换一种方式来看人物网络。
范闲,长公主,陈萍萍,五竹,若若等人果然是书中的主要人物啊!
以后我们还会用python来分析人物对话和互动情节,判断大家的悲喜好恶,以便于更加数据化的方式来理解剧情。
当然我们可以把类似的手段用到每一本小说,每一篇文章里,用计算机快速冷静的思维帮我们发现感性思维不见得能发现的秘密,这玩意其实也可以用来破案吧?
我始终坚信,科技改变世界!
篇幅有限,如果需要全套代码和资源文件,请联系关注并联系我获取。
领取专属 10元无门槛券
私享最新 技术干货