자연어 처리

**자연어 처리**(自然語處理, natural language processing, **NLP**) 또는 **자연 언어 처리**(自然言語處理)는 컴퓨터에 의한 자연어 정보의 처리이다. NLP는 컴퓨터 과학의 하위 분야이며 인공지능과 밀접하게 연관되어 있다. NLP는 또한 정보 검색, 지식 표현 및 추론, 전산언어학, 그리고 더 넓게는 언어학과 관련이 있다.

자연어를 컴퓨터가 이해하기 위해선 프로그래밍 언어로 처리해야 하는데, 컴퓨터가 자연어를 인식 또는 생성할 수 있도록 하는 것을 말한다. NLP 시스템의 주요 처리 작업에는 음성 인식, 문서 분류, 자연어 이해, 자연어 생성이 포함된다.

자연 언어 처리는 연구 대상이 언어이기 때문에 당연하게도 언어 자체를 연구하는 언어학 및 언어 현상의 내적 기재를 탐구하는 언어 인지 과학과 연관이 깊다. 구현을 위해 수학적 통계적 도구를 많이 활용하며 특히 기계학습 도구를 많이 사용하는 대표적인 분야이다. 정보검색, QA 시스템, 문서 자동 분류, 신문기사 클러스터링, 대화형 에이전트 등 다양한 응용이 이루어지고 있다.

## 역사

자연어 처리는 1950년대에 그 뿌리를 두고 있다. 이미 1950년에 앨런 튜링은 "계산 기계와 지능"이라는 제목의 논문을 발표하여 지능의 기준으로 현재 튜링 검사라고 불리는 것을 제안했다. 비록 당시에는 그것이 인공지능과 분리된 문제로 명확히 표현되지는 않았지만, 제안된 테스트에는 자연어의 자동 해석 및 생성과 관련된 작업이 포함되어 있다.

### 기호주의 NLP (1950년대 – 1990년대 초반)
섬네일|추상 구문 트리로 구문 분석된 문서
기호주의 NLP의 전제는 존 설의 중국어 방 사고 실험을 통해 종종 설명된다. 규칙 모음(예: 질문과 일치하는 답변이 있는 중국어 회화집)이 주어지면, 컴퓨터는 직면한 데이터에 해당 규칙을 적용함으로써 자연어 이해(또는 기타 NLP 작업)를 모방한다.

* **1950년대**: 1954년의 조지타운-IBM 실험은 60개 이상의 러시아어 문장을 영어로 완전히 자동 번역하는 과정을 포함했다. 저자들은 3~5년 안에 기계 번역 문제가 해결될 것이라고 주장했다. 그러나 실제 진전은 훨씬 더뎠고, 10년간의 연구가 기대에 미치지 못했다는 1966년의 ALPAC 보고서 이후 기계 번역에 대한 자금 지원이 급격히 줄어들었다. 1980년대 후반 최초의 통계적 기계 번역 시스템이 개발될 때까지 미국에서는 기계 번역에 대한 추가 연구가 거의 수행되지 않았다(다만 일본이나 유럽 등 다른 지역에서는 일부 연구가 계속되었다).
* **1960년대**: 1960년대에 개발된 주목할 만한 성공적인 자연어 처리 시스템으로는 제한된 어휘를 가진 제한된 "블록 세계"에서 작동하는 자연어 시스템인 SHRDLU와, 1964년에서 1966년 사이에 조셉 웨이젠바움이 작성한 로저스식 심리 치료 시뮬레이션인 ELIZA가 있었다. 인간의 생각이나 감정에 대한 최소한의 정보만을 사용했음에도 불구하고, ELIZA는 인간과 유사한 상호작용을 만들어낼 수 있었다. "환자"가 아주 작은 지식 베이스를 초과할 때 ELIZA는 일반적인 응답을 제공할 수 있었는데, 예를 들어 "머리가 아파요"라는 말에 "왜 머리가 아프다고 말씀하시나요?"라고 답하는 식이었다. 로스 퀼리언의 자연어 연구는 당시 컴퓨터 메모리에 들어갈 수 있는 전부였던 단 20개의 단어만으로 성공적으로 시연되었다.
* **1970년대**: 1970년대 동안 많은 프로그래머들은 현실 세계의 정보를 컴퓨터가 이해할 수 있는 데이터로 구조화하는 "개념적 온톨로지"를 작성하기 시작했다. MARGIE (Schank, 1975), SAM (Cullingford, 1978), PAM (Wilensky, 1978), TaleSpin (Meehan, 1976), QUALM (Lehnert, 1977), Politics (Carbonell, 1979), Plot Units (Lehnert 1981) 등이 그 예이다. 이 시기에 최초의 챗봇(예: PARRY)들이 작성되었다.
* **1980년대**: 1980년대와 1990년대 초반은 NLP에서 기호주의 방법론의 전성기였다. 당시의 집중 분야는 규칙 기반 구문 분석 연구(예: 생성문법을 계산적으로 구현한 HPSG의 개발), 형태론(예: 2단계 형태론), 의미론(예: Lesk 알고리즘), 참조(예: 중심화 이론) 및 자연어 이해의 다른 영역(예: 수사 구조 이론)이 포함되었다. Racter나 Jabberwacky와 같은 챗봇 개발 등 다른 연구 라인도 계속되었다. (결국 1990년대 통계적 전환으로 이어진) 중요한 발전은 이 시기에 정량적 평가의 중요성이 커진 것이었다.

### 통계적 NLP (1990년대–현재)
1980년대까지 대부분의 자연어 처리 시스템은 복잡한 수작업 규칙 세트에 기반했다. 그러나 1980년대 후반부터 언어 처리를 위한 기계 학습 알고리즘이 도입되면서 자연어 처리에 혁명이 일어났다. 이러한 변화는 컴퓨팅 파워의 증가(무어의 법칙 참조)와 촘스키 언어 이론(예: 변형생성문법)의 지배력 약화에 영향을 받았다. 촘스키 이론의 이론적 토대는 기계 학습 접근 방식의 기초가 되는 말뭉치언어학과 같은 방식을 권장하지 않았기 때문이다.
***1990년대**: 통계적 NLP 방법의 주목할 만한 초기 성공의 상당수는 기계 번역 분야에서 일어났으며, 특히 IBM 정렬 모델과 같은 IBM 리서치의 연구 덕분이었다. 이러한 시스템은 모든 정부 의사록을 모든 공식 언어로 번역하도록 규정한 법률 덕분에 캐나다 의회와 유럽 연합에서 생성된 기존의 다국어 말뭉치를 활용할 수 있었다. 그러나 많은 시스템은 수행하도록 설계된 작업을 위해 특별히 개발된 말뭉치에 의존했다. 이러한 의존성은 광범위한 효과를 내는 데 주요 한계가 되었으며 유사한 시스템에 계속 영향을 미치고 있다. 결과적으로 제한된 양의 데이터로부터 효과적으로 학습하는 방법에 많은 연구가 집중되었다.
***2000년대**: 웹의 성장과 함께 1990년대 중반 이후 점점 더 많은 가공되지 않은(주석이 달리지 않은) 언어 데이터를 사용할 수 있게 되었다. 이에 따라 연구는 점차 비지도 학습 및 준지도 학습 알고리즘에 집중되었다. 이러한 알고리즘은 원하는 정답이 수작업으로 주석 달리지 않은 데이터나, 주석이 달린 데이터와 달리지 않은 데이터의 조합을 통해 학습할 수 있다. 일반적으로 이 작업은 지도 학습보다 훨씬 어렵고 동일한 양의 입력 데이터에 대해 일반적으로 덜 정확한 결과를 생성한다. 그러나 주석이 달리지 않은 방대한 양의 데이터(월드 와이드 웹의 전체 콘텐츠 포함)를 사용할 수 있으므로, 사용된 알고리즘의 시간 복잡도가 실용적일 만큼 충분히 낮다면 낮은 효율성을 보충할 수 있는 경우가 많다.
***2003년:** 당시 최고의 통계 알고리즘이었던 단어 n-그램 모델이 (요슈아 벤지오 등에 의해 수천만 개의 단어로 훈련되고 하나의 은닉층과 여러 단어의 문맥 길이를 가진) 다층 퍼셉트론에 의해 추월당했다.
***2010년:** 토마시 미콜로프(당시 브르노 공과대학교 박사과정생)는 공동 저자들과 함께 단일 은닉층을 가진 단순 순환 신경망을 언어 모델링에 적용했고, 이후 몇 년 동안 Word2vec을 개발했다. 2010년대에는 표현 학습 및 심층 신경망 스타일(많은 은닉층을 특징으로 함) 기계 학습 방법이 자연어 처리에서 널리 보급되었다. 이러한 전환은 그러한 기술이 언어 모델링 및 구문 분석과 같은 많은 자연어 작업에서 최첨단 결과를 달성할 수 있음을 보여주는 결과로 인해 탄력을 받았다. 이는 의료 및 건강 관리 분야에서 점점 더 중요해지고 있는데, 여기서 NLP는 치료를 개선하거나 환자의 개인 정보를 보호하기 위해 연구가 어려운 전자의무기록 내의 노트와 텍스트를 분석하는 데 도움을 준다.

## 접근 방식: 기호주의, 통계, 인공 신경망
기호주의 접근 방식, 즉 기호를 조작하기 위한 규칙 세트의 수작업 코딩과 사전 조회를 결합한 방식은 역사적으로 일반적인 AI와 특히 NLP 모두에서 사용된 최초의 접근 방식이었다. 예를 들어 문법을 작성하거나 어간 추출을 위한 휴리스틱 규칙을 고안하는 방식이 있다.

반면 통계 및 신경망을 모두 포함하는 기계 학습 접근 방식은 기호주의 접근 방식에 비해 많은 장점을 가진다.

* 통계 및 신경망 방법은 텍스트 말뭉치에서 추출된 가장 일반적인 사례에 더 집중할 수 있는 반면, 규칙 기반 접근 방식은 희귀한 사례와 일반적인 사례 모두에 대해 동등하게 규칙을 제공해야 한다.
* 통계 또는 신경망 방식에 의해 생성된 언어 모델은 규칙 기반 시스템에 비해 낯선 입력(예: 이전에 본 적 없는 단어나 구조 포함)과 오류가 있는 입력(예: 오타가 있거나 실수로 단어가 누락된 경우) 모두에 대해 더 견고하며, 제작 비용도 적게 든다.
* 이러한 (확률적) 언어 모델은 규모가 커질수록 더 정확해지는 반면, 규칙 기반 시스템은 규칙의 양과 복잡성을 늘려야만 정확도를 높일 수 있어 해결 불가능한 문제를 야기할 수 있다.

규칙 기반 시스템은 다음과 같은 경우에 흔히 사용된다.

* 훈련 데이터의 양이 기계 학습 방법을 성공적으로 적용하기에 불충분한 경우(예: Apertium 시스템에서 제공하는 저자원 언어의 기계 번역).
* NLP 파이프라인의 전처리(예: 토큰화).
* NLP 파이프라인 출력의 후처리 및 변환(예: 구문 분석 결과로부터 지식 추출).

### 통계적 접근 방식
1980년대 후반과 1990년대 중반에 통계적 접근 방식은 규칙 기반 접근 방식의 비효율성으로 인해 발생했던 AI 겨울의 시기를 끝냈다.

엄격한 if-then 규칙 시스템을 생성하는 초기 결정 트리는 여전히 기존의 규칙 기반 접근 방식과 매우 유사했다. 품사 태깅에 적용된 은닉 마르코프 모형의 도입만이 기존 규칙 기반 방식의 종말을 알렸다.

### 인공 신경망

통계적 방법의 주요 단점은 정교한 특징 공학이 필요하다는 점이다. 2015년부터 인공 신경망 기반 방법은 단어의 의미적 특성을 포착하기 위해 시맨틱 네트워크와 워드 임베딩을 사용하여 전통적인 통계적 접근 방식을 점차 대체해 왔다.

중간 작업(예: 품사 태깅 및 의존 구문 분석)은 더 이상 필요하지 않게 되었다.

당시 새로 발명된 시퀀스 투 시퀀스 변환에 기반한 신경망 기계 번역은 이전에 통계적 기계 번역에 필요했던 단어 정렬과 같은 중간 단계를 불필요하게 만들었다.

## 일반적인 NLP 작업
다음은 자연어 처리에서 가장 흔히 연구되는 작업 중 일부이다. 이러한 작업 중 일부는 직접적인 실생활 응용 분야가 있는 반면, 다른 작업들은 더 큰 작업을 해결하는 데 도움을 주는 하위 작업으로 더 흔히 쓰인다.

자연어 처리 작업들은 밀접하게 얽혀 있지만, 편의상 범주를 나눌 수 있다. 대략적인 구분은 다음과 같다.

### 텍스트 및 음성 처리
섬네일|히브리어 불용어의 워드 클라우드
; 광학 문자 인식 (OCR)
:인쇄된 텍스트를 나타내는 이미지가 주어졌을 때, 그에 대응하는 텍스트를 결정한다.

; 음성 인식: 한 사람 또는 여러 사람이 말하는 음성 클립이 주어졌을 때, 해당 음성의 텍스트 표현을 결정한다. 이는 음성 합성의 반대이며 구어체로 "AI-완전"이라 불리는 매우 어려운 문제 중 하나이다(위 참조). 자연어 음성에서는 연속된 단어 사이에 휴지기가 거의 없으므로 음성 분할이 음성 인식의 필수 하위 작업이 된다(아래 참조). 대부분의 구어에서 연속된 글자를 나타내는 소리는 동시 조음이라는 과정을 통해 서로 섞이므로, 아날로그 신호를 불연속적인 문자로 변환하는 것은 매우 어려운 과정이 될 수 있다. 또한 같은 언어의 단어라도 사람마다 다른 억양으로 말하기 때문에, 음성 인식 소프트웨어는 텍스트 결과물 관점에서 동일한 다양한 입력을 인식할 수 있어야 한다.
; 음성 분할: 한 사람 또는 여러 사람이 말하는 음성 클립이 주어졌을 때, 이를 단어 단위로 나눈다. 음성 인식의 하위 작업이며 일반적으로 함께 그룹화된다.

; 음성 합성
:텍스트가 주어지면 해당 단위를 변환하여 음성 표현을 생성한다. 음성 합성(Text-to-speech)은 시각 장애인을 돕는 데 사용될 수 있다.

; 단어 분할 (토큰화)
:토큰화는 텍스트를 개별 단어 또는 단어 조각으로 나누는 텍스트 처리 기술이다. 이 기술은 단어 인덱스와 토큰화된 텍스트라는 두 가지 핵심 구성 요소를 생성한다. 단어 인덱스는 고유한 단어를 특정 숫자 식별자에 매핑하는 목록이며, 토큰화된 텍스트는 각 단어를 해당 숫자 토큰으로 대체한다. 이 숫자 토큰들은 다양한 딥 러닝 방법에서 사용된다.
:영어와 같은 언어의 경우 단어가 보통 공백으로 구분되기 때문에 이는 상당히 사소한 작업이다. 그러나 중국어, 일본어, 태국어와 같은 일부 문자 언어는 그러한 방식으로 단어 경계를 표시하지 않으며, 이러한 언어에서 텍스트 분할은 언어의 어휘 및 형태론에 대한 지식을 필요로 하는 중요한 작업이다. 때때로 이 과정은 데이터 마이닝에서 단어 가방 모형(BOW) 생성과 같은 사례에서도 사용된다.

### 형태학적 분석
섬네일|바스크어 단어의 표제어 추출
; 표제어 추출: 굴절 어미만 제거하고 단어의 기본 사전 형식인 표제어를 반환하는 작업이다. 표제어 추출은 단어를 정규화된 형식으로 줄이는 또 다른 기술이다. 하지만 이 경우 변환 과정에서 실제로 사전을 사용하여 단어를 실제 형식에 매핑한다.
; 형태소 분할: 단어를 개별 형태소로 분리하고 형태소의 클래스를 식별한다. 이 작업의 난이도는 고려되는 언어의 형태론(즉, 단어의 구조)의 복잡성에 따라 크게 달라진다. 영어는 비교적 단순한 형태론, 특히 굴절 형태론을 가지고 있어 이 작업을 완전히 무시하고 단어의 가능한 모든 형태(예: "open, opens, opened, opening")를 별개의 단어로 모델링하는 것이 가능한 경우가 많다. 그러나 튀르키예어나 고도의 교착어인 인도 언어 마니푸르어와 같은 언어에서는 각 사전 항목에 수천 개의 가능한 단어 형태가 있기 때문에 그러한 접근 방식이 불가능하다.
; 품사 태깅: 문장이 주어졌을 때 각 단어의 품사(POS)를 결정한다. 많은 단어, 특히 흔한 단어들은 여러 품사로 쓰일 수 있다. 예를 들어 영어에서 "book"은 명사("the book on the table") 또는 동사("to book a flight")가 될 수 있고, "set"은 명사, 동사 또는 형용사가 될 수 있다.

; 어간 추출
:굴절된(또는 때로는 파생된) 단어를 기본 형태로 줄이는 과정이다(예: "closed", "closing", "close", "closer" 등의 어간은 "close"가 된다). 어간 추출은 표제어 추출과 유사한 결과를 내지만, 사전이 아닌 규칙에 근거하여 수행한다.

### 구문 분석
; 문법 유도
:언어의 구문을 설명하는 형식 문법을 생성한다.
; 문장 경계 인식
:텍스트 덩어리가 주어졌을 때 문장 경계를 찾는다. 문장 경계는 종종 마침표나 다른 문장 부호로 표시되지만, 이러한 문자들은 다른 용도(예: 준말 표시)로도 쓰일 수 있다.
; 구문 분석: 주어진 문장의 파스 트리(문법 분석)를 결정한다. 자연어의 문법은 모호하며 전형적인 문장은 여러 가지 분석이 가능하다. 놀랍게도 전형적인 문장 하나에 수천 개의 잠재적 분석이 존재할 수 있다(대부분은 인간에게 완전히 터무니없어 보일 것이다). 구문 분석에는 두 가지 주요 유형이 있는데, 의존 구문 분석과 성분 구문 분석이다. 의존 구문 분석은 문장 내 단어 간의 관계(주어, 목적어, 서술어 등 표시)에 집중하는 반면, 성분 구문 분석은 확률 문맥 자유 문법(PCFG)을 사용하여 파스 트리를 구축하는 데 집중한다.

### 어휘 의미론 (문맥 내 개별 단어의 의미)
섬네일|엔티티 연결 파이프라인의 예시
; 어휘 의미론: 문맥 내 개별 단어의 계산적 의미는 무엇인가?
; 분포 의미론: 데이터로부터 의미 표현을 어떻게 학습할 수 있는가?
; 개체명 인식 (NER): 텍스트 스트림이 주어졌을 때 텍스트 내의 어떤 항목이 사람이나 장소와 같은 고유 명사에 매핑되는지, 그리고 각 이름의 유형(예: 사람, 장소, 조직)이 무엇인지 결정한다. 영어와 같은 언어에서는 대문자 표기가 개체명을 인식하는 데 도움이 될 수 있지만, 이 정보가 개체명의 유형을 결정하는 데는 도움이 되지 않으며, 어떤 경우든 부정확하거나 불충분한 경우가 많다. 예를 들어 문장의 첫 글자도 대문자로 표기되며, 개체명은 종종 여러 단어에 걸쳐 있고 그중 일부만 대문자인 경우도 있다. 또한 서구권 이외의 문자를 사용하는 다른 많은 언어(예: 중국어 또는 아랍어)는 대문자 표기가 전혀 없으며, 대문자 표기가 있는 언어라도 이름을 구별하는 데 일관되게 사용하지 않을 수 있다. 예를 들어 독일어는 이름 여부와 관계없이 모든 명사를 대문자로 시작하며, 프랑스어와 스페인어는 형용사로 쓰이는 이름은 대문자로 표기하지 않는다. 이 작업은 토큰 분류라고도 한다.

; 감정 분석
:감정 분석은 텍스트에 표현된 정서적 톤을 식별하고 분류하는 것을 포함한다. 이 기술은 텍스트를 분석하여 표현된 감정이 긍정적인지, 부정적인지 또는 중립적인지 결정한다. 감정 분류 모델은 일반적으로 단어 n-그램, TF-IDF 특징, 수작업 특징과 같은 입력을 활용하거나, 텍스트 시퀀스의 장기 및 단기 의존성을 인식하도록 설계된 딥 러닝 모델을 사용한다. 감정 분석의 응용 분야는 다양하며 다양한 온라인 플랫폼의 고객 리뷰를 분류하는 등의 작업으로 확장된다.
; 용어 추출
:용어 추출의 목표는 주어진 말뭉치에서 관련 용어를 자동으로 추출하는 것이다.
; 단어 의미 중의성 해소 (WSD): 많은 단어는 하나 이상의 의미를 가지고 있다. 우리는 문맥상 가장 타당한 의미를 선택해야 한다. 이 문제를 위해 일반적으로 사전이나 워드넷과 같은 온라인 리소스에서 제공하는 단어 목록과 관련 단어 의미가 제공된다.
; 엔티티 연결: 많은 단어(전형적으로 고유 명사)는 개체명을 가리킨다. 여기서는 문맥에서 언급된 개체(유명인, 장소, 회사 등)를 선택해야 한다.

### 관계 의미론 (개별 문장의 의미론)
; 관계 추출: 텍스트 덩어리가 주어졌을 때 개체명 간의 관계(예: 누가 누구와 결혼했는지)를 식별한다.
; 의미 구문 분석: 텍스트 조각(전형적으로 문장)이 주어졌을 때, 그래프(예: AMR 파싱) 또는 논리적 형식(예: DRT 파싱)에 따라 그 의미의 형식적 표현을 생성한다. 이 과제는 전형적으로 의미론의 여러 기초적인 NLP 작업(예: 의미역 결정, 단어 의미 중의성 해소) 측면을 포함하며, 본격적인 담론 분석을 포함하도록 확장될 수 있다.
; 의미역 결정
:단일 문장이 주어졌을 때, 의미론적 서술어(예: 동사 프레임)를 식별하고 중의성을 해소한 다음, 프레임 요소(의미역)를 식별하고 분류한다.

### 담론 (개별 문장을 넘어서는 의미론)
; 공통참조 해결: 문장 또는 더 큰 텍스트 덩어리가 주어졌을 때, 어떤 단어("언급")들이 동일한 객체("엔티티")를 가리키는지 결정한다. 대명사 해결은 이 작업의 특정 예시이며, 특히 대명사를 그것이 가리키는 명사나 이름과 매칭하는 것과 관련이 있다. 더 일반적인 작업인 공통참조 해결은 지칭 표현과 관련된 소위 "가교 관계" 식별도 포함한다. 예를 들어 "그는 정문을 통해 존의 집에 들어갔다"라는 문장에서 "정문"은 지칭 표현이며, 식별해야 할 가교 관계는 언급된 문이 (다른 구조물이 아닌) 존의 집의 정문이라는 사실이다.
; 담론분석: 이 항목에는 여러 관련 작업이 포함된다. 하나는 담론 구문 분석으로, 연결된 텍스트의 담론 구조, 즉 문장 간의 담론 관계의 성격(예: 부연, 설명, 대조)을 식별하는 것이다. 또 다른 가능한 작업은 텍스트 덩어리 내의 언어행위(예: 예-아니오 질문, 내용 질문, 진술, 주장 등)를 인식하고 분류하는 것이다.

; 암시적 의미역 결정
:단일 문장이 주어졌을 때, 의미론적 서술어(예: 동사 프레임)와 현재 문장에서 명시적인 의미역을 식별하고 중의성을 해소한다. 그런 다음 현재 문장에서 명시적으로 실현되지 않은 의미역을 식별하고, 이를 텍스트의 다른 곳에서 명시적으로 실현된 인자와 지정되지 않은 인자로 분류하고, 전자를 로컬 텍스트에 대해 해결한다. 밀접하게 관련된 작업은 제로 대명사 해결로, 이는 공통참조 해결을 대명사 탈락 언어로 확장한 것이다.

; 텍스트 함의 인식: 두 개의 텍스트 조각이 주어졌을 때, 하나가 참인 것이 다른 하나를 함축하는지, 다른 하나의 부정을 함축하는지, 아니면 다른 하나가 참 또는 거짓이 되도록 허용하는지 결정한다.

; 토픽 분할 및 인식
:텍스트 덩어리가 주어졌을 때, 각각 하나의 주제에 전념하는 세그먼트로 나누고 해당 세그먼트의 주제를 식별한다.

; 인자 마이닝
:인자 마이닝의 목표는 컴퓨터 프로그램의 도움을 받아 자연어 텍스트에서 논증 구조를 자동으로 추출하고 식별하는 것이다. 이러한 논증 구조에는 전제, 결론, 논증 도식, 그리고 담론 내의 주요 논증과 보조 논증, 또는 주요 논증과 반대 논증 간의 관계가 포함된다.

### 고차원 NLP 응용 분야
섬네일|파이어폭스의 기계 번역
; 자동 요약: 텍스트 덩어리에 대해 읽기 쉬운 요약을 생성한다. 연구 논문, 신문의 금융 섹션 기사와 같이 알려진 유형의 텍스트 요약을 제공하는 데 자주 사용된다.
; 문법 오류 수정
:문법 오류 감지 및 수정은 언어 분석의 모든 수준(음운론/철자법, 형태론, 구문론, 의미론, 화용론)에 걸친 방대한 문제들을 포함한다. 문법 오류 수정은 영어를 제2언어로 사용하거나 습득하는 수억 명의 사람들에게 영향을 미치기 때문에 영향력이 크다. 따라서 2011년부터 여러 공유 과제의 주제가 되어 왔다. 철자법, 형태론, 구문론 및 의미론의 특정 측면에 관한 한, 그리고 GPT-2와 같은 강력한 신경망 언어 모델의 개발 덕분에, 이는 이제(2019년) 대체로 해결된 문제로 간주될 수 있으며 다양한 상업적 응용 분야에서 마케팅되고 있다.
; 논리 번역
:자연어 텍스트를 형식 논리로 번역한다.
; 기계 번역 (MT)
:한 인간의 언어에서 다른 언어로 텍스트를 자동으로 번역한다. 이는 가장 어려운 문제 중 하나이며, 인간이 가진 모든 종류의 지식(문법, 의미론, 실제 세계에 대한 사실 등)을 적절히 해결해야 하는 "AI-완전" 문제의 일원이다.
; 자연어 이해 (NLU): 텍스트 덩어리를 컴퓨터 프로그램이 조작하기 쉬운 1차 논리 구조와 같은 보다 형식적인 표현으로 변환한다. 자연어 이해는 일반적으로 조직된 자연어 개념의 표기 형식을 취하는 자연어 표현으로부터 유도될 수 있는 여러 가능한 의미 중에서 의도된 의미를 식별하는 것을 포함한다. 언어 메타모델과 온톨로지의 도입 및 생성은 효율적이지만 경험적인 솔루션이다. 의미론 공식화의 기초 구축을 위해서는 폐세계 가설(CWA) 대 개방 세계 가정, 또는 주관적인 예/아니오 대 객관적인 참/거짓과 같은 암묵적 가정과 혼동되지 않는 자연어 의미론의 명시적 공식화가 기대된다.
; 자연어 생성 (NLG):
:컴퓨터 데이터베이스의 정보나 의미론적 의도를 읽기 쉬운 인간의 언어로 변환한다.
; 책 생성
:엄밀히 말해 NLP 작업은 아니지만 자연어 생성 및 기타 NLP 작업의 확장으로서 본격적인 책을 만드는 것이다. 최초의 기계 생성 책은 1984년 규칙 기반 시스템에 의해 만들어졌다(Racter, The policeman's beard is half-constructed). 신경망에 의한 최초의 출판물은 2018년에 출판된 1 the Road로, 소설로 마케팅되었으며 6천만 개의 단어를 포함하고 있다. 이 두 시스템은 기본적으로 정교하지만 의미가 없는(의미론이 없는) 언어 모델이다. 최초의 기계 생성 과학 서적은 2019년에 출판되었다(Beta Writer, Lithium-Ion Batteries, Springer, Cham). Racter나 1 the Road와 달리, 이 책은 사실적 지식에 근거하며 텍스트 요약에 기반을 두고 있다.
; 문서 AI
:문서 AI 플랫폼은 NLP 기술 위에 구축되어 인공지능, 기계 학습 또는 NLP에 대한 사전 경험이 없는 사용자도 다양한 문서 유형에서 필요한 특정 데이터를 추출하도록 컴퓨터를 신속하게 교육할 수 있게 한다. NLP 기반 문서 AI를 통해 변호사, 비즈니스 분석가 및 회계사와 같은 비기술 팀이 문서에 숨겨진 정보에 빠르게 액세스할 수 있다.
; 대화 관리
:인간과 대화하도록 의도된 컴퓨터 시스템이다.
; 질의 응답: 인간 언어로 된 질문이 주어졌을 때 그 답을 결정한다. 전형적인 질문에는 구체적인 정답이 있지만("캐나다의 수도는 어디인가?"), 때로는 열린 질문("삶의 의미는 무엇인가?")도 고려된다.
; 텍스트-이미지 생성: 이미지에 대한 설명이 주어졌을 때, 그 설명과 일치하는 이미지를 생성한다.
; 텍스트-장면 생성: 장면에 대한 설명이 주어졌을 때, 장면의 3D 모델을 생성한다.
; 텍스트-비디오 모델: 비디오에 대한 설명이 주어졌을 때, 그 설명과 일치하는 비디오를 생성한다.

## 일반적인 경향 및 (가능한) 향후 방향
이 분야의 오랜 트렌드를 바탕으로 NLP의 미래 방향을 추정해 볼 수 있다. 2020년 기준으로 오랜 역사를 가진 CoNLL 공유 과제의 주제들 사이에서 세 가지 트렌드를 관찰할 수 있다.

* 점점 더 추상적이고 "인지적인" 자연어 측면에 대한 관심 (1999–2001: 얕은 구문 분석, 2002–03: 개체명 인식, 2006–09/2017–18: 의존 구문론, 2004–05/2008–09 의미역 결정, 2011–12 공통참조 해결, 2015–16: 담론 구문 분석, 2019: 의미 구문 분석).
* 다국어성 및 잠재적인 멀티모달성에 대한 관심 증가 (1999년부터 영어; 2002년부터 스페인어, 네덜란드어; 2003년부터 독일어; 2006년부터 불가리아어, 덴마크어, 일본어, 포르투갈어, 슬로베니아어, 스웨덴어, 튀르키예어; 2007년부터 바스크어, 카탈루냐어, 중국어, 그리스어, 헝가리어, 이탈리아어, 튀르키예어; 2009년부터 체코어; 2012년부터 아랍어; 2017년: 40개 이상의 언어; 2018년: 60+/100+ 언어)
* 기호 표현의 제거 (규칙 기반에서 지도 학습을 거쳐 약지도 학습으로, 표현 학습 및 엔드 투 엔드 시스템)

### 인식
대부분의 고차원 NLP 응용 프로그램은 지능적인 행동과 자연어에 대한 겉보기 이해를 모방하는 측면을 포함한다. 더 넓게 말하면, 점점 더 발전된 인지 행동 측면의 기술적 운영화는 NLP의 발전 궤적 중 하나를 나타낸다(위의 CoNLL 공유 과제 트렌드 참조).

인식은 "사고, 경험 및 감각을 통해 지식을 습득하고 이해하는 정신적 활동 또는 과정"을 의미한다. 인지 과학은 마음과 그 과정에 대한 학제간 과학적 연구이다. 인지언어학은 심리학과 언어학 모두의 지식과 연구를 결합한 언어학의 학제간 분과이다. 특히 기호주의 NLP 시대에는 전산언어학 분야가 인지 연구와 강한 유대 관계를 유지했다.

한 예로, 조지 레이코프는 인지언어학의 발견과 함께 인지 과학의 관점을 통해 자연어 처리(NLP) 알고리즘을 구축하는 방법론을 제안하며, 두 가지 정의적 측면을 제시한다.

# 레이코프가 "한 아이디어를 다른 아이디어의 관점에서 이해하는 것"이라고 설명한 개념 은유 이론을 적용하여 저자의 의도에 대한 아이디어를 제공한다. 예를 들어 영어 단어 'big'을 생각해보자. 비교("저것은 큰 나무다")에 사용될 때 저자의 의도는 그 나무가 다른 나무들이나 저자의 경험에 비해 물리적으로 크다는 것을 암시하는 것이다. 은유적으로 사용될 때("내일은 큰 날이다"), 저자의 의도는 중요성을 암시하는 것이다. "그녀는 큰 사람이다"와 같은 다른 용법 뒤에 숨겨진 의도는 추가 정보 없이는 사람이나 인지 NLP 알고리즘 모두에게 어느 정도 모호한 상태로 남을 것이다.
# 예를 들어 확률 문맥 자유 문법(PCFG)을 사용하여 분석 중인 텍스트 조각 전후에 제시된 정보를 기반으로 단어, 구, 문장 또는 텍스트 조각에 의미의 상대적 측정값을 할당한다. 이러한 알고리즘에 대한 수학 방정식은 미국 특허 9269353에 제시되어 있다.
:: {RMM(token_N)}
=
{PMM(token_N)}
\times
\frac{1}{2d}
\left (\sum_{i=-d}^d {((PMM(token_{N})} \times {PF(token_{N-i},token_N,token_{N+i}))_i}\right )


::여기서
:::**RMM**은 의미의 상대적 측정값
:::**token**은 텍스트 블록, 문장, 구 또는 단어
:::**N**은 분석 중인 토큰의 수
:::**PMM**은 말뭉치에 기반한 의미의 확률적 측정값
:::**d**은 토큰 시퀀스 **N**을 따른 토큰의 0이 아닌 위치
:::**PF**는 특정 언어에 고유한 확률 함수이다.

인지언어학과의 유대 관계는 NLP의 역사적 유산의 일부이지만, 1990년대 통계적 전환 이후에는 덜 빈번하게 다루어졌다. 그럼에도 불구하고 기술적으로 운영 가능한 프레임워크를 향해 인지 모델을 개발하려는 접근 방식은 인지 문법, 기능 문법, 로드리게스 등(2016). Building an RRG computational grammar. Onomazein, (34), 86–117. 구성 문법, 계산 심리언어학 및 인지 신경과학(예: ACT-R) 등 다양한 프레임워크의 맥락에서 추진되어 왔다. 그러나 ACL의 주요 컨퍼런스에서의 존재감으로 측정했을 때 주류 NLP에서의 수용은 제한적이었다. 최근에는 설명가능 인공지능을 달성하기 위한 접근 방식으로서 인지 NLP의 아이디어가 "인지 AI"라는 개념 하에 부활하고 있다. 마찬가지로, 인지 NLP의 아이디어는 멀티모달 NLP 신경망 모델에 내재되어 있으며(비록 명시적으로 밝혀지는 경우는 드물지만), 특히 대형 언어 모델 접근 방식을 사용하는 도구 및 기술과 자유 에너지 원리에 기반한 인공 일반 지능의 새로운 방향에서 영국 신경과학자이자 유니버시티 칼리지 런던의 이론가인 칼 J. 프리스턴 등에 의해 연구되고 있다.

## 한국어
### 형태소 분석
자연 언어 처리에서 말하는 형태소 분석이란 어떤 대상 어절을 최소의 의미 단위인 '형태소'로 분석하는 것을 의미한다. (형태소는 단어 그 자체가 될 수도 있고, 일반적으로는 단어보다 작은 단위이다.) 정보 검색 엔진에서 한국어의 색인어 추출에 많이 사용한다.
형태소 분석 단계에서 문제가 되는 부분은 미등록어, 오탈자, 띄어쓰기 오류 등에 의한 형태소 분석의 오류, 중의성이나 신조어 처리 등이 있는데, 이들은 형태소 분석에 치명적인 약점이라 할 수 있다. 복합 명사 분해도 형태소 분석의 어려운 문제 중 하나이다. 복합 명사란 하나 이상의 단어가 합쳐서 새로운 의미를 생성해 낸 단어로 '봄바람' 정보검색' '종합정보시스템' 등을 그 예로 들 수 있다. 이러한 단어는 한국어에서 띄어쓰기에 따른 형식도 불분명할 뿐만 아니라 다양한 복합 유형 등에 따라 의미의 통합이나 분해가 다양한 양상을 보이기 때문에 이들 형태소를 분석하는 것은 매우 어려운 문제이다. 기계적으로 복합명사를 처리하는 방식 중의 하나는, 음절 단위를 기반으로 하는 bi-gram이 있다. 예를 들어, '복합 명사'는 음절 단위로 '복합+명사', '복+합명사', '복합명+사'의 세 가지 형태로 쪼갤 수 있고, 이 중 가장 적합한 분해 결과를 문서 내에서 출현하는 빈도 등의 추가 정보를 통해 선택하는 알고리즘이 있을 수 있다. 일반적으로, 다양하게 쪼개지는 분석 결과들 중에서 적합한 결과를 선택하기 위해, 테이블 파싱이라는 동적 프로그래밍 방법을 사용한다.

* 나는 → 나(대명사) + 는(조사)
* 나는 → 날(동사) + 는(관형형어미)

### 품사 부착
형태소 분석을 통해 나온 결과 중 가장 적합한 형태의 품사를 부착하는 것을 말한다.
보통 태거라고 하는 모듈이 이 기능을 수행한다. 이는 형태소 분석기가 출력한 다양한 분석 결과 중에서 문맥에 적합한 하나의 분석 결과를 선택하는 모듈이라 할 수 있다. 분석 시 문맥 좌우에 위치한 중의성 해소의 힌트가 되는 정보를 이용해서 적합한 분석 결과를 선택한다. 보통 태거는 대규모의 품사부착 말뭉치를 이용해서 구현하는데 은닉 마르코프 모델(HMM)이 널리 사용되고 있다.

'나는'이라는 어절에 대한 형태소 분석이 다음과 같다면

* 나는 → 나(대명사) + 는(조사)
* 나는 → 날(동사) + 는(관형형어미)

다음과 같이 적절한 품사를 부착하는 것이 품사 부착이다.

* 나는 오늘 학교에 갔다' → *'나(대명사)+는(조사)* 오늘 학교+에 가다+았+다'
* 하늘을 나는 새를 보았다' → '하늘+을 *날(동사)+는(관형형어미)* 새+를 보다+았+다'

### 구절 단위 분석
* 구 단위 분석은 명사구, 동사구, 부사구 등의 덩어리를 의미한다.
** 서울시 서초구 서초동에 있는 가장 유명한 회사는 어디인가요? → *서울시 서초구 서초동*에 있는 *가장 유명한* 회사는 어디인가요?
** 이 해결책은 정말이지 여기에는 적합하지 않아 → *이 해결책*은 *정말이지* 여기에는 *적합하지 않아*

* 절 단위 분석은 중문, 복문 등의 문장을 단문 단위로 분해하는 역할을 수행한다.
** 이 영화는 재미있었는데, 저 영화는 흥미 없었다 → *이 영화는 재미있었는데* , 저 영화는 흥미 없었다
** 어제 내가 본 그 영화는 아주 재미있었다 → *어제 내가 본 그 영화*는 아주 재미있었다.
** 나는 오늘 하늘을 나는 새를 보았다 → 나는 오늘 *하늘을 나는 새*를 보았다

이와 같이, 구 단위 분석을 먼저 수행하고 절 단위 분석을 해서 보다 큰 단위로 만든다. 이러한 분석은 다음 단계인 구문 분석에서의 중의성을 해소하는 데 아주 중요한 역할을 수행한다고 할 수 있다.

## 같이 보기
* 전산언어학
* 간이언어
* 딥 러닝
* 분포 의미론
* 정보 추출
* 정보 검색
* 언어 모델
* 언어 기술
* 자연어 이해
* 음성 처리
* 질의 응답
* Word2vec

## 각주

## 참고 문헌
* 

## 외부 링크
* 


분류:전산언어학
분류:음성 인식
분류:인공지능