寫在前面
在上一篇文章,我們借用jieba分詞工具,提取了《紅樓夢》120回中的出現次數較高的詞,然後用詞雲工具将結果畫了出來。
這一次我們将會更細緻分析紅樓夢,而且由于jieba分詞工具是基于現代白話文而進行分詞,可能對紅樓夢這種半白半古的文風分析起來有偏差。這裡我們借鑒知乎的一篇文章,手動建立分詞。
參考:
https://zhuanlan.zhihu.com/p/29209681
分詞詞頻統計
什麼是分詞?衆所周知中文是以字為機關,句子中所有的字連起來才能描述一個意思。例如我是一個學生。計算機不能很容易明白“學”、“生”兩個字合起來才表示一個詞。把中文的漢字序列切分成有意義的詞,就是中文分詞,有些人也稱為切詞。我是一個學生,分詞的結果是:我是 一個 學生。
為了檢視分詞随着章節的變化,除了分析整本紅樓夢,我們還将紅樓夢120章回分開來,逐章進行分詞分析。
我們調取紅樓夢中葬花吟的分詞結果:
花謝/花飛/花滿/天,紅/消/香/斷有/誰憐,遊絲/軟/系飄春榭,落/絮輕沾撲/繡簾,閨中/女兒/惜春/暮,愁緒/滿懷/無/釋/處,手/把花鋤/出/繡簾,忍/踏/落花/來/複去,柳絲榆莢/自/芳菲,不管/桃/飄/與李/飛,桃李/明年/能再/發,明年/閨中/知/有誰,三月/香/巢已壘成,梁間/燕子/太/無情,明年/花/發/雖可/啄,卻不/道/人去/梁空巢/也/傾,一年/三百六十/日,風/刀霜劍嚴/相/逼,明/媚/鮮妍/能/幾時,一朝/飄泊/難/尋覓,花開/易見/落/難尋,階前/悶/殺/葬花/人,獨/把花鋤/淚/暗灑,灑/上/空/枝/見/血/痕,杜/鵑/無語/正/黃昏,荷鋤歸/去掩/重門,青燈/照壁/人初/睡,冷/雨敲窗被/未/溫,怪/奴/底/事/倍傷/神,半/為/憐春/半/惱/春,憐春/忽至/惱/忽/去,至/又/無言/去/不聞,昨宵/庭外悲歌/發,知是/花魂/與/鳥魂,花魂/鳥魂/總難/留,鳥/自/無言/花自/羞,願/奴/脅下/生/雙翼,随/花/飛到/天盡頭,天盡頭,何處/有/香/丘,未/若錦/囊收豔骨,一堆/淨/土掩/風流,質本潔/來/還/潔/去,強/于/污/淖陷渠溝,爾今/死去/侬收葬,未蔔/侬/身/何日/喪,侬今葬/花人笑癡,他年葬侬/知是誰,試看/春/殘花/漸/落,便是/紅顔老/死時,一朝春盡/紅顔老,花落人亡/兩/不知
事實上,這和人工分詞結果對比準确率有75%左右,但是由于詩詞本身分詞難度較大,加上我們對分詞準确率要求也不比太高,因而我們暫時相信這個分詞結果。
利用分詞程式得到整本紅樓夢以及每一個章節的分詞結果後,下一步就是詞頻統計,這個過程相當于給每個詞進行計數出現頻率最大的前16名的單詞:
寶玉(3945)、笑道(2415)、賈母(1558)、鳳姐(1518)、什麼(1408)、我們(1159)、襲人(1144)、一個(1103)、黛玉(1095)、王夫人(1061)、寶钗(1017)、如今(1012)、聽了(941)、出來(938)、你們(937)、老太太(933)
你可能會問,為什麼黛玉的出場率要比襲人還要低。其實黛玉還有一個單詞分身,叫林黛玉,有294次出場。如果将林黛玉出現的頻率加到黛玉身上,那麼她會超過襲人。這一點同用jieba分詞的結果是一緻的。
情節變化
現在我們利用每個章節的分詞結果,來考察不同關鍵詞随着小說情節變化而發生着怎樣的變化。為了排除幹擾因素,我們隻選詞頻率最高的100個詞中進行分析。
我們首先分析幾個人物出場的變化:

可以看出來賈母的出場一直都很高,在第一百一十回史太君壽終歸地府,王鳳姐力诎失人心,賈母死亡後出場率迅速下降。
薛寶钗大緻有兩個階段出場率比較高,一個是前25回到65回左右,這段期間正值賈府勢力鼎盛,寶玉和姐妹們在大觀園裡快樂地生活中。另一個階段就是95回後,大家安排寶玉和寶钗的婚事,而這時候賈府已然走下沒落。
探春的出場在前八十回和後四十回有顯著的不同,在八十回,相較于寶玉賈母等人,探春顯得相對透明。而在八十回以後出場次數增多,在賈府日漸衰落之際,探春卻發揮着越來越重要的作用。這的确驗證了探春的一段自白:
我但凡是個男人,可以出得去,我必早走了,立一番事業,那時自有我一番道理。偏我是女孩兒家,一句多話也沒有我亂說的。
作為紅樓夢中的搞笑擔當,劉外婆的出場三個階段十分明顯,第6回劉外婆一進榮國府、39回劉外婆是信口開河、41回劉外婆醉卧怡紅院、113回忏宿冤鳳姐托村妪。雖然劉外婆出身低微,也因為沒見過大場面鬧出很多笑話,卻在最終挺身而出,患難見真情。
我們還找到了反應情節變化的一個關鍵詞:
這個笑道可謂是見證了賈府興衰榮辱的核心詞彙。在前八十回賈府勢盛,大家有說有笑,其樂融融。而之後随着賈府衰敗,衆人笑聲迅速較少,随之而來必是哀嚎嗟歎。
是否是同一個作者
能不能通過詞頻變化來驗證紅樓夢是否為同一個作者呢?要想這麼做,我們有一個比較靠譜的思路。找到和情節無關的一些典型用詞,進而分析作者的用詞習慣來觀察是否發生了明顯的變化。
通過計算一些詞彙的方差,我們找到了幾個和情節關系很小的詞彙:
下回分解、也不、不知、一個、起來、如今、自己、聽了、那裡、什麼、出來、說着、話說、這裡、來了、隻得、我們、隻是、怎麼、就是、去了、進來、知道、隻見、這樣、出去、一時、還有、不得、都是、你們、寶玉、見他、不能、聽見、不是、兩個、說道、一面、咱們、這個、不敢、的人、沒有、還不、又不、笑道、是以、不過、叫他
我們先通過畫出頻率統計圖,初步觀察一下:
可以發現,沒有這個詞在八十回前後有明顯頻率變化,但是這也有可能是情節需要。
聽見這個詞在八十回以後迅速增多,由于它和情節并沒有太大關聯,似乎是因為換了作者而改變了用詞風格導緻。
是以這個詞可以看出來前四十回用的相對較少,而從50回之後頻率增多,但不太能看出來八十回前後的重要差距。
從上面舉的例子可以看出來,一些用詞的确在八十回前後發生了改變,但這不足以證明換了作者這一說。為了更加全面研究,我們并不打算一個個列舉這些詞彙的變化圖,而是采樣一種叫做“主成分分析法”的技術來提取和情節無關的詞彙的主要特征。通過觀察這些特征是否在八十回前後有差別,來判斷作者更換一事。
通俗解釋主成分分析法,就是假如我們標明的詞彙是一幅畫的很多碎片片段,通過将這些碎片拼起來,提取主要特征,觀察整幅畫畫的是鹿還是馬。
我們提取了三個主要特征,并把每個章回都畫在了同一個圖上,其中紅色的是1-40回,綠色的是41-80回,而藍色的是81-120回。
從圖上可以看出來,藍色小球有更加聚集的趨勢,但這個聚集度,和紅色小球的聚集度相比并不是特别明顯。是以,我們可以保守稱,資料分析結果顯示,有可能更換了作者。從這一點可以看出來,高鹗的确花了不少功夫續寫紅樓夢,至少在用詞上面沒有讓差距太大。當然,還有一種解釋是,由于高鹗要統籌全書,他會把前面章節一些不符合自己用詞習慣的詞彙進行改寫,同時也不影響情節。
後語
我們用文本分析方法,窺見了紅樓夢中一些主要資訊和情節變化。歡迎大家留言讨論,說出自己感興趣的文本素材,比如小說,朋友圈,微網誌等等。