做文本挖掘时,我们可能需要分析不同文本之间的关联,最简单的就是分析两文本是否相似,是否在陈述相同的事情。文本属于非数值数据,通常可根据分词,把文本转化成数值向量,进一步根据相似度度量进行分析。
相似度度量(Similarity),即计算个体间的相似程度,相似度度量的值越小,说明个体间相似度越小,相似度的值越大说明个体差异越大。
余弦相似度(Cosine Similarity),假定a和b是两个n维向量,a是(x1, x2, ..., xn),b是 (y1, y2, ..., yn),则a与b的夹角的余弦等于:
余弦值越接近1,就表明夹角越接近0度,也就是两个向量越相似,这就叫"余弦相似性"。所以计算出来的余弦值越大,说明两文本越相似。
下面给出实例进行介绍。
需要判断的两文本:String str1 = "乌干达外交部就此事件可能对中国大使馆造成的负面影响感到抱歉。",
String str2 = "此事件对中国大使馆造成了一定的负面影响,乌干达外交部感