Middle — Senior
Come calcolare la similarità coseno tra le domande?
sobes.tech AI
Risposta dell'AI
La somiglianza coseno è una misura di somiglianza tra due vettori, calcolata come il coseno dell'angolo tra loro. Per le domande (ad esempio, testuali), è necessario prima rappresentare ogni domanda come un vettore (embedding), ad esempio utilizzando modelli come Word2Vec, BERT o TF-IDF.
Come calcolare la somiglianza coseno:
- Convertire ogni domanda in un vettore di numeri.
- Calcolare il coseno dell'angolo tra i due vettori:
[ \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}} ]
Esempio in Python usando la libreria 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)
# Esempi di vettori
q1 = np.array([1, 2, 3])
q2 = np.array([4, 5, 6])
similarity = cosine_similarity(q1, q2)
print(f"Somiglianza coseno: {similarity}")
In questo modo, la somiglianza coseno mostra quanto le domande sono simili in termini di significato nello spazio degli embedding.