引入等价性检验模型,选取“红”、“玉”二字统计频数,计算检验统计量U与p值。根据U检验值与概率对照表,初步得出前80章与后40章存在差异,并非一人所著。同时选取K均值聚类与凝聚聚类,根据词频聚类出多种情况。结果表明,《红楼梦》全书使用词频均存在着差异,其作者不止一人。 The equivalence checking model is introduced to calculate the test statistics U and p values by se-lecting the statistical frequency of “red” and “jade”. According to U-tests and probability compara-tive table, differences between the first 80 chapters and the last 40 chapters are preliminarily concluded. Many cases are clustered by word frequency with K-means clustering and agglomerative clustering. The results show that there are differences in word frequency used in A Dream of Red Mansions, and there is more than one author.
程东波,柯小玲*,林施鑫
闽江学院数学与数据科学学院,福建 福州
收稿日期:2020年4月27日;录用日期:2020年5月20日;发布日期:2020年5月27日
引入等价性检验模型,选取“红”、“玉”二字统计频数,计算检验统计量U与p值。根据U检验值与概率对照表,初步得出前80章与后40章存在差异,并非一人所著。同时选取K均值聚类与凝聚聚类,根据词频聚类出多种情况。结果表明,《红楼梦》全书使用词频均存在着差异,其作者不止一人。
关键词 :等价性检验,特征聚类,K-均值聚类,凝聚聚类
Copyright © 2020 by author(s) and Hans Publishers Inc.
This work is licensed under the Creative Commons Attribution International License (CC BY 4.0).
http://creativecommons.org/licenses/by/4.0/
《红楼梦》是中国古典四大名著之一,清代作家曹雪芹创作的章回体长篇小说。由于其在传播和保留过程中出现缺失,当下普遍的观点是前80回是曹雪芹所著,高鹗续写后40回。
前人的论述已经多从文学用语和数理统计学两大方面反复地论证过,并且得出结论:《红楼梦》前80回与后40回的作者并非同一人,甚至《红楼梦》全书也非一个作者所著。瑞典汉学家高本汉(B. Karlgren) 早在1952 年用统计学方法分析了32个语法和京话与口语词汇的用字习惯,认为全部120回均为曹雪芹所著 [
采用统计方法进行研究的主要有:李国强 [
本文主要利用特征聚类对《红楼梦》前80回和后40回进行文本分析。分析《红楼梦》120回的词量、词频,确认其是否为同一作者所著,并用等价性检验模型进行验证。
统计全文中“红”、“玉”的字频,得到表1所示数据。根据表1的数据可以绘制“红”、“玉”二字在前80回和后40回的频率,如图1所示。由此,容易看出“红”、“玉”两字在前80回与后40回的频率存在差异。
前80回 | 后40回 | 前80回频率 | 后40回频率 | |
---|---|---|---|---|
“红” | 470 | 153 | 0.0838% | 0.0553% |
“玉” | 3264 | 1720 | 0.5817% | 0.6217% |
合计 | 3734 | 1873 | 0.6655% | 0.6770% |
总字数 | 561,093 | 276,659 |
表1. 全文中“红”和“玉”的频数统计表
图1. 《红楼梦》中“红”“玉”二字在前80回频率和后40回频率
选取等价性检验模型,假设前80章与后40章两个样本并未存在显著差异,即作者为同一人。根据表1,《红楼梦》前80章回和后40章回的“红”字和“玉”字出现的频数分析数理统计学的问题,求解等价性检验模型。这一检验问题可化为两个相互独立的二项总体的等价性检验,此时: X 1 ~ b ( n 1 , p 1 ) 表示前80回的二项分布,其中 n 1 = 561093 , X 1 表示前80章回的“红”字出现的频数,其实测值为 x 1 = 470 , p 1 表示前80章回“红”字出现的频率; X 2 ~ b ( n 2 , p 2 ) 表示后40回的二项分布,其中 n 2 = 276659 , X 2 表示后40章回的“红”字出现的频数,其实测值为 x 2 = 153 , p 2 表示后40章回“红”字出现的频率。
采用渐进正态检验,计算检验统计量U,进而计算检验的p值,即:否定原假设而犯错误的概率。解得记“红”字的检验统计量 U 1 ≈ 4.494465 。重复上述步骤解得“玉”字的检验统计量 U 2 ≈ 2.238018 。等价性检验模型的U检验值与概率对照表如表2所示。
U检验值 | p-值 | 可信概率% |
---|---|---|
2.4360 | 0.0074 | 99.26% |
2.3590 | 0.0092 | 99.08% |
1.8622 | 0.0313 | 96.87% |
1.5811 | 0.0569 | 94.31% |
1.4325 | 0.0760 | 92.40% |
表2. U检验值与概率对照表
通过表2可得:U检验值越大,则可信概率就越大,即:拒绝原假设,差异就越显著。从数值模拟获得的数据分析,“红”、“玉”两字的U检验量足够大,表明前80回与后40回确实存在显著差异。
但无论观察图表,或是对照等价性检验的结论,都可以发现其中明显的问题:等价性检验所呈现的结果存在偏差,寻找其原因也能很容易发现,“玉”字与主角名字有很大的关系,而主角之一的“林黛玉”在后40章已经去世,这就对这个字的频数造成一定的影响。
综上,该方法中存在两个缺陷。其一,适用性差。因为需要抽取样本逐一进行等价性检验,对多个样本重复操作的过程将会十分繁琐;其二,模型稳定性差。针对于“红”和“玉”两个样本,出现了U检验值不小的差异,足以说明不同样本之间存在的差异性会受到其余因素的影响,且每个样本之间可能会出现矛盾。
所以,进一步选取特征聚类验证继续验证猜想。
以每十章回为样本,分别对特征词频进行统计,选取代词进行统计,结果如图2。
图2. 按照词性(词性)分词后统计的词频示例
根据分词结果统计每十回的代词词量,如下表3所示。
1~10回 | 11~20回 | 21~30回 | 31~40回 | 41~50回 | 51~60回 | 61~70回 | 71~80回 | 81~90回 | 91~100回 | 101~110回 | 111~120回 |
---|---|---|---|---|---|---|---|---|---|---|---|
218 | 188 | 158 | 169 | 155 | 187 | 179 | 174 | 139 | 148 | 148 | 163 |
表3. 每十回的代词词量
其次,将各个代词的词频按照递减的顺序排列,选取词频排行前50的代词词频来作为第一次选取的特征向量,如图3。
图3. 第一特征向量
显然在第一特征向量的代词中,并不是每个样本的第一特征向量的元素都相同,因此进一步提取数据。在第一特征向量中,统计在每个样本中都出现的元素,如图4。
根据我们划分样本的方式,上图中的数字为12的即表示每个样本中都包含的元素。因此,将每个样本中都包含的元素作为第二特征向量,每个向量中包含27个元素,即为最终选取的特征向量。并将每个样本中的数据进行提取,最终的数据提取的结果如图5所示。
图4. 每个样本中包含的元素情况
图5. 最终选取的数据实例
根据选取的27个特征值,依次提取相应的词频,组成特征向量,如图6。
图6. 12个样本的特征向量数据
使用python机器学习模块Scikit-Learn模块进行求解。
将K均值聚类模型实例化,将处理后的特征向量应用到算法模型中,解得:
图7. K均值聚类两个类别的聚类情况
从图7来看,容易发现第21回到第80回分自然的分在了一个类别,而前20回却和后40回分在了一起,这说明:前20回合后40回有更好的相似性。这不符合预计结果,猜想可能原因是前80回内部存在相似性存在一定的差异。
为进一步分析上述结论的原因,现将特征向量应用到新的算法模型中,该算法模型训练3个簇,即3个类别。实验结果如下图8所示:
图8. K均值聚类三个类别的聚类情况
从图9的实验结果来看,我们很容易发现从第21回到80回内部存在一定的差异性,被分成了两个类别;而前20回和后40回仍被分在了一个类别。该实验结果只说明了:第21回到第80回内部存在差异性。
再次训练新的算法模型,该算法模型训练4个类别,实验结果如图9。
图9. K均值聚类四个类别的聚类情况
这个实验结果很明显看出,前80回合后40回内容存在差异,不是同一个人所著。但同时,前80回同样存在差异,因此我们可以以这个结果进一步进行猜想,《红楼梦》不仅有两个作者,可能存在两个以上的编撰者。
凝聚聚类算法的处理方式与K均值聚类的方式相似,将图6的特征向量应用到凝聚聚类算法模型中。分别试验聚成两个类、三个类、四个类的算法模型,实验结果如图10。
图10. 凝聚聚类分别聚成2,3,4个类别的聚类情况
从图10很容易发现:在采用凝聚聚类聚成3个类别的时候,能够很显然的体现出前80回和后40回作者不一,而在前80回中,前20回和其他60回作者存在差异。
综合上述模型求解结果,等价性检验模型虽然作为数理统计中优秀的模型,但依旧有着不小的局限性,在处理多个样本的情况下,K均值聚类和凝聚聚类反而得到了优秀的结果。从最终的实验结果可以观察出,根据分析《红楼梦》前80回和后40回的部分词量和词频,可以表明《红楼梦》前80回和后40回并不是同一作者所著。除此之外,我们还发现,在前80回内的文章也存在着不小的差异。因此可以一定程度上表明,《红楼梦》不止一个作者所著。
闽江学院校长基金(103952018230)。
程东波,柯小玲,林施鑫. 基于等价性检验和特征聚类的《红楼梦》作者分析An Analysis of the Authors of A Dream of Red Mansions Based on Equivalence Checking and Feature Clustering[J]. 理论数学, 2020, 10(05): 549-555. https://doi.org/10.12677/PM.2020.105067