데이터 전처리: 텍스트 처리 – 불용어 제거
ㅁ 텍스트 처리
ㅇ 정의:
텍스트 데이터에서 분석 목적에 불필요한 단어(불용어)를 제거하여 데이터의 품질과 분석 효율성을 높이는 과정.
ㅇ 특징:
– 불용어는 조사, 접속사, 빈번히 등장하지만 의미가 없는 단어 등이 포함됨.
– 언어별, 도메인별로 불용어 목록이 다르며, 사전 기반 또는 사용자 정의 가능.
– 전처리 단계에서 토큰화 후 적용하는 경우가 많음.
ㅇ 적합한 경우:
– 텍스트 마이닝, 감성 분석 등에서 의미 있는 단어만 남기고자 할 때.
– 검색엔진 색인 구축 시 검색 품질 향상을 위해.
ㅇ 시험 함정:
– 모든 분석에서 불용어 제거가 항상 좋은 것은 아님(예: 감성 분석에서 ‘not’ 제거 시 의미 왜곡).
– 불용어 사전이 언어와 도메인에 따라 다르므로 일괄 적용 불가.
ㅇ 시험 대비 “패턴 보기” 예시:
O: “불용어 제거는 의미 없는 단어를 제거하여 분석 효율성을 높인다.”
X: “불용어 제거는 항상 분석 성능을 향상시킨다.”
ㅁ 추가 학습 내용
불용어 제거 시 주의할 점은 다음과 같다.
첫째, 도메인 특화 불용어 사전을 구축하는 방법을 이해해야 한다. 일반 불용어 사전만 사용하는 것이 아니라 분석 분야나 데이터 특성에 맞춘 불용어 목록을 별도로 구성하는 것이 중요하다.
둘째, 불용어 제거가 분석 목표에 미치는 영향을 평가하는 방법을 알아야 한다. 불용어 제거로 인해 의미 있는 정보가 손실되거나 분석 결과가 왜곡될 수 있으므로 사전 검토가 필요하다.
셋째, 불용어 제거 과정에서 토큰화 순서, 대소문자 변환, 표제어 추출(lemma)과의 연계 순서를 고려해야 한다. 처리 순서에 따라 결과가 달라질 수 있다.
넷째, 불용어 제거를 하지 않는 것이 유리한 경우도 있다. 특히 부정어와 같이 의미 해석에 중요한 단어는 제거하지 않아야 한다.
마지막으로, NLTK, SpaCy, KoNLPy 등 주요 라이브러리에서 제공하는 불용어 처리 방법과 그 한계를 숙지해야 한다. 각 라이브러리마다 불용어 목록 구성, 언어 지원 범위, 사용자 정의 가능 여부 등이 다르므로 비교 이해가 필요하다.