作者:ituzhi(微信公众号:timeisnull)
在学界一般认为,《红楼梦》后 40 回并非曹雪芹所著。本文尝试应用机器学习的方法来分析原著文本中作者的用词习惯,从技术角度去说明《红楼梦》前 80 回和后 40 回的写作风格差别,继而可以确认后 40 回非原作者所写。
项目存放在 reality-of-Dream-of-Red-Mansions。
主要原理
每个作者写作都有自己的用词习惯和风格,即使是故意模仿也会留下很多痕迹。
在文言文中,文言虚词分布均匀,书中每个回目都会出现很多文言虚词,差别在于出现频率不同,我们把文言虚词的出现频率作为特征。
不只文言虚词,还有其他的词在所有回目中出现频率很多。比如对第 80 回进行词频统计,得到:
这些高频词汇也可以作为特征向量。
本文将 20~29 回(诗词曲比较均衡)作为类别 1 的学习样本,将 110~119 回作为类别 2 的学习样本。
将两个类别的特征向量输入到 SVM(支持向量机) 进行训练得出一个分类模型。再对剩余回目进行分类,看它们分别偏向于哪个类别。
SVM 相关原理参见 NG 的公开课 Machine Learning 和 scikit-learn 库
相关学术论文参见
施建军. (2011). 基于支持向量机技术的《 红楼梦》 作者研究. 红楼梦学刊, (5), 35-52. 李贤平. (1978).《红楼梦》成书新说. 复旦学报(社会科学版).
特征选取
选取常用的 42 个文言虚词和通过词频统计得到的高频使用的词作为特征,分别计算它们在各个回目中出现的频率作为特征向量。
在源码中由 modelBuilder.py中的build_feature_vector函数实现。
目录结构
使用步骤
结论
1 指该回目属于类别 1,2 指该回目属于类别 2。
可以得出结论:
81~120 回中有一些被分成了 1 类,这与特征选取有关,还与使用的原著版本有关。这里的版本是网上下的电子版,版本不明,建议使用人民文学出版社 1982 年出版的《红楼梦》作为研究对象。
1~80 回有一些被分成了 2 类,可能是后 40 回作者在续写过程中对部章节进行了修改。
版权声明:转载文章均来自公开网络,仅供学习使用,不会用于任何商业用途,如果出处有误或侵犯到原作者权益,请与我们联系删除或授权事宜,联系邮箱:holly0801@163.com。转载大数据公众号文章请注明原文链接和作者,否则产生的任何版权纠纷与大数据无关。