Java余弦相似度算法怎么写
时间: 2023-02-23 12:40:39 浏览: 183
要实现 Java 中的余弦相似度算法,需要对向量进行计算。以下是一个简单的代码实现:
```
import java.util.List;
import java.util.ArrayList;
public class CosineSimilarity {
public static double cosineSimilarity(List<Double> vectorA, List<Double> vectorB) {
double dotProduct = 0.0;
double normA = 0.0;
double normB = 0.0;
for (int i = 0; i < vectorA.size(); i++) {
dotProduct += vectorA.get(i) * vectorB.get(i);
normA += Math.pow(vectorA.get(i), 2);
normB += Math.pow(vectorB.get(i), 2);
}
return dotProduct / (Math.sqrt(normA) * Math.sqrt(normB));
}
public static void main(String[] args) {
List<Double> vectorA = new ArrayList<Double>();
List<Double> vectorB = new ArrayList<Double>();
vectorA.add(1.0);
vectorA.add(2.0);
vectorA.add(3.0);
vectorB.add(2.0);
vectorB.add(3.0);
vectorB.add(4.0);
System.out.println("Cosine similarity: " + cosineSimilarity(vectorA, vectorB));
}
}
```
在上面的代码中,`cosineSimilarity` 函数计算了两个向量的余弦相似度,并返回其值。
阅读全文