Python에서 코사인 유사성을 계산하는 방법


코사인 유사성은 내부 곱 공간의 두 벡터 간의 유사성을 측정한 것입니다.

두 벡터 A와 B의 경우 코사인 유사성은 다음과 같이 계산됩니다.

코사인 유사성 = ΣA i B i / (√ΣA i 2 √ΣB i 2 )

이 튜토리얼에서는 NumPy 라이브러리의 함수를 사용하여 Python에서 벡터 간의 코사인 유사성을 계산하는 방법을 설명합니다.

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. 코사인 유사성에 대해 자세히 알아보려면이 Wikipedia 페이지를 참조하세요.

의견을 추가하다

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다