NLP/NLP 기초

[NLP] NLP(Natural Language Processing)

데이터 세상 2021. 3. 12. 17:42
728x90
반응형

NLP(Natural Language Processing)

  • 컴퓨터를 이용하여 인간 언어의 이해, 생성 및 분석을 다루는 인공지능 기술
  • 자연어를 컴퓨터가 해독하고 그 의미를 이해하는 기술
  • NLP = NLU + NLG

NLP (Natural Language Processing)

 

NLU(Natural Language Understanding)

  • 문자로 된 언어를 입력으로 직접 받아들여서, 목적에 맞게 내부적으로 처리해내는 과정
  • 자연어 표현을 기계가 이해할 수 있는 다른 표현으로 변환시키는 것

 

NLU 사용하는 기술

Word Embedding

  • 단어나 형태소를 벡터화하는 기술

 

MRC 기술 및 대화 모델

  • 사용자가 어떤 질문을 했을 때 기계는 자신이 학습했던 내용 중에서 적절한 답변을 알아서 찾아 제공해주는 것

※ MRC

  • Machine Reading Comprehension, 기계독해
  • 인공지능(AI) 알로리즘이 스스로 문제를 해석하고 질문에 최적화된 답안을 찾아내는 기술

 

NLG(Natural Language Generation)

  • 주어진 수치 등의 정보를 바탕으로 문장을 생성하여 사용자에게 자연어로 응답을 돌려주는 기술
  • 지식 기반이나 논리 형식과 같은 기계 표현에서 의미 표현으로 자연어 문장 생성 기술

NLP Approach

Symbolic Approach

  • 규칙/지식 기반 접근법
  • 언어의 문법적인 규칙을 사전에 정의해두고 그것에 기반하여 자연어를 처리하는 방식
  • 1954년 조지타운 대학과 IBM이 공동으로 개발한 러시아어-영어 번역기가 그 시초

 

문제점

  • 자연어처리의 규칙을 사전에 직접 구축해야 한다
  • 언어의 규칙을 다양한 예외가 존재하며 모든 내용을 규칙화하는 것은 거의 불가능
  • 대응할 수 있는 문장의 종류가 제한되거나 정확도가 떨어질 수 있다

 

Statistical Approach

  • 확률/통계 기반 접근법
  • 조건부 확률의 수학적 개념을 적용
    • 어떠한 사건이 이미 일어난 것을 가정하고, 그 상황에서 다른 사건이 일어난 확률
  • 문장을 단어(언어에 따라 형태소 등으로 나누기도 함)별로 나누고 문장을 완성시켜 나갈 때 앞(혹은 뒤)에 등장한 단어라는 이미 일어난 사건에 대해 다음에 어떤 단어가 나올 확률이 가장 높은지를 여러 단어들에 대해 계산
  • 언어에 어떠한 규칙이 있다면 통계적으로 볼 때 규칙에 관여되는 단어(형태소) 사이에 유미의한 상관관계가 나타날 것이라는 아이디어에서 출발

 

TF-IDF를 이용한 키워드 추출

  • TF(Term Frequency): 단어가 문서에 등장한 개수
    • TF가 높을수록 중요한 단어
  • DF(Document Frequency): 해당 단어가 등장한 문서의 개수
    • DF가 높을수록 중요하지 않은 단어

 

Deep Learning Approach

Machine Learning

  • 입력으로 사용될 다양한 데이터를 대입시키는 것을 통해 알고리즘이 스스로 연산의 가중치를 결정하게 하는 것
  • 훈련
    • 입력 데이터 예시들을 알고리즘에 계속해서 투입시키면서 내부적으로 처리하는 데 사용되는 가중치를 계속해서 갱신시키는 작업
  • 모델
    • 훈련을 거친 실정에 사용 가능한 상태의 알고리즘

 

Deep Learning

  1. 어떠한 목적으로 자연어처리를 도입할 것인지 결정
  2. 목적과 관련한 학습 데이터(코퍼스)를 구축하거나 확보
  3. 학습 데이터를 통해 학습시킬 모델을 작성
  4. 모델을 코퍼스를 이용하여 학습
  5. 학습된 모델을 검증하고 문제가 있을 경우 2~4단계를 돌아가 수정
  6. 완성된 모델을 실전에 투입

→ 결과의 성능은 2, 3단계의 영향을 많이 받고, 대부분의 기술 개발은 2, 3단계를 개량하는 방향으로 이루어짐

 


NLP 단계

Preprocessing

[NLP/NLP 기초] - 텍스트 전처리

[NLP/NLP 기초] - Data Preprocessing

  • 개행문자/특수문자/공백 등 제거
  • 중복 표현 제거
  • 이메일, 링크 제거
  • 제목 제거
  • 불용어(의미가 없는 용어) 제거
  • 조사 제거
  • 띄어쓰기, 문장분리 보정
  • 사전 구축

 

Tokenizing

  • 예측해야할 입력정보(문장 등)을 하나의 특정 기본 단위로 자르는 것
  • 구문 tokenizing
  • 형태소 tokenizing
  • n-gram tokenizing
  • WordPiece tokenizing

※ 형태소

  • 의미를 가지는 가장 작은 단위로서 더 쪼개지면 의미를 상실하는 것들

형태소 분석

  • 의미를 가지는 단위를 기준으로 문장을 살펴보는 것

 

Lexical Analysis

[NLP/NLP 기초] - Lexical Analysis

  • 어휘 분석
  • 형태소 분석
  • 개체명 인식
  • 상호 참조

 

Syntactic Analysis

[NLP/NLP 기초] - Syntactic Analysis

  • 구문 분석

 

Semantic Analysis

[NLP/NLP 기초] - Semantic Analysis

  • 의미 분석

NLP Applications

형태소 분석, 문서 분류, 개체명 인식 등 대부분의 자연어 처리 문제는 '분류'의 문제


References

728x90
반응형

'NLP > NLP 기초' 카테고리의 다른 글

[NLP] Data Preprocessing  (0) 2021.03.15
[NLP] 텍스트 전처리  (0) 2021.03.15
[NLP] Kaggle  (0) 2021.03.15
EDA(Exploratory Data Analysis)  (0) 2021.03.15
[NLP] Machine Comprehension  (0) 2021.03.15