AI Agent/텍스트 분석과 LLM

2. 텍스트 전처리(Text Preprocessing)

427paul 2026. 5. 26. 00:36

텍스트 전처리의 개요 및 필요성

  • 정의: 날것의 텍스트에서 노이즈를 제거하고 일관된 형태로 만드는 과정
  • 필요성: 특수문자, 대소문자 혼용, 오탈자, 불필요한 조사 등이 섞여 있으면 컴퓨터가 같은 단어를 서로 다르게 인식하여 분석 품질이 떨어지기 때문

문제 상황 예시 결과

문제 상황 예시 결과
특수문자가 섞임
맛있어요!!!!
!!!!를 단어로 인식
대소문자 혼용
Python vs python
다른 단어로 인식
같은 말 다른 형태
먹다 먹어 먹었어요
모두 다른 단어로 인식
쓸모없는 단어
분석에 노이즈 추가
오탈자
맛잇다 맛있따
전혀 다른 단어로 인식

전처리의 4단계 흐름

  1. 정제 (Cleaning): 특수문자, URL, HTML 태그 등 분석에 방해되는 노이즈 제거
  2. 정규화 (Normalization): 대소문자 통합, 반복 문자(ㅋㅋ) 압축, 어간 추출 등 표현 통일
  3. 토큰화 (Tokenization): 문장을 단어, 형태소 등 최소 분석 단위(토큰)로 쪼개기
  4. 불용어 제거 (Stopwords): '은/는/이/가'와 같이 실질적인 의미가 없는 단어 제외

주요 단계별 핵심 기술 및 도구

정제와 정규화 (정규표현식 활용)

  • 정규표현식(Regex): 특정 패턴의 텍스트를 찾거나 바꾸는 도구
  • 핵심 패턴: 한글만 남기기([^가-힣]), URL 제거(http\\S+), HTML 태그 제거(<[^>]+>), 반복 문자 압축((.)\\1{2,}) 등

토큰화 (Tokenization)

  • 영어: 공백 기준의 split()이나 구두점을 독립시키는 NLTK의 word_tokenize()를 사용
  • 한국어: 조사가 붙는 교착어 특성상 단순 공백 분리가 어렵고 형태소 분석이 반드시 필요

불용어(Stopwords) 처리

  • 분석에 도움이 되지 않는 단어를 제거하여 데이터의 복잡도를 낮춤
  • 영어: NLTK에서 제공하는 기본 불용어 목록(179개)을 활용
  • 한국어: 기본 제공 사전이 없으므로 분석 목적에 맞게 직접 목록을 작성하여 관리

한국어 형태소 분석 (KoNLPy)

분석기 특징 추천 사용 상황
Okt (Twitter) 빠르고 간편, 신조어 강함 ✅ 수업에서 주로 사용
Kkma 정확도 높음, 느림 정밀 분석 필요 시
Komoran 빠르고 정확 대용량 데이터
Mecab 가장 빠름 속도 최우선 시
  • 형태소: 의미를 가진 가장 작은 언어 단위
  • Okt 분석기 주요 기능:
    • morphs(): 형태소 단위로 쪼개기.
    • pos(): 품사 태깅(명사, 동사 등 분류).
    • nouns(): 명사만 추출(가장 많이 사용).
    • stem=True 옵션: "먹었어요", "먹고" 등을 원형인 "먹다"로 통일.

정리

개념 정의 핵심 도구
전처리 텍스트를 분석 가능한 형태로 정제하는 과정 -
토큰화 텍스트를 단어/형태소 단위로 쪼개기 split(), NLTK, KoNLPy
정제 특수문자, URL 등 노이즈 제거 re (정규표현식)
정규화 같은 의미의 단어를 같은 형태로 통일 str.lower(), re.sub()
불용어 분석에 불필요한 단어 (조사, 접속사 등) 직접 목록 작성
형태소 분석 한국어를 의미 단위(형태소)로 분해 KoNLPy (Okt 등)

 

 

https://github.com/427paul/AI_Agent/blob/main/Text%20_Analysis_and_LLM/%5BBDA%5D_2%EC%A3%BC%EC%B0%A8_%ED%85%8D%EC%8A%A4%ED%8A%B8%EC%A0%84%EC%B2%98%EB%A6%AC_%EC%8B%A4%EC%8A%B5.ipynb

 

AI_Agent/Text _Analysis_and_LLM/[BDA]_2주차_텍스트전처리_실습.ipynb at main · 427paul/AI_Agent

Contribute to 427paul/AI_Agent development by creating an account on GitHub.

github.com