干货 ▏用机器学习的方法鉴别红楼梦作者

作者: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函数实现。

目录结构

使用步骤

  • 运行 textProcesser.py,将原著文本分为章节,分词,词频统计
  • 运行 modelBuilder.py,对文本章节提取特征向量,建立分类模型
  • 运行 decisionMaker.py,对文本进行分类

结论

1 指该回目属于类别 1,2 指该回目属于类别 2。

可以得出结论:

  • 前 80 回属于一类,后 40 回属于一类
  • 80 回左右是分界点
  • 后 40 回风格不同于前 80 回

81~120 回中有一些被分成了 1 类,这与特征选取有关,还与使用的原著版本有关。这里的版本是网上下的电子版,版本不明,建议使用人民文学出版社 1982 年出版的《红楼梦》作为研究对象。

1~80 回有一些被分成了 2 类,可能是后 40 回作者在续写过程中对部章节进行了修改。

参考:http://scikit-learn.org/stable/modules/svm.html#svm

版权声明:转载文章均来自公开网络,仅供学习使用,不会用于任何商业用途,如果出处有误或侵犯到原作者权益,请与我们联系删除或授权事宜,联系邮箱:holly0801@163.com。转载大数据公众号文章请注明原文链接和作者,否则产生的任何版权纠纷与大数据无关。

原文发布于微信公众号 - 大数据(hzdashuju)

原文发表时间:2016-02-21

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

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏量子位

Tensorflow官方语音识别入门教程 | 附Google新语音指令数据集

李林 编译整理 量子位 报道 | 公众号 QbitAI Google今天推出了一个语音指令数据集,其中包含30个词的65000条语音,wav格式,每条长度为一秒...

91480
来自专栏AI科技评论

开发 | 如何加速神经语言模型训练?东北大学小牛翻译团队有妙招

团队简介:东北大学自然语言处理实验室(小牛翻译团队)由姚天顺教授于1980年创立,长期从事机器翻译及语言分析方面的研究。小牛翻译团队所研发的NiuTrans系统...

349130
来自专栏机器学习算法工程师

机器学习论文笔记—如何利用高效的搜索算法来搜索网络的拓扑结构

分层表示高效的架构搜索(HIERARCHICAL REPRESENTATIONS FOR EFFICIENT ARCHITECTURE SEARCH)这篇文章讲...

18920
来自专栏机器之心

16岁高中生夺冠Kaggle地标检索挑战赛!而且竟然是个Kaggle老兵

20030
来自专栏人工智能

长时间序贯任务结构的演示学习方法及其在手术机器人中的应用

本文总结了最近三篇论文的结果,这些论文提出了一些可以将更长的任务分解成更短子任务的学习算法。

371100
来自专栏计算机视觉战队

资源 | 深度学习入门和学习书籍

最近很多新入门的同学问我到底怎么入门,今天先给大家推荐一些有用的书籍和简单的入门。希望可以给有需要的朋友一些帮助,谢谢! 最近新出一本学习书籍,是我们学校焦李成...

45890
来自专栏大数据文摘

李飞飞CS231n项目:这两位工程师想用神经网络帮你还原买家秀

每当某个明星或者时尚博主在微博或者朋友圈po出一张图,这就是一次低成本的营销机会。随着网购与照片分享变得越来越流行,利用用户原创内容(UGC, User Gen...

7900
来自专栏CDA数据分析师

用机器学习的方法鉴别红楼梦作者

在学界一般认为,《红楼梦》后 40 回并非曹雪芹所著。本文尝试应用机器学习的方法来分析原著文本中作者的用词习惯,从技术角度去说明《红楼梦》前 80 回和后 40...

352100
来自专栏AI研习社

利用摇滚乐队学习TensorFlow,Word2Vec模型和TSNE算法

学习“TensorFlow方式”来构建神经网络似乎是开始机器学习的一大障碍。在本教程中,我们将一步一步地介绍使用Kaggle的Pitchfork数据构建Band...

18720
来自专栏人工智能

小白入门最简单的机器学习算法

阅读本文大概需要3分钟 菜鸟独白 上一篇(菜鸟学机器学习启航篇)对机器学习做了初步的介绍,机器学习的算法有很多,小白开始学习的时候,往往会被弄晕。有没有比较简单...

29190

扫码关注云+社区

领取腾讯云代金券