NLP/이론 및 정리

[기초정리] 1. 자연어 처리란 무엇인가?

DongJin Jeong 2021. 1. 1. 01:06

1. 자연어 처리란

자연어 처리(NLP, Natural Language Processing)란 인간의 언어, 즉 자연어를 사용하여 기계와 상호작용할 수 있도록 하는 기술이다. 자연어는 크게 자연어 이해(NLU, -Understanding)와 자연어 생성(NLG, -Generating)으로 나눌 수 있다. NLP를 사용한 예시로는 기초적인 이메일 필터, 사용자 의도 기반의 검색, 텍스트 자동 완성부터 시리, 빅스비같은 AI 비서까지 다양하다.

2. 자연어 처리 분석 과정

NLP에서의 분석은 크게 네 가지가 있다. 거치는 순서대로 형태소 분석(Morphological Analysis), 구문 분석(Syntactic Analysis), 의미 분석(Semantic Analysis), 화용 분석(Pragmatic Analysis)이다.

형태소 분석(Morphological Analysis) → 구문 분석(Syntactic Analysis) → 의미 분석(Semantic Analysis) → 화용 분석(Pragmatic Analysis)

구문 분석(Syntactic analysis)와 의미 분석(Semantic Analysis)는 NLU의 핵심이라고도 볼 수 있다. 언어란 기본적으로 유효한 문장들의 집합이다. 그렇다면 어떤 것이 문장을 유효하게 만들까? 그것은 바로 구문(Syntax)와 의미(Semantics)이다. Syntax란 문법, 구조, 또는 언어 문장 내에 있는 구성요소의 순서를 뜻한다. 반대로 Semantics란 이러한 구성요소의 의미를 뜻한다.

구문 분석(Syntactic analysis)에서는 문장이 구조적으로 옳은 문장인지 옳지 않은 문장인지를 분석하는 과정이다. 구문 분석을 수행하는 주체를 파서(Parser)라고 한다.

의미 분석(Semantic Analysis)에서는 해당 문장이 의미적으로 옳은 문장인지 아닌지를 분석하는 과정이다. 예를 들어, 책이 수영한다. 와 같이 구조적으로는 옳으나 의미적으로는 틀린 문장이 있을 수 있다. 의미 분석 과정은 때로는 모호할 수 있다는 취약점이 있다. (말이 많다. horse or speech?)

화용 분석(Pragmatic Analysis)는 문장이 실세계와 가지는 연관관계를 분석하는 과정이다. 즉, 사람과 같이 실세계의 지식과 상식이 요구되는 과정이다. 예를 들어, 사람이 "Do you have a time?"이라고 질문을 하는 것은 "너는 시간을 가지고 있는가?"라는 질문이 아니다. 이 때에는 "지금이 몇시인가?"라고 해석하는 것이 타당하며, 이러한 점을 분석하는 것이 화용 분석이다.

이 모든 분석을 하기 전, 입력된 문장을 분석하기 용이하도록 정제하는 과정이 바로 형태소 분석(Morphological Analysis)이다. 형태소 분석과정에서 입력된 문자열을 분석하여 형태소(morpheme)라는 최소 의미 단위로 분리한다. 형태소 분석은 언어에 따라 난이도가 다른데, 한국어에 비해 영어가 쉬운 편이다.

3. 자연어 처리 파이프라인

NLP는 기본적으로 아래와 같은 절차를 따른다.

자연어 처리 파이프라인 (클릭 시 출처로 이동)

문장 입력 → 문장 분할 → 토큰화 → 품사(POS, Parts-of-Speech) 태깅 → 표제어 추출 → 불용어(Stop words) 제거 → 의존 구문 분석 → 명사구 파악 → 개체명 인식 → Coreferenece Resolution → 구문 분석된 텍스트를 데이터 구조로 나타냄

위 단계들은 각각 하나씩 포스트하여 다룰 예정이다.