cosineSimilarity static method
Compute cosine similarity between two feature vectors.
Returns a value between -1.0 and 1.0, where 1.0 means identical.
Implementation
static double cosineSimilarity(List<double> a, List<double> b) {
if (a.length != b.length || a.isEmpty) return 0.0;
var dot = 0.0;
var normA = 0.0;
var normB = 0.0;
for (var i = 0; i < a.length; i++) {
dot += a[i] * b[i];
normA += a[i] * a[i];
normB += b[i] * b[i];
}
final denominator = sqrt(normA) * sqrt(normB);
if (denominator == 0) return 0.0;
return dot / denominator;
}