Come calcolare la somiglianza del coseno in python
La somiglianza del coseno è una misura della somiglianza tra due vettori di uno spazio del prodotto interno.
Per due vettori, A e B, la somiglianza del coseno viene calcolata come segue:
Somiglianza coseno = ΣA i B i / (√ΣA i 2 √ΣB i 2 )
Questo tutorial spiega come calcolare la somiglianza del coseno tra vettori in Python utilizzando le funzioni della libreria NumPy .
Somiglianza coseno tra due vettori in Python
Il codice seguente mostra come calcolare la somiglianza del coseno tra due array in 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 somiglianza del coseno tra le due tabelle risulta essere 0.965195 .
Tieni presente che questo metodo funzionerà su due array di qualsiasi lunghezza:
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
Tuttavia, questo funziona solo se i due array hanno la stessa lunghezza:
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)
Commenti
1. Esistono diversi modi per calcolare la somiglianza del coseno utilizzando Python, ma come spiega questo thread di Stack Overflow , il metodo spiegato in questo articolo risulta essere il più veloce.
2. Fai riferimento aquesta pagina Wikipedia per saperne di più sulla somiglianza del coseno.