首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

和范闲关系最近的居然是她?用python 40行代码读懂庆余年

最近庆余年电视剧很火爆,平时在微信群里都有朋友开始讨论剧情,连我这个没怎么看过小说的人都了解了一些剧情。

于是我在想,能不能用python来分析下庆余年的人物关系呢?

首先我在网上下载到了庆余年小说的txt文档。

大概翻了翻,一共有11万多行,接近370万字。真是一部巨作,按照这个文字量,我不连续读个十天半个月是读不完的。

那我们还是直接上python吧,是时候展现科技的力量了,把繁重重复的工作交给计算机来完成。

首先我们要确定究竟要用python分析庆余年这本小说的什么内容,我的初步计划是分析其中主要人物之间的关系即可,至于分析每个人的情绪,阵营之类的可以留到以后给大家讲解。

如果需要分析人物关系,最简单的办法就是分析每一段话里人物姓名共同出现的次数。

例如:

但范闲似乎不大想面对司理理有些惘然的面庞,似乎对于自己的把握也不是那么充分,所以他再也没有上过司理理的马车,反而更多的时候会登上肖恩的马车,从这位看似沉默的老人嘴里,获取一些许多年前的八卦新闻,江湖秘辛。一方面是真的向这位曾经最恐怖的密探头领学习很多知识,另一方面范闲也不想让肖恩有太多的时间安排后手。

以上这段话 范闲,司理理,肖恩三个人名都出现了,那么程序就会建立他们三个人之间相互的关系,因为他们之间至少是直接或者间接接触过的。类似于以下这么一个数据结构,两个人的名字加上他们共同出现的次数。

范闲,司理理,1

范闲,肖恩,1

司理理,范闲,1

司理理,肖恩,1

肖恩,司理理,1

肖恩,范闲,1

现在我们还需要一个人物名称表,因为我们只需要理清主要人物关系即可,排除掉别的干扰,于是我构建了这么一个人物名称表文件,role。

好了,现在我们开始写代码吧,应该40行代码即可分析出基本的人物关系。

执行代码之后,我们会得到类似于人物关系全红这么一个文件。

数字越大表示两个人之间的互动越多,换句话说也就是关系越亲密或者是又爱又恨?

让我们来完成最后一个环节,写一段代码输出人物关系网络来看看结果吧,不到50行代码借助pyecharts完成了图像绘制。

现在来用图表的方式看看这个小说吧。

通过这个图我们可以看到每个人名所对应的节点,节点越大表示出场次数越多,或者说是越重要。

看起来,这个图表还是能够反映事实人物关系情况的。

我们还可以单独看某两个人之间的关系情况(互动次数)。

范闲和长公主互动955次,堪称小说互动次数最多的两人,没想到吧。

也可以看到庆帝全书跟很多人没有互动过。

换一种方式来看人物网络。

范闲,长公主,陈萍萍,五竹,若若等人果然是书中的主要人物啊!

以后我们还会用python来分析人物对话和互动情节,判断大家的悲喜好恶,以便于更加数据化的方式来理解剧情。

当然我们可以把类似的手段用到每一本小说,每一篇文章里,用计算机快速冷静的思维帮我们发现感性思维不见得能发现的秘密,这玩意其实也可以用来破案吧?

我始终坚信,科技改变世界!

篇幅有限,如果需要全套代码和资源文件,请联系关注并联系我获取。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20191220A0MXAO00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

相关快讯

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券