DTM과  TF-IDF를 이용하여 추출한 벡터는 머신러닝 기법을 적용하기 위한 입력으로 사용되어

     문서 분류부터 다양한 분야에 활용될 수 있다. 

     문서 간의 유사도를 측정하여 주어진 문서와 가장 유사한 문서를 말뭉치에서 검색하는데 사용하는 방법도

     하나의 예이다.

     

    1. 코사인 유사도란?

      코사인 유사도는 두 벡터 간의 코사인 각도를 이용하여 구할 수 있는 두 벡터의 유사도를 의미한다.

      두 벡터의 방향이 완전히 동일한 경우에는 1의 값을, 90°의 각을 이루면 0, 180°로 반대의 방향을 가지면 -1의 값을 갖게 된다.

      즉, 결국 코사인 유사도는 -1 이상 1 이하의 값을 가지며 값이 1에 가까울수록 유사도가 높다고 판단할 수 있다.

      이를 직관적으로 이해하면 두 벡터가 가리키는 방향이 얼마나 유사한가를 의미한다.

 

   

    2. 코사인 유사도 공식

       두개의 벡터인 A와 B에 대해서 구하는 식은 다음과 같다.

 

      예를들어 쉽게 설명하면

     

      doc_1 = "Data is the oil of the digital economy"

      doc_2 = "Data is a new oil"

      doc_3 = "Data is an information"

 

     위의 그림은 카운트 벡터를 사용하여 doc_1과 doc_2를 벡터화한 결과이다.

      이 결과를 가지고 코사인 유사도를 구해보면 아래와 같은 결과가 나온다.

 

 

    3. CountVectorizer( ) vs. TfidfVectorizer( )

        CountVectorizer( )와 TfidfVectorizer( )를 사용해서 코사인 유사도를 구한 결과를 보자.

     위의 그림과 같이 CountVectorizer( )와 TfidfVectorizer( )의 유사도 결과가 다르다는 것을 확인 할 수 있는데

     이는 TfidfVectorizer( )는 문서에서 많이 등장하는 불용어를 제거 하고 계산을 하기 때문이다.

 

 

코사인 유사도 소스코드 (깃헙)

 

GitHub - kaitnam/TIL: Today I Learned

Today I Learned. Contribute to kaitnam/TIL development by creating an account on GitHub.

github.com

 

 

 

     REFERENCE  

     https://studymachinelearning.com/cosine-similarity-text-similarity-metric/

     https://needjarvis.tistory.com/665     

     https://wikidocs.net/24603

+ Recent posts