该篇文章主要介绍基于词语的文本类似度计算方式,包括:svn
在计算余弦类似度与欧式距离的时候,须要将词语向量化表示,这就须要用到词袋模型。spa
最初的Bag of words,也叫作“词袋”,Bag of words model假定对于一个文本,忽略其词序和语法,句法,将其仅仅看作是一个词集合,或者说是词的一个组合,文本中每一个词的出现都是独立的,不依赖于其余词是否出现,或者说当这篇文章的做者在任意一个位置选择一个词汇都不受前面句子的影响而独立选择的。ip
例如两个句子:
句子A:这只皮靴号码大了。那只号码合适。
句子B:这只皮靴号码不小,那只更合适。字符串
第一步:分词
句子A:这只/皮靴/号码/大了,那只/号码/合适。
句子B:这只/皮靴/号码/不/小,那只/更/合适。it
第二步:列出全部的词
这只,皮靴,号码,大了,那只,合适,不,小,更class
第三步:计算词频
句子A:这只 1,皮靴 1,号码 2,大了 1,那只 1,合适 1,不 0,小 0,更 0
句子B: 这只 1,皮靴 1,号码 1,大了 0,那只 1,合适 1,不 1,小 1,更 1cli
第四步:写出词频向量
句子A:(1,1,2,1,1,1,0,0,0)
句子B:(1,1,1,0,1,1,1,1,1)model
余弦类似度用向量空间中两个向量夹角的余弦值做为衡量两个个体差别的大小。余弦值越接近1,就代表夹角越接近0度,也就是两个向量越类似,这就是余弦类似性。
因此句子A与句子B的余弦类似度为:语法
欧式距离也称为欧几里得距离,是最多见的距离度量,衡量的是多维空间中两个点之间的绝对距离。
计算公式以下:im
Dice距离用于度量两个集合的类似性,由于能够把集合字符串理解为一种集合,所以Dice距离也会用于度量字符串的类似性。Dice系数定义以下:
其中分子是A与B的交集数量的两倍,分母为A与B的长度之和。因此他的范围在0到1之间。
句子A:{这只,皮靴,号码,大了,那只,号码,合适}
句子B:{这只,皮靴,号码,不,小,那只,更,合适}
Dice系数与Jaccard很是的相似。Jaccard是在分子和分母上都减去了A∩B。