基于python的数据处理和模糊层次聚类

2018-09-26 10:18赵金晖
无线互联科技 2018年14期
关键词:模糊数学红楼梦

赵金晖

摘 要:《红楼梦》的作者问题一直是“红学研究”的热点。其中前80回和后40回分別由曹雪芹和高鹗所书的说法广为流传。通过直接调用数据分析的软件可以直观地看到结果,但并不能展示细节。文章将应用模糊层次聚类的方法,并详细展示主要步骤,比起均值聚类,文中的方法更加贴近于人的思维,便于理解和学习,研究者可以通过训练,熟练掌握文本处理、矩阵运算和编程等技巧。

关键词:python;层次聚类;模糊数学;红楼梦

《红楼梦》的作者问题一直是红学研究的热点。多位作者、不同时期的写作都可能是《红楼梦》全本风格不一的原因。其中前80回和后40回分别由曹雪芹和高鹗所书的说法广为流传。文章对这一假说进行简单的验证。本文取1—70回和86—120回进行聚类得出标准模型,并用余下的71—85回测试标准模型并验证所选的关于《红楼梦》作者的假说。

1 验证准备步骤

验证准备工作主要分为以下6个步骤。

(1)分章存储《红楼梦》全本;(2)分词后获取各章节共有的词;(3)得到章节间联系的模糊矩阵;(4)自下而上的层次聚类分析;(5)得到并验证标准模型;(6)扫描二维码(见图1)查看代码和处理结果。

2 文本处理

利用正则表达式获取《红楼梦》各章标题,以字典的形式分章存储红楼梦,key为标题,value为每章文本。对全本和各章进行分词后获取公共的词列表,共114个。统计公共词个数,得到长度为114的各章向量,如表1所示。

3 模糊向量和模糊矩阵

求1—70回和86—120回模糊向量集合List_for_matrix_index和章节间直接联系的模糊矩阵Direct_relation_matrix[i][j]。

4 聚类

数据准备完毕,开始聚类过程。设置阈值从1开始按0.000 1的步长逐渐减小,进行自下而上的聚类,当截矩阵(Cut_matrix)发生变化,以列表的形式存储阈值(Change_level_l)st)和新的截矩阵(Level_matrix_list)。

各截矩阵相减得到的布尔矩阵(New_relation_matrix)是向上聚类的依据,存储New_relation_matrix到New_relation_matrix_list。=1时,截矩阵对角线全为1其余为零,分成105类。

5 标准模型和假说验证

分别取1—70回和86—120回的平均向量为标准模型,计算71—85回到标准模型的距离效果比计算贴近度的效果更好,比较71—85各章到标准模型的距离,取小得['曹', '曹', '曹', '高', '曹', '曹', '曹', '曹', '曹', '曹', '高', '高', '高', '高', '高'],只有第74章判断错误,结果良好,由此可以简单验证《红楼梦》前80回和后40回不是同一人所写。

6 结语

本文在项目中应用模糊数学知识和Python编程语言。在实践中反复训练了文本处理、矩阵运算和编程技巧等,加深了对模糊向量和模糊矩阵的认识,初步掌握了模糊层次聚类的方法和应用,验证红楼梦前80回后40回是否为同一人所写仅仅是模糊数学的小小应用,通过模糊数学这一方法,我们可以发现更多意想不到的有趣的关联规则。

[参考文献]

[1]施建军.关于以《红楼梦》120回为样本进行其作者聚类分析的可信度问题研究[J].红楼梦学刊,2010(5):318-335.

[2]肖天久,刘颖.《红楼梦》词和N元文法分析[J].现代图书情报技术,2015(4):50-57.

[3]叶雷.基于计量文体特征聚类的《红楼梦》作者分析[J].红楼梦学刊,2016(5):312-324.

猜你喜欢
模糊数学红楼梦
论《红楼梦》中的赌博之风
从《红楼梦》看养生
《〈红楼梦〉写作之美》序
别样解读《红楼梦》
模糊数学方法在产教融合评价中的应用
漫谈“模糊数学”