技术分析 | 谁是终极大Boss?一张图看懂《长安十二时辰 》人物关系

2019-08-13 14:28:54 浏览数 (1)

编者按:

豆瓣评分高达8.6的国产剧《长安十二时辰》,终于在今晚迎来大结局——幕后BOSS究竟是谁?张小敬和李必命运如何,都一一揭开谜底。该剧改编自以“脑洞大”著称的作家马伯庸同名小说,悬疑反转的快节奏剧情,美轮美奂的长安城场景,唐朝韵味的妆法服装,刻画细致的人物角色,情节、灯光、道具、演技均比肩电影制作。

本文作者扎根数据挖掘、算法模型应用等领域多年,将从技术角度分析一下剧中的人物关系,用一张人物图谱呈现他们之间的关联,一起来猜猜谁才是终极大Boss?

图:《长安十二时辰》豆瓣评分高达8.6分图:《长安十二时辰》豆瓣评分高达8.6分

时下大热的《长安十二时辰》剧中"大案牍术"、"靖安司"频频出现,数据行业就有不少同学把大案牍术和当下最火热的“大数据”、“数据智能”联系起来,把 “靖安司”与“数据中台”相对比,笔者认为有点牵强附会。本文尝试结合自然语言处理(NLP)与图谱(Graph) 相关技术分析小说原文的人物图谱关系。

一、模型思路和流程

利用知识图谱构建人物关系,主要包括两点:节点信息和边界信息。

节点信息就是人物及权重,应用实体识别提取人物信息,权重结合TFIDF 等算法计算权重。边界信息的提取,可以结合行业处理经验:大部分是以小说章节或者段落为基本分析单元,将出现在同一分析单元的人物视为发生一次关联。

这种处理方法有其合理性,但也存在一定不足。结合《结合长安十二时辰》小说特征,将出现在同一段落的人物视为发生一次关联,以此为数据样本进行人物关系知识图谱的构建。

主要处理流程包括以下主要部分:

  • 文本预处理及分词
  • 人物提取及权重计算
  • 关系的构建及人物图谱展现

二、文本处理和分词

利用python jieba分词进行文本分词处理,jieba分词算法使用了基于前缀词典实现高效的词图扫描,生成句子中汉字所有可能生成词情况所构成的有向无环图(DAG), 再采用了动态规划查找最大概率路径,找出基于词频的最大切分组合,对于未登录词,采用了基于汉字成词能力的HMM模型,使用了Viterbi算法。

1.停用词与自定义词库,处理函数的定义

其中尝试词性标注(POS,Part-of-Speech Tagging)的方式只提取名词有关,发现POS 效果不好。

【Python 代码】

2.分词

【Python 代码】

分词结果

3.IFIDF 权重计算及提取

  • 将语料转换为词袋向量
    • 声明一个向量化工具vectorizer
    • 根据语料集统计词袋(fit)
    • 打印语料集的词袋信息
    • 将语料集转化为词袋向量(transform)
    • 还可以查看每个词在词袋中的索引
  • 根据词袋向量统计TF-IDF
    • 声明一个TF-IDF转化器(TfidfTransformer)
    • 根据语料集的词袋向量计算TF-IDF(fit)
    • 打印TF-IDF信息:比如结合词袋信息,可以查看每个词的TF-IDF值
    • 将语料集的词袋向量表示转换为TF-IDF向量表示
  • 根据TFIDF值排序取Top 50

【Python 代码】

由于前50有部分地名,手工删除得到完整人物列表;定义同义词列表,需要后期合并。

【Python 代码】

4.人物关系构建及剪枝

【Python 代码】

将DataFrame 对象转换为List 对象

将DataFrame 对象转换为List 对象

5.人物图谱展现

Out [36] :

那么问题来了,谁才是终极大Boss?

根据媒体报道,日前优酷站内发起“终极Boss大猜想”投票结果,权力最大但神秘莫测的“圣人”,演技精湛、义子何孚又提前暴露的“何监”以及身怀大数据分析绝技和复活buff的“徐宾”最为大家所怀疑,分列幕后Boss票选前三甲。其中,徐宾因刻意接近李必,利用职能捞出张小敬还屡次“复活”,是近期排名上升最快的“嫌疑人”。

根据人物图谱分析,可以看出徐宾的人物关系复杂,而且作为大唐第一AI徐宾死得莫名其妙死,而且整个尸体都烧焦了。笔者认为,按照影视剧的逻辑,这种死法不是本人的几率很高。

图:徐宾与其他人物关系图谱图:徐宾与其他人物关系图谱

备注:以上是《长安十二时辰》人物图谱构建的基本流程和代码,中间还有许多不足和优化的空间。关于《大案牍术》,纯属YY,没有算法理论、数据基础和处理算力支撑,属无本之木。还望各位大神轻拍。

今晚《长安十二时辰》即将大结局,快来留言写下你心中的终极大Boss吧!

【关于作者】

王新义,逸迅科技产品研发总监,近十年大数据和人工智能研发经验,具有丰富数据、算法模型、场景应用技术积累和实施经验,喜欢钻研以Hadoop和数据挖掘、机器学习为核心的数据应用经验、流程及知识。

0 人点赞