정리용

[NLP] 문서의 유사도 측정 방법 ( 유클리드 거리 / 코사인 유사도 ) 본문

딥러닝/이론

[NLP] 문서의 유사도 측정 방법 ( 유클리드 거리 / 코사인 유사도 )

무룡룡 2022. 1. 25. 17:57

 

 

문서의 유사도를 측정하는 방법은 2가지가 대표적이다

 

하나는 유클리드 거리를 사용하는 방법과 나머지는 코사인 유사도를 사용하는 방법이다.

 

 

 

 

 

1. 유클리드 거리 (Euclidean distance)

 

유클리드 거리는 벡터의 거리를 기준으로 유사도로  측정하는 방법이다

 

피타고라스 정리를 이용한 빗변의 길이를 구하는 것으로 거리가 가까울수록 유사도가 크다.

 

B- C 의 거리(베타) 가 A-B 의 거리(알파) 보다 크기 때문에 A - B 의 유사도가 더 크다 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2. 코사인 유사도

코사인 유사도는 벡터 사이 각도를 기준으로 유사도를 측정하는 방법이다.

 

벡터의 크기는 배제하고 방향만 보는 것으로 백터 사이각이 좁을수록, 즉 코사인값이 클수록 유사도가 높다.

 

 

또한 이때 벡터 사이 각도는 0도~ 90도의 값을 가지게 되는데

 

이는 횟수를 기반으로 벡터를 생성했기 때문에 음수가 나올수 없기 때문이다. ( 벡터는 1사분면에서만 생성됨 ) 

 

따라서 코사인 유사도는 0 ~ 1 사이의 값을 가지게 된다.

 

 

 

유클리드 거리로 유사도를 측정한 것과 달리 B-C 의 유사도가 A-B 의 유사도보다 큰 것을 알 수 있다.

 

 

 

 

 

 

 

 

 

 

단어사전을 생성했을 경우 벡터는 무수히 많은 0 을 가지게 되는데 

 

코사인 유사도 측정법의 장점은 0 x 0 을 계산하지 않는다는 것이다.

Comments