본문 바로가기

word2vec4

[골빈해커의 3분 딥러닝] 04_03_Word2Vec Word2Vec 모델을 deep learning을 이용해서 구현해 보자. import tensorflow as tf import matplotlib import matplotlib.pyplot as plt import numpy as np tensorflow와 matplotlib, numpy를 각각 import 한다. (각각 version : 1.13.0, 3.0.3, 1.16.3) matplotlib는 단어 -> 벡터로 변환 후 2차원 그래프 상에서 표시해주기 위한 용도로 사용된다. from matplotlib import font_manager, rc font_name = font_manager.FontProperties(fname="/usr/share/fonts/truetype/dejavu/guli.. 2019. 6. 6.
spaCy 사용하기 - Vectors & Similarity spaCy에서는 vector similarity 기능도 제공을 해 주고 있다. 또한 아래와 같이 vector를 가지고 있는지, norm 값(여기선 L2 norm), out of vocabulary 인지 등도 확인해 볼 수 있다. 문서간의 유사도도 확인해 볼 수가 있다. 홈페이지에서는 주변 단어와의 연결 관계 등을 고려해서 철자가 틀려도 비슷한 유사도를 나타낸다고 쓰여져 있는데, 결과 값이 별로 좋지 못한 관계로 이 부분은 그냥 스킵.. 자신이 직접 단어 벡터를 추가할 수도 있다. (이게 의미가 있나...) glove vector를 추가할 수도 있다. 그 밖의 fastText vector와 같은 다른 벡터들도 추가할 수가 있다. 핵심은 ' '으로 구분하고 첫번째 요소는 단어 2번째는 vector 값의 형태.. 2018. 4. 23.
Jupyter에서 Matplotlib 한글 적용하기 word2vec을 통해 word 들을 vector로 변환하였고, 이를 그래프로 표현해주어야 한다. (word 간의 분포도를 보고 싶으니깐..) vector는 3차원만 넘어가도 표현하는데 어려움이 많다. 그래서 이를 위해 tsne라는 것을 사용했다. tsne는 vector의 차원을 줄여주는 기법 중의 하나로, 가령 예를 들어 3차원의 벡터 공간에 있는 데이터 들을 2차원으로 옮기지만 그들간의 거리는 충분히 유지하면서 옮겨주는 방법이다. 보다 상세한 설명은 아래 슬라이드 참조.. http://sssslide.com/www.slideshare.net/ssuserb667a8/visualization-data-using-tsne tsne로 좌표 변환하는 python code는 아래와 같이 하면 된다. import.. 2016. 10. 19.
Word2Vec porting python이나 spark 등에서 word2vec을 사용해보기만 했지.. 내가 실제로 소스를 들여다 볼 일은 없을거라고 생각했었는데.. 실제 소스를 까서 porting 작업을 진행해야 하는 우려 사항이 발생했다. 우선 word2vec에 대해 간략하게 설명을 하자면, 가장 단순하게 말해서 word를 vector로 바꿔서 표현해 주는 것이다. 아니 왜??? 그냥 word를 쓰면 안돼?? 실생활에서는 물론 그냥 word를 쓰는게 당연하다. 하지만 컴퓨터는 해당 word에 대한 의미를 전혀 알지 못하기 때문에, 컴퓨터에게 의미 있는 어떤 수치로 알려주기 위해서는 vector 표현으로 주는 게 바람직하다. 그런데 이게.. 아무 벡터나 막 만들어서 주는게 아니라, 비슷한 단어끼리는 비슷한 벡터가 될 수 있도록 학습.. 2016. 9. 30.