텍스트 데이터 전처리

Youngho LEE·2025년 8월 10일
post-thumbnail

"목표 모델에 맞게 최대한 정보는 살리고, 노이즈만 제거"가 핵심.

토큰화
정제 및 정규화
어간 추출 및 표제어 추출
불용어
정수 인코딩

모델 유형별 전처리 방식

  • 전통 ML(BoW/TF-IDF) : 강한 전처리 (불용어/표제어/형태소)
  • DL(자체 tokenizer•subword) : 중간 전처리 (유니코드 정규화, 공백/HTML 제거, SentencePiece 등)
  • Transformer(pretrained, BERT/LLM) : 최소 전처리 (tokenizer에 위임, 특수문자/제어문자만 정리)
전처리 단계BOW/TF-IDFRNN/CNN(직접 토크나이저)프리트레인드 트랜스포머(BERT/LLM)
토큰화✅(단어/형태소)✅(서브워드 권장: SentencePiece/BPE)모델 전용 토크나이저만
정제·정규화(공백/제어문자/유니코드 NFKC/HTML 제거)✅(가벼운 정리만)
어간/표제어✅(효과 큼)△(데이터/언어 의존)❌(어휘·포지션 깨짐)
불용어 제거✅(성능↑ 가능)△(과제 의존)❌(사전/컨텍스트 손상)
정수 인코딩(토큰→ID)✅(단어 인덱스/TF-IDF vocab)✅(자체 vocab/서브워드 ID)반드시 모델 토크나이저로
  • BoW/TF-IDF: 통계적 피처이므로 불용어/어간/표제어로 차원 축소와 노이즈 제거가 효과적.

  • 직접 학습 딥러닝: OOV에 취약 → subword(BPE/Unigram)로 정수 인코딩하면 안정적.

  • pretrained transformer: 학습된 서브워드 사전·케이싱(cased/uncased)·특수토큰이 이미 최적화. 외부에서 불용어 제거/표제어화하면 사전 정렬과 위치 정보가 깨져 성능 저하가 흔하다.

  • 토큰화

    • 한국어 전통 파이프라인: 형태소(Okt/MeCab) 또는 단어.
    • 범용·딥러닝: SentencePiece(BPE/Unigram)로 서브워드 학습.
    • 트랜스포머: AutoTokenizer.from_pretrained(...)만 사용.
  • 정제·정규화

    • 유니코드 NFKC, 다중 공백 압축, 제어문자 제거, HTML 보일러플레이트 제거.
    • 대소문자: 한국어 중심이면 영향 작음. 영어 혼입 코퍼스는 과제에 따라 결정(단, BERT-cased면 소문자화 금지).
  • 어간/표제어

    • 전통 ML에 유리(차원 축소, 변형어 통합). 한국어는 “원형화”가 안전.
  • 불용어

    • 전통 ML에서 차원/노이즈 감소 효과.
    • 랜스포머에선 제거 금지(사전·문맥 손실).
  • 정수 인코딩

    • 단어 인덱스/TF-IDF의 vocab → 희소 벡터.
    • 서브워드/BPE → OOV 감소, 문장 어디서나 분해 가능.
    • 트랜스포머는 모델 사전의 토큰 ID를 그대로 사용해야 함(스페셜 토큰 포함).
profile
개발자

0개의 댓글