标题 | 基于python的数据处理和模糊层次聚类 |
范文 | 赵金晖 摘 要:《红楼梦》的作者问题一直是“红学研究”的热点。其中前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. |
随便看 |
|
科学优质学术资源、百科知识分享平台,免费提供知识科普、生活经验分享、中外学术论文、各类范文、学术文献、教学资料、学术期刊、会议、报纸、杂志、工具书等各类资源检索、在线阅读和软件app下载服务。