楊鑫,宋卓遠(yuǎn),朱東霖,楊云帆,鄭紹陽,楊秀璋,羅子江
(貴州財(cái)經(jīng)大學(xué)信息學(xué)院,貴陽550025)
在移動(dòng)互聯(lián)網(wǎng)迅猛發(fā)展的時(shí)代,人們更容易利用碎片化時(shí)間來滿足自身精神文化上的需求。近年來,隨著小說的受眾群體增多[1],加之許多小說被影視化,人們?cè)絹碓搅?xí)慣于閱讀小說以及觀看其影視化作品的方式來追尋自己的內(nèi)心訴求。究其原因,是其展現(xiàn)的內(nèi)容與人們的日常生活息息相關(guān)[2-3],因此對(duì)小說內(nèi)容及其人物進(jìn)行有效挖掘很有必要。
小說是一種以塑造人物為中心,通過完整的故事情節(jié)和具體環(huán)境的渲染來反映社會(huì)生活的文學(xué)體裁。目前國內(nèi)已有學(xué)者對(duì)小說文本做了許多研究,如龔雪萍等人[4]利用BICOMB 和SPSS 軟件對(duì)知網(wǎng)中哈代小說的相關(guān)文獻(xiàn)進(jìn)行研究,并將結(jié)果以知識(shí)圖譜形式直觀展現(xiàn),進(jìn)而了解該領(lǐng)域的研究熱點(diǎn)及趨勢(shì);張旋等人[5]基于復(fù)雜網(wǎng)絡(luò)分析法,對(duì)14 部金庸武俠小說中人物的親密度及關(guān)系進(jìn)行識(shí)別、評(píng)估,從而構(gòu)建出一種判別小說人物復(fù)雜愛情模式的通用模型;樓鍇毅等人[6]提出一種基于社交網(wǎng)絡(luò)和K-means 聚類的方法,該法能夠一定程度上反映各類小說作者的寫作風(fēng)格;陳蕾等人[7]借助雪球算法實(shí)現(xiàn)了《紅樓夢(mèng)》中人物間社會(huì)等級(jí)關(guān)系的分析,從中有效挖掘出人際交往親密度和社區(qū)影響力;肖天久等人[8]以金庸和古龍的小說作為研究樣本,運(yùn)用主成分分析與文本分類、聚類的方法,從計(jì)算風(fēng)格學(xué)角度對(duì)樣本進(jìn)行詳盡分析,證明兩種小說在多個(gè)維度上存在較大差異。
然而,國內(nèi)當(dāng)前將共詞分析應(yīng)用于小說文本挖掘的研究還相對(duì)較少,王一博等人[9]雖然運(yùn)用共詞和命名實(shí)體識(shí)別等方法對(duì)《三國演義》進(jìn)行了深入分析,并發(fā)現(xiàn)三國中主要人物可分成7 個(gè)類團(tuán),但該研究方法比較單一,未能揭示其中各人物的成長歷程。針對(duì)以上問題,本文提出一種基于共詞分析的小說人物關(guān)系研究法,通過構(gòu)建矩陣來發(fā)現(xiàn)各角色間的內(nèi)在關(guān)聯(lián),確定書中主要人物;借助層次聚類算法計(jì)算人物間相似性,明確不同勢(shì)力集團(tuán);采用相關(guān)軟件和知識(shí)圖譜等技術(shù)進(jìn)行結(jié)果可視化,便于研究者對(duì)小說整體框架及各情節(jié)脈絡(luò)有更好把握。
本文數(shù)據(jù)來源自網(wǎng)絡(luò)平臺(tái)——豬豬書網(wǎng),從中下載電子版小說《倚天屠龍記》作為研究樣本,并調(diào)用Python 對(duì)其進(jìn)行結(jié)巴分詞、停用詞過濾等操作,同時(shí),分詞過程中會(huì)出現(xiàn)人物名稱誤判現(xiàn)象,如“金毛獅王”可能在分詞后會(huì)成為“金毛”和“獅王”兩個(gè)獨(dú)立名詞,為避免這種情況,文中增加了小說人物自定義詞典,提升識(shí)別精度。此外,對(duì)文本中有相同含義的人物名稱進(jìn)行合并,如將“張無忌”、“曾阿?!焙喜椤皬垷o忌”。
本文基于共詞分析法對(duì)小說人物關(guān)系進(jìn)行深入研究,其總體思路如圖1 所示。
圖1 研究思路圖
具體研究步驟如下:
(1)從網(wǎng)絡(luò)上下載小說txt 文本,并存儲(chǔ)至本地,使用Python 對(duì)文本內(nèi)容進(jìn)行預(yù)處理,包括結(jié)巴分詞、去除停用詞、相同人物名稱合并等操作;
(2)從百度百科獲取小說人物列表(103 位),并構(gòu)建相應(yīng)自定義詞典,提高分詞中人物識(shí)別準(zhǔn)度;
(3)利用Python 對(duì)小說中主要人物構(gòu)建共現(xiàn)矩陣、相似矩陣、相異矩陣;
(4)通過共詞分析法實(shí)現(xiàn)人物共現(xiàn)、聚類和小說情節(jié)演化等研究,并借助知識(shí)圖譜和Python 技術(shù)將分析結(jié)果可視化。
人物是小說的重要構(gòu)成部分,能夠突出小說主旨,并且可以揭示和折射社會(huì)生活某些本質(zhì)及相關(guān)現(xiàn)象帶來的啟示。本文對(duì)書中人物名稱的出現(xiàn)頻次進(jìn)行統(tǒng)計(jì),結(jié)果如圖2 所示,從中可以看出,“張無忌”頻數(shù)居首,共計(jì)4668 次,其次是“趙敏”和“謝遜”,分別出現(xiàn)1251 和1209 次。
圖2 小說人物詞頻統(tǒng)計(jì)(部分)
為了探析各人物間關(guān)系及其動(dòng)態(tài)變化,文中采用共詞分析法對(duì)小說中人物構(gòu)建一個(gè)103×103 的共現(xiàn)矩陣(見表1),從表1 中可知人物間的共現(xiàn)情況,如“張無忌”和“趙敏”共現(xiàn)407 次、“謝遜”和“張翠山”共現(xiàn)127次。其中矩陣構(gòu)建規(guī)則如公式(1)所示,當(dāng)兩個(gè)人物同時(shí)出現(xiàn)在小說的一個(gè)段落中,就認(rèn)為這兩個(gè)人物間存在一次共現(xiàn),反之兩個(gè)人物間不存在關(guān)系。
式(1)中n 表示每兩位人物的共現(xiàn)次數(shù);ai表示矩陣中第i 行對(duì)應(yīng)的人物;aj表示矩陣中第j 列對(duì)應(yīng)的人物。
表1 中各人物間共現(xiàn)數(shù)值差異較大,會(huì)對(duì)后續(xù)分析產(chǎn)生影響。因此,文中選用皮爾遜相關(guān)系數(shù)法計(jì)算共現(xiàn)矩陣的相似度(見表2),表2 中數(shù)值均在區(qū)間[0,1]內(nèi),數(shù)值越大,則表明人物間關(guān)聯(lián)度越高,反之,關(guān)聯(lián)度越小。
在人物聚類分析環(huán)節(jié),為降低相似矩陣中過多零值帶來的誤差,本文用1 減去表2 中全部數(shù)值[10],得到小說人物相異矩陣,如表3 所示。
采用Gephi 軟件根據(jù)表1 繪制小說人物共現(xiàn)知識(shí)圖譜,結(jié)果如圖3 所示,共有人物103 位和共現(xiàn)線1844條。圖中節(jié)點(diǎn)代表書中人物,其大小為人物的重要程度,連線代表各人物間的共現(xiàn)關(guān)系,線的粗細(xì)表示人物共現(xiàn)頻數(shù)高低。圖3 顯示,居于圖譜中心位置的是“張無忌”,表明他為書中最重要的人物,其他人物節(jié)點(diǎn)逐漸向四周分布擴(kuò)散。其中“張無忌”與周圍“趙敏”、“周芷若”、“張三豐”、“謝遜”、“楊逍”等人物共現(xiàn)明顯,聯(lián)系緊密,說明這些人物是整個(gè)圖譜的主體結(jié)構(gòu),即小說中的主要人物,這與人們讀過《倚天屠龍記》的普遍印象一致。
表1 小說人物共現(xiàn)矩陣(部分)
表2 小說人物相似矩陣(部分)
表3 小說人物相異矩陣(部分)
圖3 倚天人物關(guān)系圖譜
聚類分析是依據(jù)個(gè)體間特征相似性進(jìn)而自動(dòng)分類的技術(shù),為便于分析,本文使用Python 對(duì)小說中主要人物(60 位)的相異矩陣進(jìn)行層次聚類分析,選擇Euclidean 和Ward 方法來分別計(jì)算個(gè)體間與簇間的距離,其中計(jì)算歐氏距離(Euclidean)的公式如下:
式(2)中,D(X,Y)表示X 點(diǎn)與Y 點(diǎn)間的歐氏距離;k 表示空間維度,這里k=2,xi為X 點(diǎn)的第i 維坐標(biāo)值,yi為Y 點(diǎn)的第i 維坐標(biāo)值。
聚類結(jié)果如圖4 所示,橫坐標(biāo)軸為各簇團(tuán)間距離,縱坐標(biāo)軸為各人物名稱。圖中可知,小說內(nèi)主要人物可劃分為9 個(gè)集團(tuán)。第一集團(tuán)為少林,包含“空見”、“空聞”、“渡難”、“成昆”、“謝遜”等人,這些人物按輩分還可分成兩個(gè)子集團(tuán),分別是“渡”字的老一輩和以“空”字為主的年輕一輩,其中成昆早年曾投身少林,之后一直以“圓真”行走江湖,而謝遜也與少林淵源頗深,并在晚年皈依少林,這也是二人無法被分在其他集團(tuán)的原因;第二集團(tuán)為明教,包含“楊逍”、“韋一笑”、“殷天正”、“周顛”、“說不得”等人,他們是明教的領(lǐng)導(dǎo)層,鼎力輔助主人公“張無忌”;第三集團(tuán)為主角團(tuán)隊(duì),包含“張無忌”、“趙敏”、“周芷若”、“殷離”、“小昭”等人,雖然每人出自不同勢(shì)力,但因“張無忌”而聚集在一起,其之間的恩怨情仇貫穿整本小說;第四集團(tuán)為波斯明教,包含“輝月使”、“流云使”、“妙風(fēng)使”,曾于靈蛇島為難“張無忌”等人,后因小昭成為總教教主,隨其回歸波斯;第五集團(tuán)為朝廷,包含“汝陽王”、“鶴筆翁”、“鹿杖客”、“阿大”等人,曾囚禁六大門派各高手于萬安寺,是中原武林共同的敵人;第六集團(tuán)為峨眉,包含“滅絕師太”、“丁敏君”、“貝錦儀”、“靜玄”、“宋青書”等人,宋青書出身武當(dāng),但自光明頂一戰(zhàn)后與峨眉來往密切,并隨后加入峨眉;第七集團(tuán)為朱武世家,包含“朱九真”、“朱長齡”、“武青嬰”、“衛(wèi)壁”等人,曾在第15-16 章中為得知謝遜及屠龍刀下落欺騙“張無忌”,后計(jì)謀敗露,追殺主人公;第八集團(tuán)為反元義軍,包含“朱元璋”、“常遇春”、“徐達(dá)”、“湯和”、“鄧愈”等人,他們雖隸屬明教,但卻是反元義軍中的核心人物,一同對(duì)抗元朝暴政;第九集團(tuán)為武當(dāng),包含“張三豐”、“殷梨亭”、“張翠山”、“郭襄”、“覺遠(yuǎn)大師”等人,“張三豐”、“郭襄”和“覺遠(yuǎn)大師”因九陽神功而結(jié)緣,因此被分為同一集團(tuán)。通過人物的聚類分析,能使讀者對(duì)書中各人物間聯(lián)系有更為清晰地了解,進(jìn)而助于理解全文。
圖4 倚天人物聚類圖
為了對(duì)小說整體框架及各情節(jié)脈絡(luò)有更好把握,本文對(duì)小說中人物和章節(jié)繪制情節(jié)演化知識(shí)圖譜,如圖5 所示,圖中將書內(nèi)章節(jié)劃分為3 個(gè)階段:(a)1-14章、(b)15-27 章、(c)28-40 章,從中發(fā)現(xiàn):
(1)總體情況:從每階段內(nèi)人物節(jié)點(diǎn)和密度可以得知,第一階段節(jié)點(diǎn)數(shù)量最少且分布零散,第三階段節(jié)點(diǎn)規(guī)模最大且分布密集,人物數(shù)量整體呈上升態(tài)勢(shì),符合小說實(shí)際情況。其中各階段內(nèi)人物均有變化,如1-14章中主要人物有“張翠山”、“殷素素”、“張三豐”、“謝遜”、“張無忌”等;15-27 章中主要人物有“張無忌”、“楊逍”、“韋一笑”、“張三豐”、“滅絕師太”等;28-40 章中主要人物有“張無忌”、“趙敏”、“周芷若”、“謝遜”、“楊逍”等。但是“張無忌”、“張三豐”、“謝遜”等人一直都未曾脫離圖譜的核心區(qū)域,這表明他們是小說中的主線人物,貫穿起始。
(2)各階段情況:第一階段情節(jié)圍繞“張翠山”展開,其與“殷素素”、“謝遜”間連線較粗,聯(lián)系緊密,這3人緣起于“屠龍刀”的爭(zhēng)奪,并一同流落至冰火島,又因“張無忌”的出生而義結(jié)金蘭,后被六大門派等逼迫,“張翠山”夫婦為守承諾自刎于武當(dāng),自此,主人公“張無忌”開始其獨(dú)自成長之旅。
第二階段中“張翠山”、“殷素素”、“白龜壽”等節(jié)點(diǎn)變小或消失,表明這些人物在后續(xù)情節(jié)內(nèi)影響力漸小或已退出故事舞臺(tái),而“趙敏”、“小昭”、“宋青書”等人物開始出現(xiàn),繼續(xù)接著推動(dòng)情節(jié)的發(fā)展,相較于第一階段,“張無忌”、“楊逍”、“殷天正”、“滅絕師太”等節(jié)點(diǎn)變大,說明他/她們?cè)谶@一階段的情節(jié)中發(fā)揮著重要作用,這與書中六大門派圍攻光明頂和被朝廷困于萬安寺等實(shí)際情節(jié)大約一致。
第三階段,人物節(jié)點(diǎn)數(shù)快速增加,增長率遠(yuǎn)超前兩個(gè)階段,各人物間關(guān)系也越為密切、復(fù)雜。此階段新出現(xiàn)的人物有“陳友諒”、“史火龍”、“渡劫”、“渡厄”等人,其中“陳友諒”曾于靈蛇島和丐幫為難“張無忌”等,是書中反派人物?!岸山佟薄ⅰ岸啥颉?、“渡難”三人曾在屠獅大會(huì)上負(fù)責(zé)看守金毛獅王“謝遜”,是少林中老一輩人物。和前兩個(gè)階段相比,“趙敏”、“周芷若”節(jié)點(diǎn)有明顯變大,且節(jié)點(diǎn)規(guī)模遠(yuǎn)大于“殷離”和“小昭”,符合她們?cè)谛≌f內(nèi)女一、女二的設(shè)定。此外,“謝遜”在書中命運(yùn)最為坎坷,其節(jié)點(diǎn)在三個(gè)階段中經(jīng)歷了大-小-大的起伏變化,但是他和“張三豐”在小說中存在時(shí)間最為長久,具有較好的延續(xù)性。
本文提出一種共詞分析和層次聚類的方法,通過對(duì)小說《倚天屠龍記》中人物構(gòu)建矩陣和知識(shí)圖譜,進(jìn)而揭示各人物間關(guān)系及其動(dòng)態(tài)變化。同時(shí),文中將章節(jié)劃分成3 個(gè)階段,包括第一階段(1-14 章)、第二階段(15-27 章)、第三階段(28-40 章),借助共詞分析、相關(guān)工具和可視化技術(shù)對(duì)每一階段進(jìn)行詳盡分析,探究其情節(jié)演變態(tài)勢(shì)。實(shí)驗(yàn)發(fā)現(xiàn),本文方法能夠有效洞悉小說中人物關(guān)系和情節(jié)發(fā)展過程,便于讀者加深對(duì)內(nèi)容的理解,并對(duì)其他相關(guān)文學(xué)作品的研究提供一定的理論支撐和數(shù)據(jù)支持。