楼主: 安然2016
4941 3

用机器学习的方法鉴别红楼梦作者 [推广有奖]

  • 0关注
  • 13粉丝

讲师

7%

还不是VIP/贵宾

-

威望
0
论坛币
50136 个
通用积分
1.0002
学术水平
4 点
热心指数
12 点
信用等级
5 点
经验
5550 点
帖子
252
精华
0
在线时间
111 小时
注册时间
2016-2-16
最后登录
2017-5-25

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
原文  http://fuzhii.com/2016/01/16/redmansions/
主题 [size=0.9em]数据挖掘
[size=0.9em]特征向量

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

项目存放在 reality-of-Dream-of-Red-Mansions

主要原理

每个作者写作都有自己的用词习惯和风格,即使是故意模仿也会留下很多痕迹。

在文言文中,文言虚词分布均匀,书中每个回目都会出现很多文言虚词,差别在于出现频率不同,我们把文言虚词的出现频率作为特征。

不只文言虚词,还有其他的词在所有回目中出现频率很多。比如对第 80 回进行词频统计,得到

了   172的   142我   70宝玉  65你   61道   54他   51也   50着   48是   40说   38

这些高频词汇也可以作为特征向量。

本文将 20~29 回(诗词曲比较均衡)作为类别 1 的学习样本,将 110~119 回作为类别 2 的学习样本。

将两个类别的特征向量输入到 SVM(支持向量机) 进行训练得出一个分类模型。再对剩余回目进行分类,看它们分别偏向于哪个类别。

SVM 相关原理参见 NG 的公开课 Machine Learningscikit-learn 库

相关学术论文参见

施建军. (2011). 基于支持向量机技术的《 红楼梦》 作者研究. 红楼梦学刊, (5), 35-52.

李贤平. (1978).《红楼梦》成书新说. 复旦学报(社会科学版).


特征选取[ '之', '其', '或', '亦', '方', '于', '即', '皆', '因', '仍',  '故', '尚', '呢', '了', '的', '着', '一', '不', '乃', '呀',  '吗', '咧', '啊', '把', '让', '向', '往', '是', '在', '越',  '再', '更', '比', '很', '偏', '别', '好', '可', '便', '就', '但', '儿',                  # 42 个文言虚词 '又', '也', '都', '要',       # 高频副词 '这', '那', '你', '我', '他'  # 高频代词 '来', '去', '道', '笑', '说'  #高频动词]

选取常用的 42 个文言虚词和通过词频统计得到的高频使用的词作为特征,分别计算它们在各个回目中出现的频率作为特征向量。

在源码中由 modelBuilder.py 中的 build_feature_vector 函数实现。

目录结构.├── README.md├── textProcesser.py  # 文本处理├── modelBuilder.py   # 模型建立├── decisionMaker.py  # 作出判断├── neg_trainset.npy  # 正例训练集├── pos_trainset.npy  # 负例训练集├── trainset.npy      # 训练集├── testset.npy       # 测试集├── text              │   ├── redmansions.txt # 原著文本│   ├── chapter-1       # 按章分开,第一章│   ├── chapter-n│   ├── chapter-words-1 # 第一章分词结果│   ├── chapter-words-n│   ├── chapter-wordcount-1 # 第一章词频统计结果│   └── chapter-wordcount-n使用步骤
  • 运行 textProcesser.py ,将原著文本分为章节,分词,词频统计
  • 运行 modelBuilder.py ,对文本章节提取特征向量,建立分类模型
  • 运行 decisionMaker.py ,对文本进行分类
结论1~80 [ 1.  1.  1.  1.  1.  2.  2.  1.  1.  2.    2.  1.  1.  1.  1.  1.  1.  1.  1.  1.    1.  1.  1.  1.  1.  1.  1.  1.  1.  1.    1.  1.  1.  1.  1.  1.  1.  1.  1.  1.    1.  1.  1.  1.  1.  1.  1.  1.  1.  1.    1.  1.  1.  1.  1.  1.  1.  1.  1.  2.    2.  2.  1.  1.  1.  1.  1.  2.  1.  1.    1.  1.  1.  1.  1.  1.  1.  1.  1.  1.]81~120[ 1.  1.  2.  1.  1.  2.  2.  1.  1.  2.    1.  2.  2.  2.  2.  2.  2.  1.  2.  2.    1.  2.  2.  2.  2.  2.  2.  1.  2.  2.    2.  2.  2.  2.  2.  2.  2.  2.  2.  2.]

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




二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:红楼梦作者 学习的方法 机器学习 红楼梦 学习的 红楼梦作者 照片

沙发
fumingxu 发表于 2016-3-11 22:42:09 |只看作者 |坛友微信交流群

使用道具

藤椅
soccy 发表于 2016-3-12 07:45:34 |只看作者 |坛友微信交流群

使用道具

板凳
a524631266 在职认证  发表于 2016-3-16 23:26:30 来自手机 |只看作者 |坛友微信交流群
精炼

使用道具

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加JingGuanBbs
拉您进交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-9-18 05:57