[파이썬] 자연어 처리(NLP, Natural Language Processing) 개념과 예제

자연어 처리(NLP, Natural Language Processing)는 인간의 언어를 컴퓨터가 이해하고 처리할 수 있도록 하는 인공 지능 분야입니다. NLP는 텍스트 데이터의 의미를 추출하거나 생성하는 등 다양한 언어 관련 작업을 수행합니다. 아래는 NLP의 개념과 간단한 예제를 보여드리겠습니다.

NLP의 주요 작업:

  1. 토큰화 (Tokenization): 텍스트를 작은 단위로 나누는 작업. (예: “I love cats.” → [“I”, “love”, “cats”, “.”])

  2. 텍스트 전처리 (Text Preprocessing): 텍스트 데이터를 정제하고 토큰화하여 준비하는 단계. (예: 소문자 변환, 불용어 제거 등)

  3. 문장 분류 (Sentence Classification): 주어진 문장을 카테고리로 분류하는 작업. (예: 스팸 메일 분류)

  4. 감정 분석 (Sentiment Analysis): 텍스트의 감정이나 의견을 파악하는 작업. (예: 긍정적인 리뷰인지 부정적인 리뷰인지 판단)

  5. 기계 번역 (Machine Translation): 한 언어의 문장을 다른 언어로 번역하는 작업. (예: 한국어를 영어로 번역)

  6. 명사 추출 (Named Entity Recognition, NER): 텍스트에서 인물, 장소, 날짜 등과 같은 명사를 인식하는 작업. (예: “Apple은 미국의 기업입니다.” → “Apple”은 조직명)

  7. 문서 요약 (Text Summarization): 긴 문서를 간결한 형태로 요약하는 작업. (예: 뉴스 기사를 짧게 요약)

  8. 질문 응답 (Question Answering): 주어진 질문에 대한 답변을 찾는 작업. (예: “지구는 몇 살입니까?” → “지구의 연령은 약 46억 년입니다.”)

  9. 자연어 생성 (Natural Language Generation): 컴퓨터가 자연스러운 문장을 생성하는 작업. (예: 기사 제목 생성)

간단한 감정 분석 예제를 통해 NLP 작업을 보여드리겠습니다.

from textblob import TextBlob

## 텍스트 데이터
text = "I love this movie! It's amazing."

## 감정 분석
blob = TextBlob(text)
sentiment = blob.sentiment

## 결과 출력
print("Text:", text)
print("Sentiment:", sentiment)` 

위의 코드에서 TextBlob 라이브러리를 사용하여 간단한 텍스트의 감정 분석을 수행합니다. 결과로 “긍정적인” 감정과 관련된 수치를 얻을 수 있습니다.

예제 출력:

Text: I love this movie! It's amazing.
Sentiment: Sentiment(polarity=0.725, subjectivity=0.8)` 

이처럼 NLP는 다양한 텍스트 기반 작업을 컴퓨터가 이해하고 처리할 수 있도록 도와주는 분야입니다.