Skip to content

lih0905/korean-tokenizers

Repository files navigation

한국어 토크나이저 비교

네이버 영화리뷰 데이터의 분류 모델이 한국어 토크나이저에 따라 어떻게 성능이 달라지는지 살펴본다.

모델

  • 2-layer 2-directional LSTM with dropout and linear layers

토크나이저

결과

  • 에폭별 Loss 및 Accuracy

loss acc

  • 토크나이저별 최고 성능
space character syllable khaiii mecab okt komoran bert koelectra
loss 0.432 0.307 0.315 0.319 0.303 0.320 0.312 0.351 0.320
acc 0.793 0.873 0.867 0.871 0.877 0.867 0.872 0.851 0.867
  • 토크나이저별 데이터 로딩 및 훈련 시간
space character syllable khaiii mecab okt komoran bert koelectra
데이터 로딩 시간 1.8 2.2 6.1 125.4 10.8 275.3 98.1 19.9 18.8
평균 훈련 시간 17.4 52.1 119.4 33.6 31.5 26.2 32.5 37.6 33.8
  • Mecab 토크나이저가 전반적으로 가장 성능이 뛰어난 편이며, 의외로 문자 단위 토크나이저도 괜찮은 편이다. 다만 훈련 시간이 꽤 긴 편이어서 추가적인 원인 파악이 필요할 것으로 보인다.

Requirements

Python==3.7.3
khaiii==0.4
konlpy==0.5.2
numpy==1.18.5
pandas==1.0.4
torch==1.5.0
torchtext==0.6.0
tqdm==4.46.1
transformers==3.0.2

Usage

네이버 영화 리뷰 데이터를 다운 받아 data 폴더 안에 저장한 후 다음 코드를 차례대로 실행한다.

python data_preprocess.py
python main.py [--n_epochs N_EPOCHS] [--max_vocab_size MAX_VOCAB_SIZE]
               [--batch_size BATCH_SIZE] [--embedding_dim EMBEDDING_DIM]
               [--hidden_dim HIDDEN_DIM] [--n_layers N_LAYERS]
               [--bidirectional BIDIRECTIONAL] [--dropout DROPOUT]

모든 토크나이저에 대해 훈련이 끝나고 나면 훈련 결과가 result.json 파일로 저장된다.

About

한국어 토크나이저 비교

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages