본문 바로가기
IT 와 Social 이야기/NLP 자연어처리

[딥러닝을이용한 자연어 처리 입문] 0501 코사인 유사도 Cosine Similarity

by manga0713 2021. 5. 17.

1. 코사인 유사도(Cosine Similarity)

 

- 코사인 유사도는 두 벡터 간의 코사인 각도를 이용하여 구할 수 있는 두 벡터의 유사도를 의미. 두 벡터의 방향이 완전히 동일한 경우에는 1의 값을 가지며, 90°의 각을 이루면 0, 180°로 반대의 방향을 가지면 -1의 값을 갖음. 즉, 결국 코사인 유사도는 -1 이상 1 이하의 값을 가지며 값이 1에 가까울수록 유사도가 높다고 판단 함. 이를 직관적으로 이해하면 두 벡터가 가리키는 방향이 얼마나 유사한가를 의미 함.

 

 

- 문서3은 문서2에서 단지 모든 단어의 빈도수가 1씩 증가했을 뿐인데 유사도의 값이 최대(1, 두 벡터의 방향이 완전히 동일)임

 

- 다시 말해 한 문서 내의 모든 단어의 빈도수가 동일하게 증가하는 경우에는 기존의 문서와 코사인 유사도의 값이 1이라는 것 (코사인 유사도는 문서의 길이가 다른 상황에서 비교적 공정한 비교를 할 수 있음)

 

 

2. 유사도를 이용한 추천 시스템 구현하기

 

- TF-IDF와 코사인 유사도만으로 영화의 줄거리에 기반해서 영화를 추천

 

 

 

nlp_0501_cosine similarity 코사인 유사도.ipynb
0.01MB

 

- 출처 : [딥러닝을이용한 자연어 처리 입문] 0501 코사인 유사도 Cosine Similarity