小说人物的身份、行为挖掘,技术角度解读《庆余年》,深度挖掘小说语料 -02
- 2019 年 12 月 25 日
- 筆記
《庆余年》是由孙皓执导,张若昀、李沁、陈道明、吴刚、辛芷蕾、宋轶、郭麒麟等主演的古装剧。该剧改编自猫腻的同名小说,讲述了一个有着神秘身世的少年,自海边小城初出茅庐,历经家族、江湖、庙堂的种种考验、锤炼的故事。于2019年11月26日在腾讯视频、爱奇艺首播……
系列文章:
今天继续更这个系列,这篇主要从挖掘人物相关的身份、行为等角度来试验,作为初次试验,我们只取小说其中几章的数据试验下:
STEP01 首先收集小说中人物的人名
例如:
范闲 林婉儿 庆帝 陈萍萍 海棠朵朵 战豆豆 范若若 司理理 叶灵儿 肖恩 费介
数据从哪里来呢?这个比较容易收集,从豆瓣或者百科就可以获得。
STEP02 把人名添加到分词算法里,并提高权重
我这边设定的方式是:
范闲 actor 99999
这样分词,就可以优先把人物给切出来啦,看下结果:

STEP03 二阶共性分析VS三阶共性分析
这里先尝试 二阶共性分析,主要基于互信息提取出人物的相关词。
什么是互信息?
互信息(Mutual Information)是信息论里一种有用的信息度量,它可以看成是一个随机变量中包含的关于另一个随机变量的信息量,或者说是一个随机变量由于已知另一个随机变量而减少的不肯定性 。
简单来说,互信息用于度量两个对象之间的相关性。互信息的值越大,两个对象的相关性越高。
目前,人工智能大部分的应用都是基于关联性的,缺少了因果关系。
计算结果例如:
{
"范闲":{
'相信': {'value': 3230, 'nature': 'v'},
'酗酒': {'value': 2830, 'nature': 'vi'},
'忍不住': {'value': 3073, 'nature': 'v'}
}
…
}
STEP04 根据词性,把行为相关的词汇总出来
这里只取前3的结果,例如这里以动词为主,结果如下:
二皇子
['拉拢', '赏赐', '拉扯']
五竹
['坚持', '看着']
司理理
['看着', '带着', '觉得']
李弘成
['知道', '一怔']
林婉儿
['忍不住', '发现', '知道']
林若甫
['望着', '苦笑',]
王启年
['介绍', '走到']
范建
['微笑']
范思辙
['摇头', '咕哝']
范若若
['低头', '叹息']
范闲
['知道', '看着']
费介
['看着', '笑着']
长公主
['决裂', '立起', '破涕为笑']
除了了解人物的主要行为,我们还可以了解到人物的身份。比如把 共现词的词性限制为名词,可以得到以下这些词:
皇帝 大人 院长 殿下 老师 先生 怪老头 少爷 小姐 姑娘 叔
重复下STEP04步,结果如下:
五竹
['叔', '老师']
司理理
['姑娘']
王启年
['大人']
范思辙
['少爷']
范若若
['小姐']
范闲
['少爷', '大人']
费介
['老师', '先生']
长公主
['殿下']
以上是今天主要的试验,可以应用的场景有哪些呢?
比如,了解小说人物在每个章节主要的行为,
进而可以了解到小说的情节变化。
还有很多有意思的,
待续……