如何计算两个向量的余弦相似度?

如何找到向量之间的相似度" title="余弦相似度">余弦相似度?

我需要找到相似性来衡量两行文本之间的相关性。

例如,我有两个句子:

用户界面系统

用户界面机

…及其在tF-idf之后的向量,然后使用LSI进行标准化,例如 [1,0.5][0.5,1]

如何测量这些向量之间的相似性?

回答:

public class CosineSimilarity extends AbstractSimilarity {

@Override

protected double computeSimilarity(Matrix sourceDoc, Matrix targetDoc) {

double dotProduct = sourceDoc.arrayTimes(targetDoc).norm1();

double eucledianDist = sourceDoc.normF() * targetDoc.normF();

return dotProduct / eucledianDist;

}

}

我最近在大学的信息检索部门做了一些tf-idf的工作。我使用了这种余弦相似度方法,该方法使用Jama:Java Matrix

Package。

有关完整的源代码,请参阅《IR Math with

Java:相似性度量》,这是一个非常好的资源,涵盖了许多不同的相似性度量。

以上是 如何计算两个向量的余弦相似度? 的全部内容, 来源链接: utcz.com/qa/426800.html

回到顶部