NLP

[Word2Vec] gensim을 활용한 Word2Vec 데이터 학습

oneonlee 2022. 2. 18. 20:58
반응형

본 글은 유원준님의 "딥 러닝을 이용한 자연어 처리 입문"의 '영어/한국어 Word2Vec 실습' 파트를 참고하여 작성하였습니다.

워드 임베딩(Word Embedding)워드투벡터(Word2Vec)에 대한 설명은 해당 링크에서 확인하실 수 있습니다.


Word2Vec에 입력값으로 들어갈 data는 list 형식이어야 합니다. 그것도 리스트 안에 리스트가 들어가있는 형식이어야 합니다.

[[이것은, 첫번째, 문장, 입니다], [이건, 두번째, 문장, 입니다], [물론, 이것처럼, 조사가, 붙어있진, 않겠죠], [아마, 토큰화가, 되어있을, 것, 입니다]]

이제 본격적으로 Word2Vec을 훈련시켜보겠습니다.

from gensim.models import Word2Vec
from gensim.models import KeyedVectors

model = Word2Vec(sentences=tokenized_data, vector_size=100, window=5, min_count=5, workers=4, sg=0)

Word2Vec의 하이퍼파라미터값은 다음과 같습니다.

size = 워드 벡터의 특징 값. 즉, 임베딩 된 벡터의 차원.
vector_window = 컨텍스트 윈도우 크기 (gensim 버전이 업데이트되면서 window에서 vector_window로 변경되었습니다.)
min_count = 단어 최소 빈도 수 제한 (빈도가 적은 단어들은 학습하지 않는다.)
workers = 학습을 위한 프로세스 수
sg = 0은 CBOW, 1은 Skip-gram. (CBOW와 Skip-gram에 대한 설명은 링크 참조)

Word2Vec에 대해서 학습을 진행하였습니다.

다음은 Word2Vec 모델 저장하고 로드하는 방법입니다.

model.wv.save_word2vec_format("kr_w2v") # 모델 저장
loaded_model = KeyedVectors.load_word2vec_format("kr_w2v") # 모델 로드

참고로, kr_w2v는 모델의 이름입니다. 임의로 변경해도 상관없습니다.


다음 글은 구글의 데이터 시각화 도구인 임베딩 프로젝터(embedding projector)를 활용하여 학습한 임베딩 벡터들을 시각화(Embedding Visualization)하는 실습입니다.

 

https://oneonlee.tistory.com/32

 

[Word2Vec] Embedding Projector를 활용한 학습한 임베딩 벡터 시각화(Embedding Visualization)

본 글은 유원준님의 "딥 러닝을 이용한 자연어 처리 입문"의 '영어/한국어 Word2Vec 실습' 파트를 참고하여 작성하였습니다. 워드 임베딩(Word Embedding)과 워드투벡터(Word2Vec)에 대한 설명은 해당 링크

oneonlee.tistory.com

 

반응형