텍스트 벡터화
92.38.148.61 (토론)님의 2021년 4월 29일 (목) 22:59 판
1 개요
컴퓨터는 단어, 단어와 단어 사이의 관계를 이해하지 못한다. 단지 숫자를 이해할 수 있을 뿐인데, 이를 위하여 단어를 벡터로 변환하는 과정이 필요하다.
이 과정이 제대로 거쳐진다면 '아빠'-'남자'+'여자' = '엄마' 등의 재미난 연산도 가능해진다.(일반적으로 Gensim 따위의 언어분석도구를 사용한다.)
2 Gensim
자연어 처리를 위한 라이브러리인데, Word2Vec을 구현하는 도구로 많이 쓰인다.
2.1 설치
pip install gensim
2.2 사용
과정 | 설명 | 방법 | ||||
---|---|---|---|---|---|---|
텍스트 읽고 모델 만들고 저장하기 |
|
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=['남자'])
|