HSEOM GeckoHSEOM
Instagram

흑섬 TECH 블로그 - 데이터 기반 브리딩 기술

레오파드게코 브리딩에 데이터 분석과 AI 기술을 접목합니다. Python, NumPy를 활용한 체중 관리, 성장 추이 분석, 환경 데이터 시각화 등 실무에서 직접 사용하는 기술을 일반인도 이해하기 쉽게 설명합니다.

주요 카테고리

AI 카테고리

AI와 머신러닝을 활용한 레오파드게코 브리딩 기술과 데이터 분석 방법을 공유합니다.

43개의 글이 있습니다.

[딥러닝 기초 5편] 텍스트 전처리 파이프라인 — NLP의 기초 체력

매번 반복되는 전처리를 하나의 파이프라인으로 묶어봅시다. NLTK로 정규화 → 토큰화 → 불용어 제거 → 어간 추출까지, 체계적인 전처리 클래스를 직접 만들어요.

카테고리: AI

작성일: 2026-04-25

예상 읽기 시간: 20

Back to Tech
AI·20min read·

[딥러닝 기초 5편] 텍스트 전처리 파이프라인 — NLP의 기초 체력

매번 반복되는 전처리를 하나의 파이프라인으로 묶어봅시다. NLTK로 정규화 → 토큰화 → 불용어 제거 → 어간 추출까지, 체계적인 전처리 클래스를 직접 만들어요.

시작하며 — 매번 반복되는 전처리, 파이프라인으로 묶자

1~4편에서 Word2Vec, RNN, 빈도 분석, LSTM을 만들어봤죠.
근데 매번 코드에서 반복되는 게 있었어요.
"텍스트를 쪼개고, 의미 없는 단어 빼고, 형태 통일하고..."

이걸 매번 즉석에서 하면 실수가 생깁니다.
어떤 코드에서는 불용어를 뺐는데, 다른 코드에서는 안 빼고...
어떤 데이터는 소문자 변환을 했는데, 다른 데이터는 안 하기도 하고요.

실전에서는 이 전처리 과정을 하나의 "파이프라인"으로 묶어둡니다.
입력: 날것의 텍스트 → 파이프라인 통과 → 출력: 깨끗한 토큰 리스트.
머신러닝 실전 시리즈 6편의 sklearn Pipeline처럼요.

이번 편은 이 시리즈의 마무리이자, 동시에 앞으로 모든 NLP 작업의 기반이 돼요.



전처리 파이프라인 — 5단계 정수 과정

텍스트 전처리 파이프라인 5단계 — 원본 → 정규화 → 토큰화 → 불용어 제거 → 어간 추출

"I'm running in the PARK!!!"가 어떻게 변환되는지 단계별로 볼게요:

  1. 정규화 — 소문자 변환 + 특수문자 제거 → "im running in the park"
  2. 토큰화 — 단어 단위로 분리 → ["im", "running", "in", "the", "park"]
  3. 불용어 제거 — "in", "the" 같은 의미 없는 단어 제거 → ["running", "park"]
  4. 어간 추출 — "running" → "run"으로 원형 복원 → ["run", "park"]

정수기의 필터처럼, 각 단계를 거치면서 텍스트가 점점 깨끗해집니다.



Stemming vs Lemmatization — 어간 추출, 두 가지 방법

4단계 "어간 추출"에서 선택지가 두 개 있어요.

Stemming vs Lemmatization 비교 — Stemming은 규칙 기반(빠르지만 부정확), Lemmatization은 사전 기반(느리지만 정확)
원본 Stemming Lemmatization
running run run
studies studi (과도 절단!) study (정확!)
wolves wolv (과도 절단!) wolf (정확!)
beautiful beauti (과도 절단!) beautiful (보존)

Stemming은 규칙 기반이라 빠르지만, "studies" → "studi"처럼 과도하게 잘라버릴 수 있어요.
Lemmatization은 사전을 참조해서 정확하지만, 좀 느립니다.
대량 데이터를 빠르게 처리할 때는 Stemming, 정밀 분석에는 Lemmatization이 적합합니다.



직접 만들어봅시다 — NLTK 전처리 파이프라인 클래스

Python 클래스로 전처리 파이프라인을 만들면,
preprocessor.process(text) 한 줄로 전처리가 끝나요.

Jupyter 실습 — NLTK 설치 + 파이프라인 클래스 정의 (셀 1~2)
NLTK 설치 및 데이터 다운로드

NLTK 설치 후 필요한 데이터(punkt, stopwords, wordnet)를 다운로드합니다.

TextPreprocessor 클래스 정의 코드

normalize → tokenize → remove_stopwords → stem_or_lemmatize 4단계를 하나의 클래스로 묶었어요.


전처리 파이프라인 실행 결과 — 4개 영어 문장이 깨끗한 토큰 리스트로 변환

"wolves" → "wolf", 대문자 → 소문자, 특수문자 제거, 불용어 제거까지
한 줄(preprocessor.process(text))로 전부 처리됐어요!



눈으로 확인 — Stemming vs Lemmatization 비교

Jupyter 실습 — 단계별 변환 과정 + 비교 차트 (셀 3)
단계별 전처리 과정 출력 + Stem vs Lemma 비교 차트 코드

Stemming vs Lemmatization 비교 차트 — 7개 단어의 변환 결과 비교

빨간색이 Stemming, 민트색이 Lemmatization이에요.
"studies" → Stem은 "studi", Lemma는 "study".
"wolves" → Stem은 "wolv", Lemma는 "wolf".
정확도 차이가 확실히 보이시죠?



이 파이프라인, 어디에 연결될까요?

전처리 파이프라인 활용 시나리오 — 감성 분석(ML), 문서 분류(DL), 검색 엔진(실무)
시나리오 파이프라인 연결
감성 분석 전처리 → TF-IDF → Logistic Regression ML 시리즈와 연결
문서 분류 전처리 → Word2Vec(1편) → LSTM(4편) 이번 DL 시리즈와 연결
검색 엔진 전처리 → 역색인 → BM25 스코어링 실무 응용

어떤 모델을 쓰든, 전처리가 가장 먼저예요.
전처리 품질이 곧 모델 성능을 결정합니다.



더 알고 싶다면 — 참고 자료

자료 설명
NLTK Book (Ch.3) 텍스트 전처리의 체계적 설명이에요
spaCy 공식 문서 산업 수준 NLP 전처리 라이브러리 — NLTK보다 빠릅니다
Hugging Face Tokenizers 최신 서브워드 토크나이저 (BPE, WordPiece) — GPT/BERT가 사용하는 방식이에요
Jurafsky & Martin (Ch.2) 텍스트 정규화 교과서 — NLP의 바이블이에요
KoNLPy 문서 한국어 전처리는 여기! Okt, Mecab 등 형태소 분석기


시리즈 마무리 — 딥러닝 기초 5편을 돌아보며

이번 편 핵심 3줄 요약

  1. 전처리 파이프라인은 정규화 → 토큰화 → 불용어 제거 → 어간 추출, 4단계로 구성돼요.
  2. Stemming은 빠르지만 부정확, Lemmatization은 느리지만 정확합니다.
  3. 어떤 모델을 쓰든 전처리가 가장 먼저예요 — 전처리 품질 = 모델 성능.

딥러닝 기초 시리즈 전체 여정

1편 Word2Vec — 단어를 의미가 담긴 벡터로 바꾸기
2편 RNN — 순서를 기억하는 신경망으로 다음 단어 예측
3편 빈도 분석 — 텍스트의 핵심을 한눈에 파악
4편 LSTM — 기억하는 신경망으로 이름 국적 분류
5편 전처리 파이프라인 — NLP의 기초 체력 완성 (이번 편!)

다음 시리즈 예고

딥러닝 기초 시리즈 5편을 다뤄봤습니다.

다음 시리즈에서는 이미지 처리 딥러닝을 다룰 예정이에요.
CNN(합성곱 신경망), 이미지 분류, 전이 학습까지 — 기대해주세요!

#NLP#전처리#NLTK#토큰화#불용어#Stemming#Lemmatization#python