使用余弦相似度算法计算文本相似度-数学
使用余弦相似度算法计算文本相似度 </h1> <div class="clear"></div> <div class="postBody"> 在工作中一直使用余弦相似度算法计算两段文本的相似度和两个用户的相似度。一直弄不明白多维的余弦相似度公式是怎么推导来的。今天终于花费时间把公式推导出来,其实很简单,都是高中学过的知识,只是很多年没用了,都还给老师了。本文还通过一个例子演示如果使用余弦相似度计算两段文本的相似度。 余弦函数在三角形中的计算公式为: 在直角坐标系中,向量表示的三角形的余弦函数是怎么样的呢?下图中向量a用坐标(x1,y1)表示,向量b用坐标(x2,y2)表示。 向量a和向量b在直角坐标中的长度为 向量a和向量b之间的距离我们用向量c表示,就是上图中的黄色直线,那么向量c在直角坐标系中的长度为 ,将a,b,c带入三角函数的公式中得到如下的公式: 这是2维空间中余弦函数的公式,那么多维空间余弦函数的公式就是: 余弦相似度 余弦相似度量:计算个体间的相似度。 相似度越小,距离越大。相似度越大,距离越小。 假设有3个物品,item1,item2和item3,用向量表示分别为: item1[1,1,0,0,1], item2[0,0,1,2,1], item3[0,0,1,2,0], 即五维空间中的3个点。用欧式距离公式计算item1、itme2之间的距离