텍스트 전처리의 개요 및 필요성
- 정의: 날것의 텍스트에서 노이즈를 제거하고 일관된 형태로 만드는 과정
- 필요성: 특수문자, 대소문자 혼용, 오탈자, 불필요한 조사 등이 섞여 있으면 컴퓨터가 같은 단어를 서로 다르게 인식하여 분석 품질이 떨어지기 때문
문제 상황 예시 결과
| 문제 상황 | 예시 | 결과 |
| 특수문자가 섞임 |
맛있어요!!!!
|
!!!!를 단어로 인식
|
| 대소문자 혼용 |
Python vs python
|
다른 단어로 인식 |
| 같은 말 다른 형태 |
먹다 먹어 먹었어요
|
모두 다른 단어로 인식 |
| 쓸모없는 단어 |
은 는 이 가
|
분석에 노이즈 추가 |
| 오탈자 |
맛잇다 맛있따
|
전혀 다른 단어로 인식 |
전처리의 4단계 흐름
- 정제 (Cleaning): 특수문자, URL, HTML 태그 등 분석에 방해되는 노이즈 제거
- 정규화 (Normalization): 대소문자 통합, 반복 문자(ㅋㅋ) 압축, 어간 추출 등 표현 통일
- 토큰화 (Tokenization): 문장을 단어, 형태소 등 최소 분석 단위(토큰)로 쪼개기
- 불용어 제거 (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 등) |
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
'AI Agent > 텍스트 분석과 LLM' 카테고리의 다른 글
| 7. Transformer — Attention Is All You Need (0) | 2026.07.09 |
|---|---|
| 6. 텍스트 분석을 위한 딥러닝 기초 (1) | 2026.06.30 |
| 5. 단어 임베딩 — Word2Vec (0) | 2026.06.24 |
| 4. 텍스트 분류 — 긍정/부정 자동 판단 (0) | 2026.06.09 |
| 1. 텍스트 분석 입문 및 환경 설정 (0) | 2026.05.24 |