- KoBERT를 이용한 한국어 Named Entity Recognition Task
- 🤗
Huggingface Tranformers
🤗 라이브러리를 이용하여 구현
- torch==1.4.0
- transformers==2.10.0
- seqeval>=0.0.12
- Naver NLP Challenge 2018의 NER Dataset 사용 (Github link)
- 해당 데이터셋에 Train dataset만 존재하기에, Test dataset은 Train dataset에서 split하였습니다. (Data link)
- Train (81,000) / Test (9,000)
- 기존의 KoBERT를 transformers 라이브러리에서 곧바로 사용할 수 있도록 맞췄습니다.
- transformers v2.2.2부터 개인이 만든 모델을 transformers를 통해 직접 업로드/다운로드하여 사용할 수 있습니다
- Tokenizer를 사용하려면
tokenization_kobert.py
에서KoBertTokenizer
를 임포트해야 합니다.
from transformers import BertModel
from tokenization_kobert import KoBertTokenizer
model = BertModel.from_pretrained('monologg/kobert')
tokenizer = KoBertTokenizer.from_pretrained('monologg/kobert')
$ python3 main.py --model_type kobert --do_train --do_eval
--write_pred
옵션을 주면 evaluation의 prediction 결과가preds
폴더에 저장됩니다.
$ python3 predict.py --input_file {INPUT_FILE_PATH} --output_file {OUTPUT_FILE_PATH} --model_dir {SAVED_CKPT_PATH}
Slot F1 (%) | |
---|---|
KoBERT | 86.11 |
DistilKoBERT | 84.13 |
Bert-Multilingual | 84.20 |
CNN-BiLSTM-CRF | 74.57 |