calculateCosineSimilarity method

double calculateCosineSimilarity(
  1. List<double> vec1,
  2. List<double> vec2
)

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));
}