Table of Contents

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

embeddings1 IList<float>

The first embedding vector.

embeddings2 IList<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.