텍스트 전처리
- 텍스트 전처리란, 분석 하기 전 텍스트를 분석에 적합한 형태로 변환하는 작업이다.
- 전처리 단계로는 토큰화, 형태소 분석, 품사 태깅, 원형 복원, 불용어 처리가 있다.
- 전처리는 분석결과와 모델 성능에 직접 영향을 미치기 때문에 매우 중요하다 진리의 GIGO
토큰화 (Tokenization)
- 텍스트를 자연어 처리를 위해 분리하는 것이다.
- 토근화는 문장별로 분리하는 문장 토큰화와, 단어별로 분리하는 단어 토큰화로 구분된다.
- 한국어의 경우 토큰화와 형태소 분석 단계가 혼용되는데, 형태소 분석이 되어야만 토큰화가 가능하기 때문이다.
* 형태소 분석 : 뜻을 가진 가장 작은 단위인 형태소로 분리하는 것
문장 토큰화
문장을 기준으로 토큰화하는 것으로,
온점, 느낌표, 물음표 등으로 너무 단순하게 분리할 경우에는 정확한 분리가 어렵게 된다. (ex. mr.LEE > mr / Lee로 분리됨)
단어 토큰화
단어를 기준으로 토큰화하는 것으로, 영문과 한문을 분리해서 볼 필요가 있다.
* 영문의 경우는 공백으로 기준으로 분리하더라도 유의미한 토큰화가 가능하지만, 한글의 경우 품사를 고려한 토큰화(= 형태소 분석)이 필요하기 때문
이처럼 영문은 공백을 기준으로 분리하더라도 유의미하게 토큰화가 되었지만, 한글의 경우 공백을 기준으로 분리하게 되면 '오바마라는', '오바마가' 로 분리되어
오바마라는 토큰이 같은 토큰임에도 불구하고, 조사로인해 구분이 생겨버린다. 따라서 한글에서는 형태소 분석이 꼭 필요!
단어 토큰화 고려사항
- 특수문자가 있는 경우 (ex. State-of-the-art > State-of-the-art / State | of | the | art )
구두점 및 특수문자를 단순하게 제외해서는 안됨 - 단어 내 띄어쓰기가 있는 경우 ( ex. New York > New York / New | York )
한 단어인데, 띄어쓰기가 있으면 제대로 토큰화가 안될 수 있음
품사태깅 (PoS Tagging)
- 각 토큰에 품사 정보를 부착(추가) 하는 것이다.
- 분석시에 불필요한 품사를 제거(ex. 조사, 접속사) 하거나, 필요한 품사를 필터링하기 위해 사용한다.
개체명 인식 (NER, Named Entity Recognition)
- 사람, 조직, 지역, 날짜, 숫자 등 개체 유형을 식별한다.
- 이는, 검색 엔진 인덱스에 활용된다.
원형 복원
- 각 토큰의 원형 복원을 하면, 토큰을 표준화할 수 있어 불필요한 데이터의 중복을 방지하고 연산의 효율성을 높일 수 있다 (단어의 수가 줄기 때문)
- 원형복원에는 어간 추출과 표제어 추출이 있다.
어간 추출 (Stemming)
"품사를 무시"하고, 규칙에 기반하여 어간을 추출하는 것이다. (ex. running > run, studies > studi)
장점은 규칙에 기반하기 때문에 어간 추출이 가능하나는 것이고, 단점은 어간 추출의 결과가 완벽하게 가독이 안될 때도 있다는 것이다.
* 어간 추출 규칙 확인 : https://tartarus.org/martin/PorterStemmer/def.txt (역시나 다 영어군.. 공부할 수록 자료 이해할라면 영어실력이 필수인 것,,)
표제어 추출 (Lemmatization)
"품사 정보를 유지"하여 표제어를 추출하는 것으로 사전을 기반으로 한다. (ex. running > running, studies > study)
불용어 처리 (Stopwords)
- 불필요한 토큰을 제거하는 작업이다.
- 따라서, 불필요한 품사를 제거하기도 한다.