본 글은 유원준님의 "딥 러닝을 이용한 자연어 처리 입문"의 '영어/한국어 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
'NLP' 카테고리의 다른 글
언어모델에서 Adapter Tuning이 필요한 이유 [devfest Cloud 2023] (0) | 2023.12.10 |
---|---|
BERT 모델을 K-Fold Cross-Validation으로 학습하는 방법 (0) | 2023.10.07 |
[NLP] 무료 오픈소스 Text Annotation Tool 리스트 (0) | 2022.08.08 |
[NLP] FastText 관련 참고문헌 정리 (0) | 2022.04.25 |
[Embedding Projector] 임베딩 벡터 시각화(Embedding Visualization) (0) | 2022.02.18 |