본문 바로가기

AI

[NLP] 자연어 처리란

 

자연어(natural language): 사람들이 일상적으로 쓰는 언어, 인공적으로 만들어진 인공어와 구분하여 부르는 개념

 

자연어 처리(NLP, Natural Language Processing)

: 인공적이지 않은, 즉 자연스럽게 발생한 모든 언어(한국어, 영어, 일본어 등)를 컴퓨터가 처리하고 응용하게끔 해주는 모든 기법을 다루는 인공지능의 한 분야

- 인간 언어를 규칙 기반으로 모델링하는 전산언어학과 통계적 머신러닝 및 딥러닝 모델을 결합

- 컴퓨터가 텍스트 또는 음성 데이터의 형태로 인간의 언어를 처리하고, 발화자 또는 작성자의 의도와 감정을 포함한 완전한 의미를 이해할 수 있도록 함

- 인풋을 다루는 NLU(Natural Language Understanding): 각 언어 텍스트의 문법과 문맥 등을 컴퓨터가 사람이 의도한 바와 같이 이해하게끔 하는 영역

- 아웃풋을 다루는 NLG(Natural Language Generation): 더 나아가 컴퓨터가 이해한 것을 바탕으로 직접 인간이 이해할 수 있는 텍스트를 생성해내는 영역

 

  • 자연어를 컴퓨터가 이해할 수 있는 형태(숫자)로 만들어주는 작업 필요 -> 벡터화(Vectorization)
  • 의미 혹은 단어 단위로 문장을 잘 잘라주는 토큰화(tokenization)
  • 모델에 따라 정보 손실을 방지하기 위한 패딩(Padding), 정규화(Normalization)
  • 모델이 더 좋은 성능을 낼 수 있도록 불용어(Stop word) 지정과 범주화(Categorization)등 전처리 과정

모델

  • 통계적 언어 모델 계열: word2 vec, fasttext 등
  • 신경망 기반의 전이 학습 계열: RNN, CNN 등
  • 방대한 양의 사전학습을 마친 전이 학습 계열의 모델들은 대부분 통계적 언어 모델보다 성능이 좋으며, 많이 쓰임

NLP 사용 사례

  • 스팸 탐지: NLP의 텍스트 분류 기능을 활용하여 스팸 또는 피싱임을 알게 해주는 표현을 찾기 위해 이메일 스캔
  • 기계 번역: Google Translate가 가장 널리 활용되는 NLP의 예, 번역은 입력 언어의 의미와 어조를 파악해 동일한 의미와 의도된 영향을 전달하는 출력 언어 텍스트로 번역해야 함
  • 가상 상담원과의 챗봇: 시리같은 가상 상담원은 음성 인식을 사용하여 음성 명령의 패턴을 인식하고, 자연어 생성을 사용하여 적절한 조치 또는 유용한 코멘트로 응답, 챗봇은 입력된 텍스트에 대해 동일한 작업 수행
  • 텍스트 요약: 대량의 디지털 텍스트를 소화하고 인덱스, 연구 데이터베이스 또는 전체 텍스트를 요약