ElectraSpacer는 KoCharELECTRA를 사용하여 음절 단위로 tokenizer를 이용한 ELECTRA 기반 한국어 자동 띄어쓰기 모델입니다.
국립국어원 모두의 말뭉치에서 문법성 판단 말뭉치를 학습 Dataset으로 사용했습니다.
train_dataset.py을 실행하여 json 파일을 csv 파일 형태로 바꿔 학습하였습니다.
- 문법성 판단 말뭉치
- train.csv : 15,876개
- dev.csv : 1,060개
- test.csv : 1,060개
- 학습 데이터 구조
- wrong_sentence : 띄어쓰기 공백이 모두 제거된 문장
- correct_sentence : 올바른 띄어쓰기가 된 문장
KoBERT | KoCharELECTRA-Base | KoCharELECTRA-Samll | |
---|---|---|---|
Accuracy | 97% | 98% | 99% |
F1 Score | 95% | 97% | 98% |
자세한 내용은 이곳을 확인해주세요.
ElectraSpacer는 아래와 같이 KoCharElectraTokenizer를 사용하여 character(음절) 단위로 토큰화합니다.
from tokenization_kocharelectra import KoCharElectraTokenizer
tokenizer = KoCharElectraTokenizer.from_pretrained("monologg/kocharelectra-base-discriminator")
tokenizer.tokenize("나는 걸어가고 있는 중입니다.")
>> ['나', '는', ' ', '걸', '어', '가', '고', ' ', '있', '는', ' ', '중', '입', '니', '다', '.']
inference.py 실행을 하면 results 폴더에 predictions.json 으로 결과가 저장됩니다.
python inference.py
"0": [
"나는철수에게공을던져다주었다.",
"나는 철수에게 공을 던져다 주었다.",
"나는 철수에게 공을 던져다 주었다."
]
predict.py 실행을 하면 띄어쓰기 교정을 바로 확인 할 수 있습니다.
python predict.py
from spaceprediction import ElectraSpacer
electraspacer = ElectraSpacer()
electraspacer("나는걸어가고 있는중입니다.")
>> "나는 걸어가고 있는 중입니다."
[1] KoCharELECTRA
[2] ELECTRA
[3] Between-Spaces