lih0905/korean-tokenizers

한국어 토크나이저 비교

7

stars

27

commits

Python

primary language

Oct 22, 2020

updated

README

한국어 토크나이저 비교

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

모델

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

토크나이저

결과

  • 에폭별 Loss 및 Accuracy

loss acc

  • 토크나이저별 최고 성능
spacecharactersyllablekhaiiimecaboktkomoranbertkoelectra
loss0.4320.3070.3150.3190.3030.3200.3120.3510.320
acc0.7930.8730.8670.8710.8770.8670.8720.8510.867
  • 토크나이저별 데이터 로딩 및 훈련 시간
spacecharactersyllablekhaiiimecaboktkomoranbertkoelectra
데이터 로딩 시간1.82.26.1125.410.8275.398.119.918.8
평균 훈련 시간17.452.1119.433.631.526.232.537.633.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 파일로 저장된다.

Contributors

lih0905

27 commits

lih0905/korean-tokenizers

한국어 토크나이저 비교

7

stars

27

commits

Python

primary language

Oct 22, 2020

updated

README

한국어 토크나이저 비교

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

모델

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

토크나이저

결과

  • 에폭별 Loss 및 Accuracy

loss acc

  • 토크나이저별 최고 성능
spacecharactersyllablekhaiiimecaboktkomoranbertkoelectra
loss0.4320.3070.3150.3190.3030.3200.3120.3510.320
acc0.7930.8730.8670.8710.8770.8670.8720.8510.867
  • 토크나이저별 데이터 로딩 및 훈련 시간
spacecharactersyllablekhaiiimecaboktkomoranbertkoelectra
데이터 로딩 시간1.82.26.1125.410.8275.398.119.918.8
평균 훈련 시간17.452.1119.433.631.526.232.537.633.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 파일로 저장된다.

Contributors

lih0905

27 commits

Languages

Python

100.0%