[파이썬] 코사인 유사도(Cosine Similarity) 개념과 예제

코사인 유사도(Cosine Similarity)는 벡터 간 유사도를 계산하는 방법 중 하나로, 두 벡터 사이의 각도를 측정하여 유사성을 판단하는 척도입니다. 특히 텍스트 데이터나 다차원 벡터 데이터에서 유용하게 활용됩니다. 코사인 유사도는 벡터의 내적을 이용하여 계산되며, 벡터 간의 방향적 유사성을 측정합니다.

간단한 코사인 유사도 예제를 통해 개념을 설명해보겠습니다.

from sklearn.metrics.pairwise import cosine_similarity
import numpy as np

## 두 벡터 정의
vector1 = np.array([1, 2, 3])
vector2 = np.array([4, 5, 6])

## 코사인 유사도 계산
cosine_sim = cosine_similarity([vector1], [vector2])

print("Cosine Similarity:", cosine_sim[0][0])` 

위의 코드에서는 sklearn 라이브러리의 cosine_similarity 함수를 사용하여 두 벡터 간의 코사인 유사도를 계산합니다. 이를 통해 두 벡터 간의 유사도 값을 얻을 수 있습니다.

코사인 유사도는 -1부터 1까지의 값을 가지며, 1에 가까울수록 두 벡터가 유사함을 나타냅니다. 0은 벡터 간의 유사성이 없음을 의미하며, -1은 벡터가 반대 방향으로 향함을 나타냅니다.

이처럼 코사인 유사도는 다차원 공간에서 벡터 간의 방향적 유사성을 측정하는 유용한 도구로 사용됩니다. 특히 문서나 단어의 벡터 표현에서 문서 간 유사도를 계산하거나 단어 간 의미적 유사성을 측정하는 데 활용됩니다.