2017 年 第 26 卷 第 12 期
http://www.c-s-a.org.cn
计 算 机 系 统 应 用
个体间是否存在共同的特征. 基于Jaccard系数可以成
对评估数据的相似性和多样性, Niwattanakul[22]将其用
于比较关键词之间的相似性, 并在关键词聚类上取得
了较好的结果. Huang[23]对7个数据集采用5种最为广
泛使用的相似性措施, 并表明Jaccard系数能达到最好
的效果. 与现有的相似度计算方法不同, 邓琨[24]提出的
JS和JSJ相似度计算方法, 不仅可以反映出数据的局
部相似性, 还可以高效地从整体上来评估其相似关系.
针对传统方法的不足, 本文运用一种基于改进的
Jaccard模型的计算方法, 提出一种兼顾特征项权重与
计算效率的文本相似度计算方法, 用以获得更准确的
文本信息描述, 提高文本分类性能.
2 方法及原理
文本相似度是指在两篇或者多篇文档中出现的词
语、句子、段落或者篇章的吻合程度. 两篇文档在词
语、句子、段落或者篇章上越相同或相似部分越多,
代表着这两篇文档的相似度越高. 文档相同是特殊的
相似, 即相似度为100%.
2.1 主要步骤
以下介绍本文方法的主要步骤:
(1) 给定参数K, K为文档中移动窗口大小. 给定两
个文档长度分别为n1、n2的文档X和文档Y. 确定文
档中长度为K的元素个数, 并计算每个元素在文档中
所占的比重;
(2) 计算每个元素的Jaccard相似度;
(3) 计算每个元素在所有长度为K的元素中所占
的比重;
(4) 确定每个K字元素的权重;
(5) 汇总所有K字元素相似度, 计算文档相似度.
2.2 步骤的详细描述
以下是上述步骤的详细解析.
(1) 确定文档中长度为K的元素个数, 并计算每个
元素在文档中所占的比重.
假设文档X和Y的文档长度分别为n1和n2, 则文
档X中含有n1个长度为1的元素
, 含有(n1-1)个长
, 依此类推, 文档X中含有1个长度
度为2的元素
为n1的元素, 这些元素的滑动窗口的大小为1, 该滑动
窗口从文本起始位置滑向终止位置进而形成了n-Gram.
所以在文档X中含有(n1-K+1)个长度为K的K字元
素(1≤K≤n1), 文档Y中含有(n2-K+1)个长度为K的
K字元素(1≤K≤n2).
而每个K字元素在文档X、Y中所占的权重分别为:
(2) 计算元素的Jaccard相似度.
根据Jaccard相似度原理, 文档X和文档Y的
Jaccard相似度等于文档X和文档Y的交集大小与并
集大小的比值. 若有元素 同时存在于文档X、Y中,
那么该元素对应的两文档改进的Jaccard相似度为:
(3) 计算每个元素在所有长度为K的元素中所占
的比重.
用
代 表 元 素 在 文档X和 文档Y所有n-
Gram长度为K的元素中的所占的权重
, 则有:
(4) 确定元素对文档相似度是否有贡献.
用
代表元素wi在文档X和文档Y是否同时
出现, 则:
若元素同时出现在两个文档中, 则该元素对文档
的值为1; 否则,
X和Y的文档相似度有贡献,
的值为0.
(5)计算文档相似度.
文档X和文档Y的相似度评价函数如下:
2.3 示例
以下以具体文档为实例来介绍本文的文本相似度
方法.
例如在文档X=“abcabc123”与文档Y=“123abc”中,
他们的文档长度分别为n1=9和n2=6.
假设n-Gram长度K=3, 那么在文档X中含有
7个n-Gram长度为3的L字元素: {abc, bca, cab, abc,
Software Technique·Algorithm 软件技术·算法 139
Xw1Xw2NXw=jXwjn1K+1(1)NYw=jYwjn2K+1(2)wiCJ(Xwi;Ywi)=Xwi\YwiXwi[Ywi=min(Xwi;Ywi)max(Xwi;Ywi)=min(NXwi;NYwi)max(NXwi;NYwi)(3)"(wi)wi"(wi)"(wi)=Xwi+Ywin1K+1+n2K+1(4)F(wi)F(wi)={1(wi2X\Y)0(wi
计 算 机 系 统 应 用
http://www.c-s-a.org.cn
2017 年 第 26 卷 第 12 期
bc1, c12, 123}, 在文档Y中含有4个n-Gram长度为
3的L字元素: {123, 23a, 3ab, abc}.
在文档X中n-Gram长度为3的元素为{abc, bca,
cab, bc1, c12, 123}, 对应的数量分别为{2, 1, 1, 1, 1, 1};
在文档Y中n-Gram长度为3的元素为{123, 23a, 3ab,
abc}, 对应的数量分别为{1, 1, 1, 1}.
在文档X中, 元素wabc, wbca, wcab, wbc1, wc12,
w123所占的权重分别是
; 在文档Y中, 元
素w123, w23a, w3ab, wabc所占的权重分别是
.
由于元素wabc和w123同时出现在文档X和文档
Y中, 所以X、Y两文档改进的Jaccard相似度为:
文档X、Y中所有元素为: wabc, wbca, wcab, wbc1,
wc12, w123, w23a, w3ab, 那么这些元素在文档X和文档
Y所有n-Gram长度为3的元素中的所占的比重是:
由于元素wabc和w123同时出现在文档X和文档
Y中, 所以:
而元素wbca, wcab, wbc1, wc12, w23a, w3ab不是同时出现在
文档X和文档Y中, 所以:
所以, 文档X和文档Y的相似度为:
140 软件技术·算法 Software Technique·Algorithm
3 实验设计及结果分析
3.1 实验目的
本实验的目的是验证上述技术方案的有效性与准
确度, 且探讨该技术方案下, 元素的L字长度与相似度
的关系.
3.2 实验方案
本文的实验数据来源于搜狗实验室提供的文本分
类语料库[25], 一共有43 565篇文本, 从其中随机选出
8 000篇长短不一的文档. 为了减小实验误差, 对8 000
篇文本进行字符处理, 去掉文本中的空格与标点符号
及一些特殊符号, 如“●”, 即不将上述符号计入文本长
度中. 经过上述处理后, 再筛选出文本长度超过10k的
100篇文档. 在接下来的实验中, 用与这些文档的内容
不相关的字符来对这100篇文档进行字符替换, 每篇
文档每次替换的字符数占其总字符数的5%、10%、
…、95%这19个比例, 即替换字符后的文档与原文档
的字符重复比例为95%、90%、…、5%. 替换的位置
是从每篇文本中任意筛选出来的, 即经过字符替换后
得到的文档与原文档的字符相异之处是随机的. 本实
验的文档内容涉及领域较为广泛, 如汽车、财经、健
康、旅游等.
本实验着重从两个方面来验证上述提出的计算文
本相似度的有效性: (1) 验证本方法计算得到的相似度
与实际重复率之间的关系. (2) 分析L参数的选择与计
算精度的关系. 其中实验一是通过改变L字计算不同
字符重复比例下的文本相似度值; 实验二则是利用实
验一得出的重复比例与相似度的相关性(精度), 计算
在不同L字长度的元素下相关性(精度)发生的变化.
实验一. 验证本方法计算得到的相似度与实际重
复率之间的关系.
经过数据预处理, 对得到的文本长度超过10 k的
100个文档, 分别对其进行如下操作(为简化问题, 本
实验主要针对一篇文档对不同L字时字符重复比例与
相似度的关系进行探讨与说明, 而其余文档的处理方
式可以对照参考).
对于文档A, 分别按照不同重复比例对其进行字
27;17;17;17;17;1714;14;14;14CJ(Xwabc;Ywabc)=Xwabc\YwabcXwabc[Ywabc=min(Xwabc;Ywabc)max(Xwabc;Ywabc)=min(NXwabc;NYwabc)max(NXwabc;NYwabc)=1=42=7=78CJ(Xw123;Yw123)=Xw123\Yw123Xw123[Yw123=min(Xw123;Yw123)max(Xw123;Yw123)=min(NXw123;NYw123)max(NXw123;NYw123)=1=71=4=47CJ(Xwbca;Ywbca)=CJ(Xwcab;Ywcab)=CJ(Xwbc1;Ywbc1)=CJ(Xwc12;Ywc12)=CJ(Xw23a;Yw23a)=CJ(Xw3ab;Yw3ab)=0"(wabc)=311;"(wbca)=111;"(wcab)=111"(wbc1)=111;"(wc12)=111;"(w123)=211"(w23a)=111;"(w3ab)=111F(wabc)=1;F(w123)=1F(wbca)=F(wcab)=F(wbc1)=F(wc12)=F(w23a)=F(w3ab)=0SimilaritycJ(X;Y)=∑wh2∑KCJ(Xwh;Ywh)"(wh)∑wh2∑KF(wh)"(wh)=CJ(Xwabc;Ywabc)"(wabc)+CJ(Xw123;Yw123)"(w123)F(wabc)"(wabc)+F(w123)"(w123)0:75
2017 年 第 26 卷 第 12 期
http://www.c-s-a.org.cn
计 算 机 系 统 应 用
符替换, 依次得到19个文档: A1, A2, …, A19. 即文档
A1, A2, …, A19与文档A的字符重复比例分别为5%,
10%, …, 95%. 分别选择不同长度的L字(L=2, 3, …,
7)元素, 计算在该元素长度下, 文档A1, A2, …, A19与
文档A的文本相似度. 并计算100篇文档19种重复比
例的平均相似度.
实验二. 分析L参数的选择与计算精度的关系.
分别选择不同长度的L字(L=2, 3, …, 7), 计算实
验得到的字符重复比例与文本相似度的关系, 即相关
性(精度), 分析在不同L字长度的元素下相关性(精
度)发生的变化.
3.3 实验结果与分析
(1) 不同L字时重复比例与相似度的关系
对实验数据的100个文档与其在不同L字时重复
比例与平均文本相似度的关系进行计算, 得到的结果
如图1所示, 横坐标表示重复比例, 纵坐标表示该重复
比例下对应的平均文本相似度.
度的线性回归关系越明显.
2) 相似度与重复比例不一定总呈现相等关系. 在
实际应用过程中, 可对训练文本进行训练得到相似度
与重复率的对应关系, 进而对测试文本进行计算, 可根
据计算所得的相似度结果推断出实际重复率的值.
3) 从整体趋势来看, 图中6种L字长度所对应的
曲线没有太大的差别. 这说明影响两文本相似度的因
素不只是所选L字长度. 并且随着长度L字的不断增
加, 相似度曲线趋于平稳, 如L字为6、7的散点图所
对应的曲线明显比2对应的曲线起伏更小, 甚至接近
一条直线. 这主要是因为, 随着L字不断增加, 相似度
计算越精确, 从而使最终结果趋于平稳.
(2) 计算相关性(精度)与L字长度的关系
如图2所示, 在L=2至7时, 随着L字长度的不断
增大, 字符重复比例与相似度的相关性也呈现出增长
的趋势, 即L字长度与相关性呈线性关系, L字的值取
的越大, 相似度计算得越精确, 相关性递增得比较明显.
但是L字大于7以后, 相关性的递增幅度为负数, L越
大, 相关性越低. 因此, 在实际应用过程中, 推荐L字的
取值在7左右.
图1 不同L字时重复比例与相似度的关系
对图1进行以下分析:
1) 观察图中6种L字长度下重复比例与平均相似
度的关系可以发现, 在所有L字的实验中, 相似度总是
随着重复率的增加而增加, 并且重复比例与平均相似
度基本成线性关系. 随着L字的增加, 重复比例与相似
图2 计算相关性(精度)与L字长度的关系
4 结语
本文提出的一种基于改进的Jaccard系数确定文
档相似度的方法, 综合考虑了各元素、样本在文档中
的权重及其对多个文档相似度的贡献程度, 可以有效
地解决现有技术中存在的文档间相似度计算不精的问
题. 另外, 将本文提出的方法运用到多文档相似度的确
定, 可以有效地避免元素因随机挑选所带来的权重的
不确定性, 还可以避免传统文本相似度计算方法中不
Software Technique·Algorithm 软件技术·算法 141
8.06.04.02.00.00.2 0.4 0.6 0.8 1-p(a) L=2, cor=0.9525601mean similarity8.06.04.02.00.00.2 0.4 0.6 0.8 1-p(b) L=3, cor=0.9612648mean similarity8.06.04.02.00.00.2 0.4 0.6 0.8 1-p(c) L=4, cor=0.9727646mean similarity8.06.04.02.00.00.2 0.4 0.6 0.8 1-p(d) L=5, cor=0.9796979mean similarity8.06.04.02.00.00.2 0.4 0.6 0.8 1-p(e) L=6, cor=0.9826739mean similarity8.06.04.02.00.00.2 0.4 0.6 0.8 1-p(f) L=7, cor=0.9832327mean similarity2468100.9550.9650.975Lcor
计 算 机 系 统 应 用
http://www.c-s-a.org.cn
2017 年 第 26 卷 第 12 期
可避免的特征项提取与分词环节中出现的高维问题.
此外, 本文的方法适用于各种长度的中、英文文档. 实
验结果表明, 一种基于改进的Jaccard系数确定文档相
似度的方法在一定程度上可以提高文档间相似度计算
的精度. 该方法计算简单, 速度快, 精度高, 可以应用在
文本聚类、文本分类等文本挖掘技术中.
参考文献
1
2
3
4
5
6
7
8
9
10
11
百度百科. 中国学位论文全文数据库. http://baike.baidu.
com/view/7134347.htm, 2011.
中国科技论文在线. 2016年4月份各高校在线发表论文
数量统计排序. 2016. http://www.edu.cn/rd/gao_xiao_
cheng_guo/shu_ju_pai_hang/201605/t20160503_1393357.sh
tml. [2016-10-11]
Sidorov G, Velasquez F, Stamatatos E, et al. Syntactic N-
grams as machine learning features for natural language
processing. Expert Systems with Applications, 2014, 41(3):
853–860. [doi: 10.1016/j.eswa.2013.08.015]
薛苏琴, 牛永洁. 基于向量空间模型的中文文本相似度的
研究. 电子设计工程, 2016, 24(10): 28–31. [doi: 10.3969/
j.issn.1674-6236.2016.10.008]
许鑫, 苏晓兰. 基于文本计算和链接分析的主题导航优化-
以ERS网站为例. 情报学报, 2015, 34(9): 938–948.
Sidorov G, Gómez-Adorno H, Markov I, et al. Computing
text similarity using tree edit distance. 2015 Annual Confer-
ence of the North American Fuzzy Information Processing
Society (NAFIPS) Held Jointly with 2015 5th World Confer-
ence on Soft Computing (WConSC). Redmond, WA, USA.
2015. 1–4.
贾惠娟. 一种改进的文本相似度算法在政务系统中的应
用. 信息技术与信息化, 2016, (7): 49–52.
王小林, 肖慧, 邰伟鹏. 基于Hadoop平台的文本相似度检
测系统的研究. 计算机技术与发展, 2015, 25(8): 90–93.
周丽杰, 于伟海, 郭成. 基于改进的TF-IDF方法的文本相
似度算法研究. 泰山学院学报, 2015, 37(3): 18–22.
何维. 基于多示例学习的中文文本表示及分类研究. 大连
理工大学[硕士学位论文]. 大连: 大连理工大学, 2009.
Liu Y, Sun CJ, Lin L, et al. Computing semantic text similarity
using rich features. 29th Pacific Asia Conference on Language,
Information and Computation. Shanghai, China. 2015. 44–
52.
12
13
14
15
16
17
18
19
20
21
22
23
24
25
Li JY, Shimizu T, Yoshikawa M. Document similarity
computation by combining multiple representation models.
2015 16th IEEE/ACIS International Conference on Software
Engineering, Artificial Intelligence, Networking and Parallel/
Distributed Computing (SNPD). Takamatsu, Japan. 2015.
1–6.
李圣文, 凌微, 龚君芳, 等. 一种基于熵的文本相似性计算
方法. 计算机应用研究, 2016, 33(3): 665–668.
Schuhmacher M, Ponzetto SP. Knowledge-based graph
document modeling. Proc. of the 7th ACM International Con-
ference on Web Search and Data Mining. New York, USA.
2014. 543–552.
Lin YS, Jiang JY, Lee SJ. A similarity measure for text
classification and clustering. IEEE Trans. on Knowledge and
Data Engineering, 2014, 26(7): 1575–1590. [doi: 10.1109/
TKDE.2013.19]
涂建军, 何汉林. 基于语义分析的降维特征提取. 情报学
报, 2014, 33(9): 952–958.
Yan XH, Guo JF, Lan YY, et al. A biterm topic model for
short texts. Proc. of the 22nd International Conference on
World Wide Web. Rio de Janeiro, Brazil. 2013. 1445–1456.
Řehůřek R, Sojka P. Software framework for topic modelling
with large corpora. Proc. of LREC 2010 Workshop New Chall-
enges for NLP Frameworks. Valletta, Malta. 2010. 45–50.
Zhang ZF, Miao DQ, Yue XD. Similarity measure for short
texts using topic models and rough sets. Journal of Compu-
tational Information Systems, 2013, 9(16): 6603–6611.
王贤明, 胡智文, 谷琼. 一种基于随机n-Grams的文本相似
度计算方法. 情报学报, 2013, 32(7): 716–723.
孙宇. 一种基于Jaccard相似度的社团发现方法. 电子技术
与软件工程, 2016, (3): 20.
Niwattanakul S, Singthongchai J, Naenudorn E, et al. Using
of Jaccard coefficient for keywords similarity. Proc. of the
International MultiConference of Engineers and Computer
Scientists. Hong Kong, China. 2013. 380–384.
Huang A. Similarity measures for text document clustering.
New Zealand: The University of Waikato, Hamilton, 2008.
邓琨, 张尧学, 周悦芝. 一种整体性的相似度计算方法. 情
报学报, 2014, 33(11): 1133–1145.
搜狗实验室. 数据资源. http://www.sougou.com/labs/
resources.html. [2012-04-21].
142 软件技术·算法 Software Technique·Algorithm