Programming

NLP(Natural Language Processing)와 텍스트 전처리 핵심 정리― 개념부터 NLTK 실습까지 한 번에 이해하기

Lucas.Kim 2026. 2. 14. 13:11
반응형

1️⃣ NLP와 텍스트 분석의 차이부터 정리하기

🔹 NLP (Natural Language Processing)

NLP는 인간의 언어를 컴퓨터가 이해하고 해석하도록 만드는 기술 분야입니다.
문장의 구조, 의미, 맥락까지 이해하는 데 초점을 둡니다.

👉 기술 발전 방향

  • 언어 구조 이해
  • 의미 해석
  • 문맥 반영
  • 감정, 의도 파악

🔹 텍스트 분석 (Text Analytics)

텍스트 분석은 NLP 기술을 기반으로 비즈니스 문제 해결에 초점을 둔 분석 분야입니다.

  • 머신러닝
  • 통계
  • 언어 처리
  • 정보 추출

등을 활용하여 예측 분석, 비즈니스 인텔리전스, 인사이트 도출을 수행합니다.

📌 쉽게 말하면

  • NLP = 언어 이해 기술
  • 텍스트 분석 = 이해한 언어로 분석·예측 수행

2️⃣ 텍스트 분석의 주요 활용 분야

① 텍스트 분류 (Text Classification)

문서를 특정 카테고리로 자동 분류하는 기법입니다.

예시:

  • 뉴스 기사 → 정치 / 경제 / 사회
  • 이메일 → 스팸 / 정상
  • 리뷰 → 긍정 / 부정

✔ 지도학습 기반

② 감정 분석 (Sentiment Analysis)

텍스트에 나타난 감정, 판단, 의견을 분석합니다.

활용 사례:

  • 소셜미디어 여론 분석
  • 제품 리뷰 긍정/부정 판별
  • 영화 평점 분석

✔ 지도학습
✔ 비지도학습
✔ 감정 사전(Dictionary) 활용

③ 텍스트 요약

문서에서 핵심 내용을 추출하는 기법입니다.

대표 방식:

  • 추출 요약
  • 토픽 모델링(LDA)

④ 텍스트 군집화 & 유사도 분석

  • 비슷한 문서를 자동 그룹화
  • 문서 간 유사도 측정

👉 비지도 학습 기반

3️⃣ NLP 대표 라이브러리

NLTK 교육용/기초 전처리
Gensim 토픽 모델링
SpaCy 고속, 산업용 NLP

4️⃣ 텍스트 정규화(Text Normalization)

텍스트를 분석 가능한 형태로 정리하는 과정입니다.

① 클렌징 (Cleaning)

  • HTML 태그 제거
  • 특수문자 제거
  • 불필요한 기호 제거

② 토큰화 (Tokenization)

텍스트를 의미 있는 단위로 분리하는 과정입니다.

  • 문장 토큰화
  • 단어 토큰화

✔ 문장 토큰화 실습

from nltk.tokenize import sent_tokenize

text_sample = ("The Matrix is everywhere its all around us, here even in this room. "
               "You can see it out your window or on your television. "
               "You feel it when you go to work, or go to church or pay your taxes.")

sentences = sent_tokenize(text_sample)
print(sentences)


['The Matrix is everywhere its all around us, here even in this room.',
 'You can see it out your window or on your television.',
 'You feel it when you go to work, or go to church or pay your taxes.']

문장이 3개로 분리되었습니다.

✔ 단어 토큰화

from nltk import word_tokenize

sentence = 'The Matrix is everywhere its all around us, heere even in this room'
words = word_tokenize(sentence)
print(words)

['The', 'Matrix', 'is', 'everywhere', 'its', 'all', 'around', 'us', ',', 'heere', 'even', 'in', 'this', 'room']

단어 단위로 분리됩니다.

③ N-gram

단어 하나씩 분리하면 문맥이 사라집니다.

예:

  • "not good"
  • "good"

단어만 보면 구분이 어렵습니다.

그래서 연속된 n개 단어를 묶습니다.

from nltk import ngrams

words = word_tokenize(sentence)
list(ngrams(words,3))

📌 3-gram 예시
('The', 'Matrix', 'is')
('Matrix', 'is', 'everywhere')
...

문맥 보완을 위한 방법입니다.

④ Stopword 제거

의미는 약하지만 자주 등장하는 단어 제거

예:

  • a, the, is, and
stopwords = nltk.corpus.stopwords.words('english')

📌 제거 후 결과
[['matrix', 'everywhere', 'around', 'us', ',', 'even', 'room', '.'],
 ['see', 'window', 'television', '.'],
 ['feel', 'go', 'work', ',', 'go', 'church', 'pay', 'taxes', '.']]

핵심 의미 단어만 남습니다.

⑤ Stemming vs Lemmatization

🔹 Stemming

어근만 단순 절단

working → work
amusing → amus

의미 왜곡 가능

🔹 Lemmatization

품사 기반 의미 중심 원형 복원

amusing → amuse
happier → happy
fanciest → fancy

✔ 더 정교함
✔ 의미 보존

5️⃣ 전처리 전체 흐름 정리

텍스트 분석의 기본 단계는 다음과 같습니다.

  1. 클렌징
  2. 토큰화
  3. Stopword 제거
  4. Stemming / Lemmatization
  5. 벡터화 (TF-IDF 등)
  6. 머신러닝 적용

6️⃣ 핵심 개념 한 장 요약

✔ NLP = 인간 언어 이해 기술
✔ 텍스트 분석 = 이해한 언어로 예측/분석 수행

✔ 토큰화 = 텍스트 분리
✔ N-gram = 문맥 보완
✔ Stopword 제거 = 노이즈 제거
✔ Lemmatization = 의미 기반 원형 복원

🔎 마무리 정리

NLP 기술이 발전하면서 텍스트 분석은 단순 단어 빈도 분석을 넘어
문맥, 의미, 감정, 의도까지 분석할 수 있는 단계로 발전하고 있습니다.

전처리는 단순한 정리가 아니라
👉 모델 성능을 좌우하는 핵심 단계입니다.

텍스트 분석의 성능은
"좋은 알고리즘"보다
"좋은 전처리"에서 결정되는 경우가 많습니다.

반응형