getIndexesMostSimilarEmbeddings method
Returns a sorted list of indexes of embeddings that are most similar to
the provided embedding (in descending order, most similar first).
The similarity is calculated using the provided similarityFunction.
The default similarity function is cosineSimilarity.
Implementation
List<int> getIndexesMostSimilarEmbeddings(
List<double> embedding,
List<List<double>> embeddings, {
double Function(List<double> a, List<double> b) similarityFunction =
cosineSimilarity,
}) {
final similarities = calculateSimilarity(
embedding,
embeddings,
similarityFunction: similarityFunction,
);
return List<int>.generate(embeddings.length, (i) => i)
..sort((a, b) => similarities[b].compareTo(similarities[a]));
}