calculateCosineSimilarity method
Implementation
double calculateCosineSimilarity(List<double> vec1, List<double> vec2) {
double dotProduct = 0.0, norm1 = 0.0, norm2 = 0.0;
for (int i = 0; i < vec1.length; i++) {
dotProduct += vec1[i] * vec2[i];
norm1 += vec1[i] * vec1[i];
norm2 += vec2[i] * vec2[i];
}
return norm1 == 0 || norm2 == 0 ? 0.0 : dotProduct / (sqrt(norm1) * sqrt(norm2));
}