※ 이 글은 chatGPT를 기반으로 작성한 글입니다.
① 워드 벡터(word vector)는 단어들을 벡터 공간에 표현함으로써 수치화된 벡터로 변환해 컴퓨터가 단어의 의미를 이해하고 처리할 수 있도록 도와준다.
㉠ 예를 들어 "사과", "바나나", "토마토", "트럭"이라는 네 개의 단어들을 수학적인 벡터로 나타내는 것이다.
② 워드 벡터의 대표적인 임베딩 기법으로 Word2Vec과 GloVe가 존재한다.
㉠ Word2Vec에는 Continuous Bag of Word(CBOW)와 Skip Gram이라는 두 가지 기본 모델이 있다.
ⓐ CBOW는 주변 단어들을 통해 중심 단어를 예측하는 방식이다.
ⓑ Skip Gram은 중심 단어를 통해 주변 단어를 예측하는 방식이다.
② CBOW 모델을 훈련시키는 코드는 다음과 같이 구성할 수 있다.
㉠ 우선 pip를 이용해 Gensim과 NLTK 라이브러리를 설치할 수 있다.
㉡ 코드를 구성하기 위해 gensim 과 nltk 라이브러리를 임포트한다.
㉢ 간단한 문장들로 이루어진 데이터셋을 준비한다.
㉣ NLTK 라이브러리의 word_tokenize 함수를 이용하여 각 문장을 단어로 분리한다.
㉤ Word2Vec 함수를 사용하여 CBOW 모델을 훈련시킨다.
ⓐ 매개변수 vector_size는 벡터의 차원을 의미한다.
ⓑ 매개변수 window는 문맥 윈도우의 크기를 의미한다.
ⓒ 매개변수 min_count는 단어 최소 빈도를 의미한다.
ⓓ 매개변수 workers는 병렬 처리에 사용할 스레드 수를 의미한다.
ⓔ 매개변수 sg는 모델의 타입(CBOW는 0, Skip-Gram은 1)을 의미한다.
㉥ 모델에 대한 요약 정보는 다음과 같다.
ⓐ vocab은 모델의 어휘집(vacabulary)에 있는 고유 단어의 수를 나타낸다. 따라서, 모델이 11개의 고유한 단어를 학습했음을 의미한다.
ⓑ vector_size 는 각 단어에 대해 생성된 벡터의 차원 수를 나타낸다. 따라서, 각 단어가 100차원의 벡터로 표현됨을 의미한다.
ⓒ alpha는 학습률(learning rate)을 의미한다.
㉦ 'dog'와 유사한 단어를 찾기 위해 다음과 같은 코드를 입력할 수 있다.
③ Skip-gram 모델을 훈련시키는 코드는 다음과 같이 구성할 수 있다.
㉠ Word2Vec의 매개변수 sg의 인자로 1을 전달할 경우 skip-gram을 사용할 수 있다.
'All about Machine-Learning > NLP' 카테고리의 다른 글
트랜스포머 모델 구현 (0) | 2024.01.12 |
---|---|
어텐션 메커니즘과 트랜스포머 모델 (0) | 2024.01.12 |
어텐션 메커니즘(Attention Mechanism)의 원리 (0) | 2024.01.12 |
Seq2Seq 모델의 이해 (0) | 2024.01.12 |
허깅 페이스(Hugging Face) (2) | 2023.12.21 |