杰卡德(Jaccard)相似系数
这种相似度计算方式相对简单,原理也易于理解,就是计算单词集合之间的交集和并集大小的比例,该值越大,表示两个文本越相似。在涉及到大规模并行计算时,该方法效率上有一定的优势。
Jaccard 相似度公式:
![](https://gss0.bdstatic.com/-4o3dSag_xI4khGkpoWK1HF6hhy/baike/s%3D252/sign=750524a567061d957946303d49f50a5d/8644ebf81a4c510f05fdbf876959252dd42aa576.jpg)
举例:
句子A:“我喜欢看电视,不喜欢看电影。”
句子B:“我不喜欢看电视,也不喜欢看电影。”
分词去噪后:A=(我,喜欢,看,电视,电影,不) B=(我,喜欢,看,电视,电影,也,不)
那么J(A,B)=(我,喜欢,看,电视,电影,不)/(我,喜欢,看,电视,电影,也,不)=6/7=0.86
余弦(Cosine)相似度
余弦相似度是利用计算两个向量之间的夹角,夹角越小相似度越高,其公式为:
假定A和B是两个n维向量,A是[A1,A2,...,An],B是[B1,B2,B3,...,Bn],则A与B的夹角余弦等于:
沿用上面的例子,计算词频如下:
句子A:我 1,喜欢 2,看 2,电视 1,电影 1, 不 1,也 0。
句子B:我 1,喜欢 2,看 2,电视 1,电影 1,不 2,也 1。
写出词频向量:
句子A:[1,2,2,1,1,1,0] 句子B:[1,2,2,1,1,2,1]
使用上述公式,我们可以得到句子A与句子B的夹角余弦。