텍스트 벡터화

1 개요편집

컴퓨터는 단어, 단어와 단어 사이의 관계를 이해하지 못한다. 단지 숫자를 이해할 수 있을 뿐인데, 이를 위하여 단어를 벡터로 변환하는 과정이 필요하다.

이 과정이 제대로 거쳐진다면 '아빠'-'남자'+'여자' = '엄마' 등의 재미난 연산도 가능해진다.(일반적으로 Gensim 따위의 언어분석도구를 사용한다.)

2 Gensim편집

자연어 처리를 위한 라이브러리인데, Word2Vec을 구현하는 도구로 많이 쓰인다.

2.1 설치편집

pip install gensim

2.2 사용편집

과정 설명 방법
텍스트 읽고 모델 만들고 저장하기
매개변수 설명
size 몇 차원으로 할 것인가.
from gensim.models import word2vec

file = ...  # 텍스트 파일을 열거나 저장한다.
data = word2vec.LineSentence(file)  # 파일을 연다.
model = word2vec.Word2Vec(data, size=200, window=10, hs=1, min_count=2, sg=1)]
model.save('경로')  # 작성한 모델을 저장한다.
모델 불러오기
from gensim.models import word2vec

model = word2vec.Word2Vec.load("경로")
유사단어 확인 단어와 가장 유사한 단어를 찾아준다.

positive와 negative를 사용하여 검색이 가능하다.

from gensim.models import word2vec

model.most_similar(positive=['단어'])
단어관계 확인 +와 -개념으로 연산을 수행할 수도 있다. 아빠-남자+여자 = ???? 을 알아보는 코드이다.
from gensim.models import word2vec

model.most_similar(positive=['아빠', '여자'], negative=['남자'])