클라이언트/ 서버/ 엔지니어 " 게임 개발자"를 향한 매일의 공부일지

텍스트 마이닝 12 - 텍스트 마이닝 응용 두번째 : 유사도 분석 실습해보기 본문

인공지능/머신러닝

텍스트 마이닝 12 - 텍스트 마이닝 응용 두번째 : 유사도 분석 실습해보기

huenuri 2024. 9. 20. 16:24

이번에는 새 프로젝트로 유사도 분석이라는 것을 해볼 것이다.


 

 

 

단어 유사도 분석 실습해보기

모든 거리를 좌표 공간 안에서 판단한다. 희소한 데이터란 숫자로 채워지지 않고 0으로 채워진 빈 데이터가 많은 것들을 말한다. 이런 데이터에서 유클리디언 공식을 사용하면 올바르지 못한 결과가 나타난다. BOW처럼 잘 동작하지 않기에 비슷한 feature로 맞추어주는 것이 좋다.

 

 

 

A와 B의 차이를 구한다. 같은 단어를 빈도만 다르게 사용하는 단어가 더 유사한 단어일 가능성이 크다.


 

 

 

데이터의 크기보다는 방향성을 더 중시한다. 텍스트 마이닝에서는 코사인 유사도를 더 선호한다.

 

 

 

학습을 기반으로 구글에서 만든 워드 인베딩이다. 임베디드는 이식한다는 의미를 갖고 있다. 사과라는 단어를 떠올릴 때도 사람마다 생각하는 단어가 다르다. 이것은 사람들 각자의 경험이 다르기 때문이다. 머신러닝에게도 워드 임베딩을 사용해 학습을 시킨다. 컴퓨터는 단어에 해당하는 숫자를 만들지만 그것이 무엇을 의미하지는 알 수 없다. 이제 gensim을 임포트하고 남은 과정을 실행시켜볼 것이다.

 

 

 

 

헤더를 none으로 해야 손실없이 불러올 수 있다.


 

 

 

품사 추출해보기

 

 


 

 

 

 

이거 로딩하는데 시간이 많이 걸린다.

 


 

 

 

 

Word2Vec이 import가 잘 안되었는데 앞의 코드에서 넘파이 버전을 변경했더니 이제 잘 되었다. 

 

 

 

단어를 숫자로 표현한 것들이 출력되었다.

 

 

택배와 배송은 유사도가 뛰어나지만, 택배와 민트는 유사도가 별로 없음을 알 수 있다.

 

 


 

 

 

네트워크 관계를 그려주는 그래프를 그려볼 것이다.

 

 

 

선의 두께가 굵으면 더 유사한 단어이고 앏으면 관련이 없음을 표시해주는 그래프이다. 원래는 유동적으로 움직여야 하는데 이번에 새로 실행해보니 이 부분은 잘 되지 않았다.

 


 

 

 

학습을 마치고

이렇게 해서 이틀에 걸쳐 텍스트 마이닝 공부를 마쳐본다. 마지막 수업은 빨리 끝내고 싶어서 정말 초고속으로 학습했다. 이해하지 못한 내용들도 있었지만 그냥 가볍게 짚고 넘어갔다. 어차피 이 부분을 깊게 공부할 생각이 없어서 개관만 아는 것으로 충분할 것 같았다.

빨리 학습을 마치고 딥러닝도 이틀 정도 학습한 후 컴퓨터 비전 공부를 진행해보고 싶다. 남은 오후 공부 시간에는 조금 전에 계획했던 대로 머신러닝의 나머지 공부를 해볼 것이다.

 

오늘 집에 가기 전에 머신러닝을 모두 마칠 수 있을 것 같다.