csmoon1010의 SW 블로그

자연어 처리 - 딥 러닝을 이용한 자연어 처리 입문(9) 본문

데이터&인공지능/자연어처리

자연어 처리 - 딥 러닝을 이용한 자연어 처리 입문(9)

csmoon1010 2020. 2. 15. 14:03

05. 문서 유사도(Document Similarity)

- 기준 : 문서들 간 동일한 단어 / 비슷한 단어가 얼마나 공통적으로 많이 사용?

--> 단어의 수치화 방법(DTM, Word2Vec), 단어들 간 차이의 계산 방법(유클리드 거리, 코사인 유사도)

wikidocs.net/book/2155

 

위키독스

온라인 책을 제작 공유하는 플랫폼 서비스

wikidocs.net

 

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

- BoW, DTM, TF-IDF, 워드투벡터로 단어 수치화 --> 코사인 유사도로 문서의 유사도 구하기!

 

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

- 코사인 유사도 : 두 벡터 간의 코사인 각도를 이용하여 두 벡터의 유사도를 구함. = 벡터가 가리키는 방향의 유사도

- 범위 : -1 <= Cosine Similarity <= 1

--> 1에 가까울수록 유사도가 높음

- 식 : A, B - 문서 단어 행렬(DTM) OR TF-IDF 행렬

- 예제 :

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

- movies_metadata를 읽어오고 data['overview']의 null값을 제거한다.

- 불용어 제거하고 tfdif를 수행한다. 이를 바탕으로 코사인 유사도를 구한다.

- 매개변수로 준 title과 유사한 순서대로 10개만 나열하는 함수 get_recommendations를 만든다.

 

2) 여러가지 유사도 기법

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

- 문서의 유사도를 구할 때는 그리 유용하진 않음

- 공식 : 점 p , 점 q의 좌표 간의 거리 구하기

- 예제 :

2. 자카드 유사도(Jaccard similarity)

- A집합과 B집합의 합집합에서 교집합의 비율

- 공식 : 자카드 유사도 함수 J

- 예제 :

Comments