摘要:隨著互聯(lián)網(wǎng)技術(shù)的普及,信息呈指數(shù)級(jí)增長(zhǎng),如何從大量文本中挖掘有價(jià)值的信息一直是文本分析研究的主題。本文使用Python技術(shù)對(duì)《紅樓夢(mèng)》從基本信息統(tǒng)計(jì)、詞頻云圖繪制、人物關(guān)系分析、章回聚類分析等方面做可視化分析,挖掘小說文本中隱蔽性信息。與傳統(tǒng)文學(xué)作品分析方法相比,該數(shù)據(jù)挖掘的定量分析方法可以高效獲取文本文獻(xiàn)中有潛在性的信息,具有一定的普適性和應(yīng)用價(jià)值。
關(guān)鍵詞:紅樓夢(mèng);文本分析;Python技術(shù);jieba庫(kù);聚類分析
中圖分類號(hào):I207.411文獻(xiàn)標(biāo)識(shí)碼:A
隨著計(jì)算機(jī)技術(shù)不斷發(fā)展,世界上的主要語(yǔ)言都建立了許多對(duì)應(yīng)不同規(guī)模和類型的語(yǔ)料庫(kù),語(yǔ)料庫(kù)語(yǔ)言學(xué)在近些年也得到了快速發(fā)展,并不斷趨于成熟、完善。國(guó)內(nèi)Ant Conc、TreeTagger語(yǔ)料庫(kù)在文本分析方面使用較為廣泛,但是這些軟件不能對(duì)中文文本的研究提供精確支持[1]。隨著大數(shù)據(jù)技術(shù)的普及,研究者開始應(yīng)用數(shù)據(jù)挖掘等技術(shù)解決中文文本分析遇到的問題。數(shù)據(jù)挖掘技術(shù)典型的代表之一就是Python語(yǔ)言的出現(xiàn),Python相對(duì)于其他專用的文本分析軟件更具有靈活性[2],可以利用Pyecharts、Networkx等第三方庫(kù)對(duì)文本數(shù)據(jù)進(jìn)行可視化分析。
《紅樓夢(mèng)》作為古典四大名著之一,塑造了許多經(jīng)典人物形象,是五千年文化傳統(tǒng)沉淀的百科全書。傳統(tǒng)文學(xué)作品文本分析主要是發(fā)現(xiàn)文學(xué)作品的價(jià)值,判斷小說當(dāng)中的社會(huì)結(jié)構(gòu)與實(shí)際社會(huì)結(jié)構(gòu)的相似度,而這種分析依靠的是讀者自身對(duì)文學(xué)作品的理解與思考,僅僅采用梳理方式完成,對(duì)于文本數(shù)據(jù)潛在的信息無(wú)法探知,采用文本數(shù)據(jù)挖掘技術(shù)正是彌補(bǔ)這一問題的有效手段之一。本研究使用Python數(shù)據(jù)挖掘技術(shù)對(duì)《紅樓夢(mèng)》文本潛在信息進(jìn)行簡(jiǎn)要可視化分析與展示,有助于讀者更好去理解小說的文本內(nèi)容。
1 《紅樓夢(mèng)》文本基本信息統(tǒng)計(jì)
導(dǎo)入“紅樓夢(mèng).txt”文件數(shù)據(jù),首先對(duì)數(shù)據(jù)進(jìn)行清洗預(yù)處理。隨后,可以通過編寫代碼實(shí)現(xiàn)提取出自己需要的信息,例如輸入相關(guān)代碼,統(tǒng)計(jì)整個(gè)文本中出現(xiàn)“笑”或“喜”“悲”或“哭”的頻數(shù),如圖1所示。通過梳理可以看到,后三十回文中出現(xiàn)的笑和喜明顯減少,悲和哭的次數(shù)明顯增加??梢钥吹健都t樓夢(mèng)》在后三十回中的人物命運(yùn)開始逐步走向悲慘,整個(gè)作品情感基調(diào)出現(xiàn)了轉(zhuǎn)折,不再是前八十回中那些歡快場(chǎng)景描寫中的喜,行文思路出現(xiàn)轉(zhuǎn)折,更值得研究者去探究、去思考,符合脂硯齋的批語(yǔ):“按此回之文固妙,然未見后之三十回,猶不見此之妙?!边@樣直觀統(tǒng)計(jì)分析更加清楚明了,讓讀者了解文章整體思路,便于對(duì)文學(xué)作品的理解與掌握。
2 《紅樓夢(mèng)》文本詞頻統(tǒng)計(jì)
《紅樓夢(mèng)》整本書字?jǐn)?shù)是731017字,這么多文字中,哪些詞語(yǔ)出現(xiàn)的次數(shù)多呢?如果單純依靠讀者自己梳理,需要大量的時(shí)間去整理。利用Python中第三方j(luò)ieba庫(kù)進(jìn)行分詞統(tǒng)計(jì),可以快速梳理出一些詞頻信息。同時(shí),由于《紅樓夢(mèng)》中人物的各種稱謂較多,同一人出現(xiàn)多種稱謂,例如“寶釵”“薛寶釵”等稱謂指的是同一人。因此,需要研究者將分詞后的詞語(yǔ)導(dǎo)出來,進(jìn)行合并或者實(shí)體鏈接。為了更加進(jìn)一步讓讀者清楚直觀地看到文中出現(xiàn)頻率較高的詞語(yǔ),可以借助Python的第三方Wordcloud庫(kù)完成文本數(shù)據(jù)分析的云圖繪制。通過繪制云圖可視化展示,更加清楚直觀地展示出高頻詞匯,具體如圖2所示。從繪制出云圖結(jié)果可以清晰地看到,文中出現(xiàn)頻率最高的是寶玉、王夫人(王熙鳳的姑姑)、賈母、賈璉、鳳姐等詞語(yǔ)。云圖中字體字號(hào)越大,說明其出現(xiàn)頻率越高。
3 《紅樓夢(mèng)》文本人物關(guān)系分析
一部好的作品大多是塑造了典型的人物形象,在進(jìn)行文學(xué)作品分析研究時(shí),除了要發(fā)現(xiàn)文學(xué)作品的價(jià)值,還需要分析文學(xué)作品中人物的關(guān)系。優(yōu)秀的小說中人物社會(huì)結(jié)構(gòu)能夠反映當(dāng)時(shí)現(xiàn)實(shí)世界的特征,同時(shí)反映出人物在整個(gè)社會(huì)網(wǎng)絡(luò)中關(guān)系緊密度、社會(huì)地位和主次關(guān)系等?!都t樓夢(mèng)》是一本鴻篇巨著,里面出現(xiàn)了900多位人物,重點(diǎn)人物129位,人物關(guān)系錯(cuò)綜復(fù)雜,每個(gè)人物各具特色。全書這些人物誰(shuí)出場(chǎng)最多、人物之間又存在什么樣的關(guān)系等一直是讀者關(guān)注的話題。數(shù)據(jù)挖掘技術(shù)可以清晰客觀地表現(xiàn)出人物關(guān)系網(wǎng)絡(luò)的真實(shí)面貌,例如,林峰等使用社會(huì)網(wǎng)絡(luò)分析法把《紅樓夢(mèng)》文本中出現(xiàn)的主要人物名字位置當(dāng)做人際關(guān)系距離量化指標(biāo),采用Pajek軟件繪制人物關(guān)系網(wǎng)絡(luò)圖[3];李卓宇等將《紅樓夢(mèng)》小說采用復(fù)雜網(wǎng)絡(luò)方法對(duì)人物關(guān)系進(jìn)行建模,利用Networkx軟件包計(jì)算網(wǎng)絡(luò)指標(biāo)分析網(wǎng)絡(luò)的結(jié)構(gòu)特性[4]。本研究選擇Python的第三方庫(kù)Networkx庫(kù)對(duì)數(shù)據(jù)實(shí)現(xiàn)網(wǎng)絡(luò)建模,該庫(kù)能夠?qū)μ匦晕谋具M(jìn)行處理和分析,利用共現(xiàn)關(guān)系獲取一些人物關(guān)鍵詞之間的網(wǎng)絡(luò)關(guān)系。
對(duì)《紅樓夢(mèng)》整個(gè)文本的社交網(wǎng)絡(luò)分析后發(fā)現(xiàn),其中人物的社交網(wǎng)絡(luò)有3240人,如果安排傳統(tǒng)的文本研究者把這些人物節(jié)點(diǎn)以及之間的關(guān)系繪制出來,實(shí)現(xiàn)起來是十分艱難的,但利用Python技術(shù)可以簡(jiǎn)單快速地將其呈現(xiàn)出來,輸出社交網(wǎng)絡(luò)結(jié)果如圖3所示。從圖中的節(jié)點(diǎn)可以看出,處于中心節(jié)點(diǎn)的人物是重要人物,與其他節(jié)點(diǎn)的人物交點(diǎn)較多。從圖中可以看出寶玉、寶釵、王夫人、賈母、襲人、賈璉等人物處于中心節(jié)點(diǎn),度值相對(duì)較大,是整本書的重要人物,處于主要地位,這個(gè)分析結(jié)果與前面人物熱點(diǎn)詞頻統(tǒng)計(jì)結(jié)果基本相符。通過社會(huì)網(wǎng)絡(luò)分析也可以看出,這些人物和其他人物均有交互關(guān)系,說明整本小說的行文思路基本圍繞這些人物展開。同時(shí),可以用其他方式展示文本中人物的社交關(guān)系,如圖4所示。圖中的線代表兩個(gè)人物之間存在交互關(guān)系,其中線越粗代表兩者交互場(chǎng)景越多。當(dāng)然,如果更想進(jìn)一步了解每個(gè)章回中人物關(guān)系,可以選擇章回中人物文本數(shù)據(jù)進(jìn)行分析。
4 《紅樓夢(mèng)》文本各章回聚類分析
對(duì)于任何一個(gè)復(fù)雜的網(wǎng)絡(luò)而言,當(dāng)中的節(jié)點(diǎn)會(huì)表現(xiàn)出集群的特性。本研究的網(wǎng)絡(luò)聚類分別采用K-means聚類和層級(jí)聚類進(jìn)行分析探究。K-means聚類在使用過程中需要制定聚類的簇?cái)?shù),然后將樣本向量中距離近的點(diǎn)聚類到一組中。在假定要聚類的每個(gè)小組中有一個(gè)中心點(diǎn),K-means算法的目的就是找到這些中心點(diǎn)的坐標(biāo),使得所有樣本向量到其分組中心點(diǎn)的距離平方和最?。?]。對(duì)于K-means聚類首先要進(jìn)行的就是構(gòu)建語(yǔ)料庫(kù),并計(jì)算文本文檔詞的TF-IDF矩陣,如圖5左側(cè)所示。隨后,采用K-means聚類分析,例如調(diào)節(jié)聚類的簇為2,對(duì)于《紅樓夢(mèng)》章回聚類結(jié)果如圖5所示。從圖中可以看到第六回、第三十九回、第四十回、第四十一回、第四十二回、第一百一十三回等零散分布為一類,其他聚類為一類?;貧w到文本中,細(xì)讀文本可以發(fā)現(xiàn),文中對(duì)于劉姥姥出場(chǎng)描寫恰恰出現(xiàn)在第六回、第三十九回、第四十回、第四十一回、第四十二回、第一百一十三回。其中,第六回為劉姥姥初次進(jìn)榮國(guó)府,主要對(duì)劉姥姥人物出場(chǎng)以及進(jìn)賈府的原因進(jìn)行描述;第三十九至四十二回,是大家所熟知的內(nèi)容,主要是以劉姥姥視角描寫她初次進(jìn)大觀園的經(jīng)歷,是作者著重描述的部分;第一百一十三回,主要寫賈府?dāng)÷浜?,劉姥姥再進(jìn)賈府探親、救助巧姐等。通過章回的聚類可以幫助讀者進(jìn)一步梳理文本的思路和主線,能夠提高文本分析研究的效率。
層次聚類分析是通過計(jì)算不同類別數(shù)據(jù)點(diǎn)間的相似度來創(chuàng)建一棵有層次的嵌套聚類樹。在聚類樹中,不同類別的原始數(shù)據(jù)點(diǎn)是樹的最低層,樹的頂層是一個(gè)聚類的根節(jié)點(diǎn)。通過層級(jí)聚類可以看出聚類的結(jié)果呈現(xiàn)多層級(jí),聚類的根節(jié)點(diǎn)有兩個(gè),和K-means聚類維度為2的結(jié)果較為相似。但是除了從根節(jié)點(diǎn)看出兩個(gè)維度外,其他層級(jí)聚類結(jié)果也可視化展示出來,比K-means聚類呈現(xiàn)效果較好,如圖6所示。讀者如果需要進(jìn)一步研究,可以借助聚類后的結(jié)果,細(xì)讀同類章回的內(nèi)容,尋找其共性特征。
結(jié)語(yǔ)
如果讀者依靠傳統(tǒng)文本研究方法對(duì)小說進(jìn)行分析,每個(gè)讀者的理解和認(rèn)知不同,可能得出結(jié)果不太一樣,出現(xiàn)“千人千面”的現(xiàn)象。同時(shí),由于小說涉及人物、情節(jié)等較為復(fù)雜,很多讀者往往會(huì)因?yàn)槲谋咎^錯(cuò)綜復(fù)雜而放棄梳理。Python技術(shù)對(duì)于文本分析過程不同于人的常規(guī)思維,以計(jì)算機(jī)的思維方式或視角挖掘數(shù)據(jù)隱含的信息。只要研究分析者采用的方法合理科學(xué),呈現(xiàn)出的數(shù)據(jù)比人為分析結(jié)果更加能體現(xiàn)數(shù)據(jù)的準(zhǔn)確性,能夠減少研究者人為在解讀文本中出現(xiàn)過度解讀的情況。本研究利用Python技術(shù)實(shí)現(xiàn)了對(duì)《紅樓夢(mèng)》小說文本的分析研究,結(jié)合jieba、Networkx庫(kù)對(duì)整本小說的文本從基本信息統(tǒng)計(jì)、詞頻統(tǒng)計(jì)及詞頻云圖繪制、人物關(guān)系分析、章回聚類分析等進(jìn)行挖
圖6 各章回層次聚類結(jié)果圖
掘,完成了《紅樓夢(mèng)》章回字節(jié)數(shù)統(tǒng)計(jì)和喜悲字?jǐn)?shù)統(tǒng)計(jì)圖、詞頻統(tǒng)計(jì)云圖、人物社交全景圖、章回K-means聚類等可視化數(shù)據(jù)分析。本文所采用的研究方法適合于整個(gè)文本,也適合與任何一個(gè)章回的分析,通過文本挖掘的可視化分析可以幫助人們更加清晰地理解小說,在小說文本數(shù)據(jù)分析方面具有普適性。
參考文獻(xiàn):
[1]王天奇,管新潮.語(yǔ)料庫(kù)語(yǔ)言學(xué)研究的技術(shù)拓展——《Python文本分析:用可實(shí)現(xiàn)的方法挖掘數(shù)據(jù)價(jià)值》評(píng)介[J].外語(yǔ)電化教學(xué),2017,177(05):93-96.
[2]肖剛,張良均.Python中文自然語(yǔ)言處理基礎(chǔ)與實(shí)踐[M].北京:人民郵電出版社,2022.
[3]林峰,趙廣平,林娜,等.《紅樓夢(mèng)》文本的社會(huì)網(wǎng)絡(luò)結(jié)構(gòu)分析[J].石家莊鐵道大學(xué)學(xué)報(bào)(社會(huì)科學(xué)版),2018,12(01):58-63.
[4]李卓宇,馬樂榮,何進(jìn)榮.基于復(fù)雜網(wǎng)絡(luò)的人物關(guān)系建模研究——以《紅樓夢(mèng)》為例[J].現(xiàn)代信息科技,2021,5(03):1-4+8.
[5]巫芯宇.基于FTRM模型和K-means算法的大學(xué)生知識(shí)付費(fèi)產(chǎn)品使用行為研究[J].西南大學(xué)學(xué)報(bào)(自然科學(xué)版),2021,43(06):195-204.
作者簡(jiǎn)介:唐明珍(1990—),女,漢族,陜西安康人,碩士,中級(jí)職稱,研究方向:教學(xué)法研究、文本分析研究。