Method GetCosineSimilarity
- Namespace
- LMKit.Embeddings
- Assembly
- LM-Kit.NET.dll
GetCosineSimilarity(IList<float>, IList<float>)
Calculates the cosine similarity between two embedding vectors, representing the cosine of the angle between them in a multidimensional space.
public static float GetCosineSimilarity(IList<float> embeddings1, IList<float> embeddings2)
Parameters
embeddings1IList<float>The first embedding vector.
embeddings2IList<float>The second embedding vector.
Returns
- float
The cosine similarity value in the range [-1, 1]. A value closer to 1 indicates higher similarity.
Examples
using LMKit.Model;
using LMKit.Embeddings;
using System;
LM model = LM.LoadFromModelID("embeddinggemma-300m");
Embedder embedder = new Embedder(model);
// Generate embeddings for two texts
float[] embedding1 = embedder.GetEmbeddings("The quick brown fox jumps over the lazy dog.");
float[] embedding2 = embedder.GetEmbeddings("A fast auburn fox leaps above a sleepy canine.");
float[] embedding3 = embedder.GetEmbeddings("Stock prices rose sharply in early trading.");
// Calculate similarity
float similarity12 = Embedder.GetCosineSimilarity(embedding1, embedding2);
float similarity13 = Embedder.GetCosineSimilarity(embedding1, embedding3);
Console.WriteLine($"Similar sentences: {similarity12:F4}"); // Higher value
Console.WriteLine($"Unrelated sentences: {similarity13:F4}"); // Lower value
Remarks
The higher the cosine similarity value, the closer the proximity of the two texts from which the embedding vectors have been computed.