用Python分析红楼梦,见证贾府的兴衰

写在前面

上一篇文章,我们借用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回。

从图上可以看出来,蓝色小球有更加聚集的趋势,但这个聚集度,和红色小球的聚集度相比并不是特别明显。所以,我们可以保守称,数据分析结果显示,有可能更换了作者。从这一点可以看出来,高鹗的确花了不少功夫续写红楼梦,至少在用词上面没有让差距太大。当然,还有一种解释是,由于高鹗要统筹全书,他会把前面章节一些不符合自己用词习惯的词汇进行改写,同时也不影响情节。

后语

我们用文本分析方法,窥见了红楼梦中一些主要信息和情节变化。欢迎大家留言讨论,说出自己感兴趣的文本素材,比如小说,朋友圈,微博等等。

原文发布于微信公众号 - 浊酒清味(gh_39aead19f756)

原文发表时间:2019-08-11

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

扫码关注云+社区

领取腾讯云代金券