Middle — Senior
Comment calculer la similarité cosinus entre les questions?
sobes.tech IA
Réponse de l'IA
La similarité cosinus est une mesure de la similarité entre deux vecteurs, calculée comme le cosinus de l'angle entre eux. Pour des questions (par exemple, textuelles), il faut d'abord représenter chaque question sous forme de vecteur (embedding), par exemple en utilisant des modèles comme Word2Vec, BERT ou TF-IDF.
Comment calculer la similarité cosinus :
- Convertir chaque question en un vecteur de nombres.
- Calculer le cosinus de l'angle entre les deux vecteurs :
[ \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}} ]
Exemple en Python avec la bibliothèque 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)
# Exemples de vecteurs
q1 = np.array([1, 2, 3])
q2 = np.array([4, 5, 6])
similarity = cosine_similarity(q1, q2)
print(f"Similitude cosinus : {similarity}")
Ainsi, la similarité cosinus indique à quel point les questions sont proches en termes de sens dans l'espace des embeddings.