Sobes.tech
Middle — Senior

Cum se calculează similaritatea cosinus între întrebări?

sobes.tech AI

Răspuns de la AI

Similaritatea cosinus este o măsură a similarității dintre doi vectori, calculată ca cosinusul unghiului dintre aceștia. Pentru întrebări (de exemplu, textuale), mai întâi trebuie să reprezentați fiecare întrebare sub forma unui vector (embedding), de exemplu, folosind modele precum Word2Vec, BERT sau TF-IDF.

Cum se calculează similaritatea cosinus:

  1. Convertiți fiecare întrebare într-un vector de numere.
  2. Calculați cosinusul unghiului dintre cei doi vectori:

[ \text{cosine_similarity}(A, B) = \frac{A \cdot B}{|A| |B|} = \frac{\sum_{i=1}^n A_i B_i}{\sqrt{\sum_{i=1}^n A_i^2} \sqrt{\sum_{i=1}^n B_i^2}} ]

Exemplu în Python folosind biblioteca numpy:

import numpy as np

def cosine_similarity(vec1, vec2):
    dot_product = np.dot(vec1, vec2)
    norm_a = np.linalg.norm(vec1)
    norm_b = np.linalg.norm(vec2)
    return dot_product / (norm_a * norm_b)

# Exemple de vectori
q1 = np.array([1, 2, 3])
q2 = np.array([4, 5, 6])

similarity = cosine_similarity(q1, q2)
print(f"Similaritatea cosinus: {similarity}")

Astfel, similaritatea cosinus arată cât de asemănătoare sunt întrebările din punct de vedere semantic în spațiul de embedding-uri.