Preprocessing for Korean analysis
[Case 1]
일반적으로 KoNLPy 같은 오픈소스 형태소 분석기를 사용하지만, 형태소 분석 과정에서 잘못된 태깅으로 말뭉치 정보가 왜곡되거나 손실될 경우가 존재한다. 이러한 문제점을 보안하기 위해 다음 방법을 쓰기도 한다.
단어를 띄어쓰기 기준으로 나누고 3글자까지만 잘라서, 노말라이즈를 한다. 이렇게 하면 아래 예시의 토큰들을 한 단어로 취급할 수 있다.
감정가
감정가의
감정가격에
감정가격은
감정가격이
텍스트 노말라이즈를 하는 근본적인 이유는 단어수를 줄여 분석의 효율성을 높이기 위해서이다. 위 다섯개 단어를 각각 다른 단어로 보고 분석하면 물론 정확성은 높아지겠지만 계산복잡성 또한 증가한다. 어느 순간엔 정확성 상승 대비 분석 비용이 지나치게 높아지게 될 수 있다.
텍스를 숫자로 변경하기 위해서는 단어와 숫자가 매칭된 사전(dictionary)이 있어야 한다. 예측 과정에선 숫자를 단어로 바꿔야 하기 때문에 숫자와 단어가 매핑된 사전도 별도로 만들어야 한다.
word_to_index
{‘학생비자를’: 60946, ‘답답함이’: 13623, (중략) ‘감정가’: 979, ‘감정가의’: 979, ‘감정가격에’: 979, (하략) }
index_to_word
{0: ‘가’, 1: ‘가가갤’, 2: ‘가감’, 3: ‘가거나’, (중략) 979: ‘감정가’ (하략) }
텍스트 전처리
import re
pattern_duration = re.compile('([a-zA-Z]+)\(([^)]+\)\s+_(\d+)_ms')
s='fuzzySearch(고2 수학,chosung) _14_ms db [고2수학]'
pattern_duration.findall(s)
[('fuzzySearch', '고2 수학,chosung', '14')]
[References]
url | 비고 |
---|---|
https://ratsgo.github.io/natural%20language%20processing/2017/03/12/s2s/ | Sequence-to-Sequence 모델로 뉴스 제목 추출하기 - Case 1 |
Author And Source
이 문제에 관하여(Preprocessing for Korean analysis), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@jypark/Preprocessing-for-Korean-analysis저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)