So berechnen sie die kosinusähnlichkeit in python


Kosinusähnlichkeit ist ein Maß für die Ähnlichkeit zwischen zwei Vektoren eines inneren Produktraums.

Für zwei Vektoren A und B wird die Kosinusähnlichkeit wie folgt berechnet:

Kosinusähnlichkeit = ΣA i B i / (√ΣA i 2 √ΣB i 2 )

In diesem Tutorial wird erläutert, wie Sie die Kosinusähnlichkeit zwischen Vektoren in Python mithilfe von Funktionen aus der NumPy- Bibliothek berechnen.

Kosinusähnlichkeit zwischen zwei Vektoren in Python

Der folgende Code zeigt, wie die Kosinusähnlichkeit zwischen zwei Arrays in Python berechnet wird:

 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

Die Kosinusähnlichkeit zwischen den beiden Tabellen beträgt 0,965195 .

Beachten Sie, dass diese Methode für zwei Arrays beliebiger Länge funktioniert:

 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

Dies funktioniert jedoch nur, wenn die beiden Arrays gleich lang sind:

 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)

Kommentare

1. Es gibt mehrere Möglichkeiten, die Kosinusähnlichkeit mit Python zu berechnen, aber wie dieser Stack Overflow-Thread erklärt, erweist sich die in diesem Artikel erläuterte Methode als die schnellste.

2. Weitere Informationen zur Kosinusähnlichkeit finden Sie aufdieser Wikipedia-Seite .

Einen Kommentar hinzufügen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert