자연어 처리(NLP) 기초

spaCy로 배우는 자연어 처리

Azadeh Mobasher

Principal Data Scientist

자연어 처리(NLP)

 

  • 인공지능(AI)의 하위 분야
  • 컴퓨터가 자연어를 이해하도록 돕습니다
  • 비정형 데이터에서 인사이트를 추출합니다
  • 통계, 머신러닝, 딥러닝을 포함합니다

 

AI의 하위 분야인 NLP

spaCy로 배우는 자연어 처리

NLP 활용 사례

감성 분석  

  • 글의 숨은 주관적 감정을 컴퓨터로 판별합니다

 

감성 분석 예시

spaCy로 배우는 자연어 처리

NLP 활용 사례

개체명 인식(NER)  

  • 비정형 텍스트에서 고유 개체를 찾아 미리 정의된 범주로 분류합니다
  • 고유 개체는 사람, 장소 등 실제 세계의 객체를 의미합니다

 

NER 예시

spaCy로 배우는 자연어 처리

NLP 활용 사례

 

  • ChatGPT처럼 텍스트 입력에 사람이 쓴 듯한 응답을 생성합니다

 

챗봇

spaCy로 배우는 자연어 처리

spaCy 소개

spaCy는 Python무료 오픈 소스 NLP 라이브러리로:

  • 정보 추출 시스템 구축에 최적화되어 있으며
  • NLP 활용을 위한 프로덕션급 코드를 제공하고
  • 64개+ 언어를 지원하며
  • 견고하고 빠르며, 시각화 라이브러리를 제공합니다

 

spaCy와 NLP

spaCy로 배우는 자연어 처리

spaCy 설치 및 임포트

 

  • 첫 단계로, Python 패키지 관리자 pip으로 spaCy를 설치합니다
  • spaCy의 학습된 모델을 다운로드할 수 있습니다
  • 영어용 사전 학습 모델이 spacy.io에 다수 제공됩니다

 

$ python3 pip install spacy
python3 -m spacy download en_core_web_sm
import spacy
nlp = spacy.load("en_core_web_sm")
spaCy로 배우는 자연어 처리

spaCy로 텍스트 읽기와 처리

  • 로드된 spaCy 모델 en_core_web_smnlp 객체
  • nlp 객체는 텍스트를 처리된 텍스트를 담는 Doc 객체(컨테이너)로 변환합니다

spaCy로 텍스트 처리

spaCy로 배우는 자연어 처리

spaCy 실습

  • 문자열을 spaCy처리하기
import spacy
nlp = spacy.load("en_core_web_sm")
text = "A spaCy pipeline object is created."
doc = nlp(text)
  • 토큰화
    • Token은 텍스트의 가장 작은 의미 단위입니다.
    • 토큰화: 텍스트를 의미 있는 토큰 목록으로 나누는 과정
print([token.text for token in doc])
['A', 'spaCy', 'pipeline', 'object', 'is', 'created', '.']
spaCy로 배우는 자연어 처리

연습해 봅시다!

spaCy로 배우는 자연어 처리

Preparing Video For Download...