"텍스트 벡터화"의 두 판 사이의 차이

Pywiki
둘러보기로 가기 검색하러 가기
(새 문서: == 개요 == 컴퓨터는 단어, 단어와 단어 사이의 관계를 이해하지 못한다. 단지 숫자를 이해할 수 있을 뿐인데, 이를 위하여 단어를 벡터로...)
 
 
1번째 줄: 1번째 줄:
 
== 개요 ==
 
== 개요 ==
 
컴퓨터는 단어, 단어와 단어 사이의 관계를 이해하지 못한다. 단지 숫자를 이해할 수 있을 뿐인데, 이를 위하여 단어를 벡터로 변환하는 과정이 필요하다.
 
컴퓨터는 단어, 단어와 단어 사이의 관계를 이해하지 못한다. 단지 숫자를 이해할 수 있을 뿐인데, 이를 위하여 단어를 벡터로 변환하는 과정이 필요하다.
 +
 +
이 과정이 제대로 거쳐진다면 '아빠'-'남자'+'여자' = '엄마' 등의 재미난 연산도 가능해진다.(일반적으로 Gensim 따위의 언어분석도구를 사용한다.)
  
 
== Gensim ==
 
== Gensim ==
16번째 줄: 18번째 줄:
 
|텍스트 읽고 모델 만들고 저장하기
 
|텍스트 읽고 모델 만들고 저장하기
 
|
 
|
 +
{| class="wikitable"
 +
!매개변수
 +
!설명
 +
|-
 +
|size
 +
|몇 차원으로 할 것인가.
 +
|}
 
|<syntaxhighlight lang="python">
 
|<syntaxhighlight lang="python">
 
from gensim.models import word2vec
 
from gensim.models import word2vec
40번째 줄: 49번째 줄:
  
 
model.most_similar(positive=['단어'])
 
model.most_similar(positive=['단어'])
 +
</syntaxhighlight>
 +
|-
 +
|단어관계 확인
 +
| +와 -개념으로 연산을 수행할 수도 있다.
 +
|아빠-남자+여자 = ???? 을 알아보는 코드이다. <syntaxhighlight lang="python">
 +
from gensim.models import word2vec
 +
 +
model.most_similar(positive=['아빠', '여자'], negative=['남자'])
 
</syntaxhighlight>
 
</syntaxhighlight>
 
|}
 
|}
 
[[분류:텍스트 분석]]
 
[[분류:텍스트 분석]]

2021년 4월 29일 (목) 22:59 기준 최신판

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=['남자'])