前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >用Python分析红楼梦,见证贾府的兴衰

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

作者头像
HuangWeiAI
发布2019-08-15 15:58:27
1.5K0
发布2019-08-15 15:58:27
举报
文章被收录于专栏:浊酒清味浊酒清味

写在前面

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

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

后语

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

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-08-11,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 浊酒清味 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档