Como calcular a similaridade de cossenos em python


A similaridade de cossenos é uma medida da similaridade entre dois vetores de um espaço de produto interno.

Para dois vetores, A e B, a similaridade de cosseno é calculada da seguinte forma:

Similaridade de cosseno = ΣA i B i / (√ΣA i 2 √ΣB i 2 )

Este tutorial explica como calcular a similaridade de cosseno entre vetores em Python usando funções da biblioteca NumPy .

Semelhança de cosseno entre dois vetores em Python

O código a seguir mostra como calcular a similaridade de cosseno entre duas matrizes em 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

A semelhança de cosseno entre as duas tabelas é 0,965195 .

Observe que este método funcionará em dois arrays de qualquer comprimento:

 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

No entanto, isso só funciona se as duas matrizes tiverem o mesmo comprimento:

 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)

Comentários

1. Existem várias maneiras de calcular a similaridade de cosseno usando Python, mas como este tópico do Stack Overflow explica, o método explicado neste artigo acaba sendo o mais rápido.

2. Consulteesta página da Wikipedia para saber mais sobre similaridade de cossenos.

Add a Comment

O seu endereço de email não será publicado. Campos obrigatórios marcados com *