基于共词分析的小说人物关系研究

2019-04-03 01:38杨鑫宋卓远朱东霖杨云帆郑绍阳杨秀璋罗子江
现代计算机 2019年35期
关键词:张无忌图谱矩阵

杨鑫,宋卓远,朱东霖,杨云帆,郑绍阳,杨秀璋,罗子江

(贵州财经大学信息学院,贵阳550025)

0 引言

在移动互联网迅猛发展的时代,人们更容易利用碎片化时间来满足自身精神文化上的需求。近年来,随着小说的受众群体增多[1],加之许多小说被影视化,人们越来越习惯于阅读小说以及观看其影视化作品的方式来追寻自己的内心诉求。究其原因,是其展现的内容与人们的日常生活息息相关[2-3],因此对小说内容及其人物进行有效挖掘很有必要。

小说是一种以塑造人物为中心,通过完整的故事情节和具体环境的渲染来反映社会生活的文学体裁。目前国内已有学者对小说文本做了许多研究,如龚雪萍等人[4]利用BICOMB 和SPSS 软件对知网中哈代小说的相关文献进行研究,并将结果以知识图谱形式直观展现,进而了解该领域的研究热点及趋势;张旋等人[5]基于复杂网络分析法,对14 部金庸武侠小说中人物的亲密度及关系进行识别、评估,从而构建出一种判别小说人物复杂爱情模式的通用模型;楼锴毅等人[6]提出一种基于社交网络和K-means 聚类的方法,该法能够一定程度上反映各类小说作者的写作风格;陈蕾等人[7]借助雪球算法实现了《红楼梦》中人物间社会等级关系的分析,从中有效挖掘出人际交往亲密度和社区影响力;肖天久等人[8]以金庸和古龙的小说作为研究样本,运用主成分分析与文本分类、聚类的方法,从计算风格学角度对样本进行详尽分析,证明两种小说在多个维度上存在较大差异。

然而,国内当前将共词分析应用于小说文本挖掘的研究还相对较少,王一博等人[9]虽然运用共词和命名实体识别等方法对《三国演义》进行了深入分析,并发现三国中主要人物可分成7 个类团,但该研究方法比较单一,未能揭示其中各人物的成长历程。针对以上问题,本文提出一种基于共词分析的小说人物关系研究法,通过构建矩阵来发现各角色间的内在关联,确定书中主要人物;借助层次聚类算法计算人物间相似性,明确不同势力集团;采用相关软件和知识图谱等技术进行结果可视化,便于研究者对小说整体框架及各情节脉络有更好把握。

1 数据和方法

1.1 数据来源及预处理

本文数据来源自网络平台——猪猪书网,从中下载电子版小说《倚天屠龙记》作为研究样本,并调用Python 对其进行结巴分词、停用词过滤等操作,同时,分词过程中会出现人物名称误判现象,如“金毛狮王”可能在分词后会成为“金毛”和“狮王”两个独立名词,为避免这种情况,文中增加了小说人物自定义词典,提升识别精度。此外,对文本中有相同含义的人物名称进行合并,如将“张无忌”、“曾阿牛”合并为“张无忌”。

1.2 研究方法

本文基于共词分析法对小说人物关系进行深入研究,其总体思路如图1 所示。

图1 研究思路图

具体研究步骤如下:

(1)从网络上下载小说txt 文本,并存储至本地,使用Python 对文本内容进行预处理,包括结巴分词、去除停用词、相同人物名称合并等操作;

(2)从百度百科获取小说人物列表(103 位),并构建相应自定义词典,提高分词中人物识别准度;

(3)利用Python 对小说中主要人物构建共现矩阵、相似矩阵、相异矩阵;

(4)通过共词分析法实现人物共现、聚类和小说情节演化等研究,并借助知识图谱和Python 技术将分析结果可视化。

2 共词分析

2.1 小说人物共词分析

人物是小说的重要构成部分,能够突出小说主旨,并且可以揭示和折射社会生活某些本质及相关现象带来的启示。本文对书中人物名称的出现频次进行统计,结果如图2 所示,从中可以看出,“张无忌”频数居首,共计4668 次,其次是“赵敏”和“谢逊”,分别出现1251 和1209 次。

图2 小说人物词频统计(部分)

为了探析各人物间关系及其动态变化,文中采用共词分析法对小说中人物构建一个103×103 的共现矩阵(见表1),从表1 中可知人物间的共现情况,如“张无忌”和“赵敏”共现407 次、“谢逊”和“张翠山”共现127次。其中矩阵构建规则如公式(1)所示,当两个人物同时出现在小说的一个段落中,就认为这两个人物间存在一次共现,反之两个人物间不存在关系。

式(1)中n 表示每两位人物的共现次数;ai表示矩阵中第i 行对应的人物;aj表示矩阵中第j 列对应的人物。

表1 中各人物间共现数值差异较大,会对后续分析产生影响。因此,文中选用皮尔逊相关系数法计算共现矩阵的相似度(见表2),表2 中数值均在区间[0,1]内,数值越大,则表明人物间关联度越高,反之,关联度越小。

在人物聚类分析环节,为降低相似矩阵中过多零值带来的误差,本文用1 减去表2 中全部数值[10],得到小说人物相异矩阵,如表3 所示。

2.2 小说人物关系图谱

采用Gephi 软件根据表1 绘制小说人物共现知识图谱,结果如图3 所示,共有人物103 位和共现线1844条。图中节点代表书中人物,其大小为人物的重要程度,连线代表各人物间的共现关系,线的粗细表示人物共现频数高低。图3 显示,居于图谱中心位置的是“张无忌”,表明他为书中最重要的人物,其他人物节点逐渐向四周分布扩散。其中“张无忌”与周围“赵敏”、“周芷若”、“张三丰”、“谢逊”、“杨逍”等人物共现明显,联系紧密,说明这些人物是整个图谱的主体结构,即小说中的主要人物,这与人们读过《倚天屠龙记》的普遍印象一致。

表1 小说人物共现矩阵(部分)

表2 小说人物相似矩阵(部分)

表3 小说人物相异矩阵(部分)

图3 倚天人物关系图谱

2.3 小说人物聚类分析

聚类分析是依据个体间特征相似性进而自动分类的技术,为便于分析,本文使用Python 对小说中主要人物(60 位)的相异矩阵进行层次聚类分析,选择Euclidean 和Ward 方法来分别计算个体间与簇间的距离,其中计算欧氏距离(Euclidean)的公式如下:

式(2)中,D(X,Y)表示X 点与Y 点间的欧氏距离;k 表示空间维度,这里k=2,xi为X 点的第i 维坐标值,yi为Y 点的第i 维坐标值。

聚类结果如图4 所示,横坐标轴为各簇团间距离,纵坐标轴为各人物名称。图中可知,小说内主要人物可划分为9 个集团。第一集团为少林,包含“空见”、“空闻”、“渡难”、“成昆”、“谢逊”等人,这些人物按辈分还可分成两个子集团,分别是“渡”字的老一辈和以“空”字为主的年轻一辈,其中成昆早年曾投身少林,之后一直以“圆真”行走江湖,而谢逊也与少林渊源颇深,并在晚年皈依少林,这也是二人无法被分在其他集团的原因;第二集团为明教,包含“杨逍”、“韦一笑”、“殷天正”、“周颠”、“说不得”等人,他们是明教的领导层,鼎力辅助主人公“张无忌”;第三集团为主角团队,包含“张无忌”、“赵敏”、“周芷若”、“殷离”、“小昭”等人,虽然每人出自不同势力,但因“张无忌”而聚集在一起,其之间的恩怨情仇贯穿整本小说;第四集团为波斯明教,包含“辉月使”、“流云使”、“妙风使”,曾于灵蛇岛为难“张无忌”等人,后因小昭成为总教教主,随其回归波斯;第五集团为朝廷,包含“汝阳王”、“鹤笔翁”、“鹿杖客”、“阿大”等人,曾囚禁六大门派各高手于万安寺,是中原武林共同的敌人;第六集团为峨眉,包含“灭绝师太”、“丁敏君”、“贝锦仪”、“静玄”、“宋青书”等人,宋青书出身武当,但自光明顶一战后与峨眉来往密切,并随后加入峨眉;第七集团为朱武世家,包含“朱九真”、“朱长龄”、“武青婴”、“卫壁”等人,曾在第15-16 章中为得知谢逊及屠龙刀下落欺骗“张无忌”,后计谋败露,追杀主人公;第八集团为反元义军,包含“朱元璋”、“常遇春”、“徐达”、“汤和”、“邓愈”等人,他们虽隶属明教,但却是反元义军中的核心人物,一同对抗元朝暴政;第九集团为武当,包含“张三丰”、“殷梨亭”、“张翠山”、“郭襄”、“觉远大师”等人,“张三丰”、“郭襄”和“觉远大师”因九阳神功而结缘,因此被分为同一集团。通过人物的聚类分析,能使读者对书中各人物间联系有更为清晰地了解,进而助于理解全文。

图4 倚天人物聚类图

2.4 小说情节演化分析

为了对小说整体框架及各情节脉络有更好把握,本文对小说中人物和章节绘制情节演化知识图谱,如图5 所示,图中将书内章节划分为3 个阶段:(a)1-14章、(b)15-27 章、(c)28-40 章,从中发现:

(1)总体情况:从每阶段内人物节点和密度可以得知,第一阶段节点数量最少且分布零散,第三阶段节点规模最大且分布密集,人物数量整体呈上升态势,符合小说实际情况。其中各阶段内人物均有变化,如1-14章中主要人物有“张翠山”、“殷素素”、“张三丰”、“谢逊”、“张无忌”等;15-27 章中主要人物有“张无忌”、“杨逍”、“韦一笑”、“张三丰”、“灭绝师太”等;28-40 章中主要人物有“张无忌”、“赵敏”、“周芷若”、“谢逊”、“杨逍”等。但是“张无忌”、“张三丰”、“谢逊”等人一直都未曾脱离图谱的核心区域,这表明他们是小说中的主线人物,贯穿起始。

(2)各阶段情况:第一阶段情节围绕“张翠山”展开,其与“殷素素”、“谢逊”间连线较粗,联系紧密,这3人缘起于“屠龙刀”的争夺,并一同流落至冰火岛,又因“张无忌”的出生而义结金兰,后被六大门派等逼迫,“张翠山”夫妇为守承诺自刎于武当,自此,主人公“张无忌”开始其独自成长之旅。

第二阶段中“张翠山”、“殷素素”、“白龟寿”等节点变小或消失,表明这些人物在后续情节内影响力渐小或已退出故事舞台,而“赵敏”、“小昭”、“宋青书”等人物开始出现,继续接着推动情节的发展,相较于第一阶段,“张无忌”、“杨逍”、“殷天正”、“灭绝师太”等节点变大,说明他/她们在这一阶段的情节中发挥着重要作用,这与书中六大门派围攻光明顶和被朝廷困于万安寺等实际情节大约一致。

第三阶段,人物节点数快速增加,增长率远超前两个阶段,各人物间关系也越为密切、复杂。此阶段新出现的人物有“陈友谅”、“史火龙”、“渡劫”、“渡厄”等人,其中“陈友谅”曾于灵蛇岛和丐帮为难“张无忌”等,是书中反派人物。“渡劫”、“渡厄”、“渡难”三人曾在屠狮大会上负责看守金毛狮王“谢逊”,是少林中老一辈人物。和前两个阶段相比,“赵敏”、“周芷若”节点有明显变大,且节点规模远大于“殷离”和“小昭”,符合她们在小说内女一、女二的设定。此外,“谢逊”在书中命运最为坎坷,其节点在三个阶段中经历了大-小-大的起伏变化,但是他和“张三丰”在小说中存在时间最为长久,具有较好的延续性。

3 结语

本文提出一种共词分析和层次聚类的方法,通过对小说《倚天屠龙记》中人物构建矩阵和知识图谱,进而揭示各人物间关系及其动态变化。同时,文中将章节划分成3 个阶段,包括第一阶段(1-14 章)、第二阶段(15-27 章)、第三阶段(28-40 章),借助共词分析、相关工具和可视化技术对每一阶段进行详尽分析,探究其情节演变态势。实验发现,本文方法能够有效洞悉小说中人物关系和情节发展过程,便于读者加深对内容的理解,并对其他相关文学作品的研究提供一定的理论支撑和数据支持。

猜你喜欢
张无忌图谱矩阵
基于图对比注意力网络的知识图谱补全
所学都忘掉,“剩下”是关键
所学都忘掉
绘一张成长图谱
殷离的哲学
殷离的哲学
图表
多项式理论在矩阵求逆中的应用
主动对接你思维的知识图谱
矩阵