Как вычислить косинусное сходство в python


Косинусное сходство — это мера сходства между двумя векторами пространства внутреннего продукта.

Для двух векторов A и B косинусное подобие рассчитывается следующим образом:

Косинусное подобие = ΣA я B я / (√ΣA я 2 √ΣB я 2 )

В этом руководстве объясняется, как вычислить косинусное сходство векторов в Python с помощью функций из библиотеки NumPy .

Косинусное сходство между двумя векторами в Python

Следующий код показывает, как вычислить косинусное сходство между двумя массивами в 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

Косинусное сходство между двумя таблицами оказывается равным 0,965195 .

Обратите внимание, что этот метод будет работать с двумя массивами любой длины:

 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

Однако это работает только в том случае, если два массива имеют одинаковую длину:

 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)

Комментарии

1. Существует несколько способов вычисления сходства косинусов с помощью Python, но, как объясняется в этой теме Stack Overflow , метод, описанный в этой статье, оказывается самым быстрым.

2. Обратитесь кэтой странице Википедии , чтобы узнать больше о сходстве косинусов.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *