토큰화 전처리가 끝나면 각 단어에 고유한 정수를 맵핑해주는 정수 인코딩(Integer enoding) 작업이 필요하다. 그리고 이 전처리를 위해서는 우선 단어 집합을 만들어주어야 한다! 정의한 필드에
.build_vocab()
을 사용하여 단어 집합을 생성할 수 있다.
<unk>
: 인코딩 과정에서 사전에 없는 단어는 전부 이 토큰의 인덱스로 인코딩 (0)<pad>
: 패딩(입력 데이터를 배치로 처리하려면, 배치 내 모든 데이터가 같은 사이즈를 가져야 함)(1)- 필드지정시, 문장의 시작 토큰(init_token)과, 끝의 토큰(eos_token)을 넣으면 3, 4 번으로 할당됨.
MAX_VOCAB_SIZE = 25000 # 단어 집합의 최대 크기
TEXT.build_vocab(train_data,
# min_freq = 3, # 단어의 최소 등장 빈도 조건
max_size = MAX_VOCAB_SIZE, #단어 집합의 최대 크기 지정
vectors = 'fasttext.simple.300d', # 사전 훈련된 임베딩 벡터 (한글 지원)
unk_init = torch.Tensor.normal_) # 사전훈련된 단어집합에 없는 단어를 0으로 처리하는 것 방지
LABELS.build_vocab(train_data)