텍스트 데이터는 모델에 적용하기 전 반드시 전처리 과정을 거쳐야 한다. 텍스트 전처리(Text Preprocessing)이란 원시 텍스트를 모델이 이해할 수 있게 정제하는 전체 과정을 말한다. 텍스트는 구조화되지 않은 형태로 존재하기 때문에, 이를 수치적으로 처리 가능한 형태로 변환해주고 노이즈 제거, 일관성 확보가 목적이다.
소문자 변환
특수문자 제거
숫자 처리
불용어 제거 (the, is, a)
정규표현식 cleaning
가장 기본적인 전처리는 불필요한 문자를 제거하는 것이다. HTML 태그, 특수문자, 숫자, 이모지 등을 제거하거나 필요한 경우에만 유지하는 식으로 텍스트를 정리한다.
그 다음으로는 소문자 변환을 많이 사용한다. 대소문자를 통일함으로써 같은 단어의 불필요한 중복을 줄일 수 있다. 또한, 불용어 제거도 중요한데, 'the', 'is', 'and'처럼 자주 등장하지만 분석에 큰 의미가 없는 단어들을 제거하면 모델이 더 중요한 단어에 집중할 수 있다.
이렇게 텍스트 데이터를 다듬고 나면, 문장을 토큰화(Tokenization)하게 된다. 토큰화 과정은 문장을 단어, 형태소, subword 등의 단위로 나누는 과정으로 사용하는 언어와 목적에 따라 다양한 방식이 적용된다.
Word Tokenization : 단어 단위
Sentence Tokenization : 문장 단위
Subword Tokenization : subword 단위 (playing -> [play, ##ing])
그 외에도 어간 추출(Stemming)이나 표제어 추출(Lemmatization)을 통해 단어의 기본 형태를 통일할 수도 있고, 중복 공백 제거, 이상값 필터링, 맞춤범 교정 등 세부적인 정제 작업도 포함될 수 있다.
어간 추출: 문법을 무시하고 기계적으로 규칙에 따라 단어를 자르는 방식
예시)
playing -> play
studies -> studi
표제어 추출: 문법 고려해서 정확하게 원형으로 반환 (사전 기반 -> POS tagging 필요)
예시)
running -> run
better -> good
studies -> study
이처럼 텍스트 데이터를 모델이 학습할 수 있는 일관된 입력 형태로 정리함으로써, 학습 효율을 높이고 모델의 성능을 향상시킬 수 있다.