两个向量数组余弦距离计算 java
时间: 2023-05-10 16:03:41 浏览: 131
cosine-distance:计算两个数组之间的余弦距离
在计算机科学领域中,余弦相似度是一种常用的相似度计算方法,可以用于文本分类、文本相似度计算、图片相似度计算等等。在java中,计算两个向量数组余弦距离的方法如下:
首先定义一个名为cosineSimilarity的方法,其参数为两个double类型的数组,代表两个向量,返回值为double类型,代表余弦距离。
静态双精度函数double cosineSimilarity(double[] vectorA, double[] vectorB) {
double dotProduct = 0.0;
double normA = 0.0;
double normB = 0.0;
for (int i = 0; i < vectorA.length; i++) {
dotProduct += vectorA[i] * vectorB[i];
normA += Math.pow(vectorA[i], 2);
normB += Math.pow(vectorB[i], 2);
}
return dotProduct / (Math.sqrt(normA) * Math.sqrt(normB));
}
这个方法主要分为三个步骤:
1.计算两个向量的点积
用for循环遍历两个数组的每一个元素,将它们对应位置的数相乘后累加得到点积。
2.计算向量的范数
同样用for循环遍历数组中的每一个元素,并对它们的平方累加,最后对求和结果进行平方根操作得到向量的范数。
3.计算余弦距离
用点积除以向量范数的积,即可得到余弦距离。
这样,我们就可以通过java代码来计算两个向量数组余弦距离啦!
阅读全文