Як обчислити подібність косинусів у python


Косинусна подібність є мірою подібності між двома векторами простору внутрішнього добутку.

Для двох векторів, A і B, косинус-подібність обчислюється наступним чином:

Косинус подібності = ΣA i B i / (√ΣA i 2 √ΣB i 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, але, як пояснює цей потік переповнення стека , метод, описаний у цій статті, виявляється найшвидшим.

2. Зверніться доцієї сторінки у Вікіпедії , щоб дізнатися більше про косинусну подібність.

Додати коментар

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *