前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >用 Python 分析《红楼梦》(全)

用 Python 分析《红楼梦》(全)

作者头像
Python中文社区
发布2018-02-01 10:29:33
2.5K0
发布2018-02-01 10:29:33
举报
文章被收录于专栏:Python中文社区

專 欄

楼宇,Python中文社区专栏作者。一位正在海外苦苦求学的本科生。初中时自学编程,后来又在几位良师的帮助下走上了计算机科学的道路。曾经的 OIer,现暂时弃坑。兴趣不定,从机器学习、文本挖掘到文字识别以及各种杂七杂八的知识都有一点点涉猎。同时也对物理学有相当大的兴趣。

知乎:https://www.zhihu.com/people/lou-yu-54-62/posts

GitHub:https://github.com/LouYu2015❈

用 Python 分析《红楼梦》(1)

用 Python 分析《红楼梦》(2)

9.3 再次分析

在之前的分析中我们发现,“笑道”这个词似乎和情节的关系比较大,并且严重影响到了我们的分析。此外,“宝玉”作为一个人名,它的权重的绝对值也比较大,也可能是受到了情节的影响。因此,我决定把这两个词“拉黑”,用剩下的 48 个词的词频做特征,再次进行 PCA 分析。这次结果如下:

这次我需要把特征压缩到三维空间而非二维空间了。这是因为之前我们得到的两个成分的方差贡献率(可以理解为成分提供的信息量)分别为 44.6% 和 19.0 %,总贡献率 63.6%,算是比较高了。而现在,即使是三个成分,方差贡献率也只有 23.9%,10.6% 和 6.9% 了,总贡献率才 41.4%。可见去掉“笑道”和“宝玉”以后,从词频中发掘信息的难度提高了很多。

从图中可以看到,现在后 40 回已经不像之前那么聚集了,不过还是可以看出一点聚集的趋势。特别地,前 80 回和后 40 回在成分二和成分三上的区别比较明显。和之前一样,我们可以把在这两个成分中权重的绝对值比较大的词都找出来,看看它们的词频变化。

在成分三中,权重最小的五个单词是:没有(-0.41)、听见(-0.25)、如今(-0.21)、所以(-0.18)、我们(-0.14)。(括号内为权重)

而权重最大的五个单词是:听了(0.22)、两个(0.26)、说着(0.30)、只见(0.37)、一面(0.39)

成分二中,权重最小的三个单词是:什么(-0.30)、怎么(-0.26)、听见(-0.22)

权重最大三个单词是:一个(0.28)、你们(0.37)、我们(0.43)

(“听见”在排名中出现了两次。不过不知道这个发现有什么用。)

可以发现,有些词的词频确实有一些异常的变化。然而,这些变化到底有没有受到剧情影响呢?感觉很难说。此外,在 PCA 结果中,似乎前 40 回和中间 40 回也分开了一些,只是没有后 40 回那么明显而已。那么这是不是说明 PCA 的结果也是受到了剧情的影响呢?

总之,我有点把握认为《红楼梦》前 80 回和后 40 回的用词是有一些差异的,不过因为难以排除剧情的影响,所以我对于作者是不是同一个人这个问题还不敢下定论。虽然没有完全解决这个问题,不过这个过程中误打误撞产生的发现也是挺有意思的,比如“笑道”的词频变化和贾府兴衰史的有趣重合。更重要的是,看似枯燥的数学公式可以做出这些好玩的分析,Math is fun

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

本文分享自 Python中文社区 微信公众号,前往查看

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
文字识别
文字识别(Optical Character Recognition,OCR)基于腾讯优图实验室的深度学习技术,将图片上的文字内容,智能识别成为可编辑的文本。OCR 支持身份证、名片等卡证类和票据类的印刷体识别,也支持运单等手写体识别,支持提供定制化服务,可以有效地代替人工录入信息。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档