Pretrained Language Model 성능에 가장 큰 영향을 주는 것은 Corpus의 quality
라고 생각합니다. 그러나 뉴스 등의 데이터를 보면 불필요한 문장들이 많기에 이를 전처리하는 과정이 필요했습니다.
re.compile(r'[^ .,?!/@$%~%·∼()\x00-\x7F가-힣]+')
특히 한자의 경우 Vocab의 quality를 많이 떨어뜨린다고 판단하여 제외하였습니다
[]
, {}
, 【】
, <>
가 대표적
$ pip3 install kss
뉴스는 Noise가 있는 문장 (ex. 무단전재
, (서울=뉴스1)
이 포함된 문장)이 너무 많은데, 하나하나 판별하는 것은 너무 어려워서 데이터 손실을 보더라도 Noise일 가능성이 있으면 무조건 제외하였습니다.
from soynlp.normalizer import repeat_normalize
repeat_normalize('와하하하하하하하하하핫', num_repeats=2) # '와하하핫'