Comment calculer la similarité cosinus en Python
La similarité cosinus est une mesure de la similarité entre deux vecteurs d’un espace produit interne.
Pour deux vecteurs, A et B, la similarité cosinus est calculée comme suit :
Similarité cosinus = ΣA i B i / (√ΣA i 2 √ΣB i 2 )
Ce tutoriel explique comment calculer la similarité cosinus entre vecteurs en Python à l’aide des fonctions de la bibliothèque NumPy .
Similitude cosinus entre deux vecteurs en Python
Le code suivant montre comment calculer la similarité cosinus entre deux tableaux en Python :
from numpy import dot from numpy.linalg import norm #define arrays a = [23, 34, 44, 45, 42, 27, 33, 34] b = [17, 18, 22, 26, 26, 29, 31, 30] #calculate Cosine Similarity cos_sim = dot(a, b)/(norm(a)*norm(b)) cos_sim 0.965195008357566
La similarité cosinus entre les deux tableaux s’avère être 0,965195 .
Notez que cette méthode fonctionnera sur deux tableaux de n’importe quelle longueur :
import numpy as np from numpy import dot from numpy.linalg import norm #define arrays a = np.random.randint(10, size=100) b = np.random.randint(10, size=100) #calculate Cosine Similarity cos_sim = dot(a, b)/(norm(a)*norm(b)) cos_sim 0.7340201613960431
Cependant, cela ne fonctionne que si les deux tableaux sont de même longueur :
import numpy as np from numpy import dot from numpy.linalg import norm #define arrays a = np.random.randint(10, size=90) #length=90 b = np.random.randint(10, size=100) #length=100 #calculate Cosine Similarity cos_sim = dot(a, b)/(norm(a)*norm(b)) cos_sim ValueError: shapes (90,) and (100,) not aligned: 90 (dim 0) != 100 (dim 0)
Remarques
1. Il existe plusieurs façons de calculer la similarité cosinus à l’aide de Python, mais comme l’explique ce fil de discussion Stack Overflow , la méthode expliquée dans cet article s’avère être la plus rapide.
2. Reportez-vous àcette page Wikipédia pour en savoir plus sur la similarité cosinus.