검수요청.png검수요청.png

자연어 처리

위키원
7095sj (토론 | 기여)님의 2020년 7월 21일 (화) 11:09 판 (연구)
이동: 둘러보기, 검색

자연어 처리(natural language processing)란 컴퓨터를 이용하여 인간의 언어를 이해하고 생성 및 분석하는 인공지능 기술이다. 인간의 언어 현상을 컴퓨터와 같은 기계를 이용해서 모사 할 수 있도록 연구하고 이를 구현하는 인공지능의 주요 분야 중 하나다. 자연어 처리는 연구대상이 언어학과 언어 현상의 내적 기재를 탐구하는 언어 인지 과학과 연관이 있다. 구현을 위해 수학적 통계적 도구가 많이 활용되며, 기계 학습 도구가 많이 사용된다.

개요

각종 문서나 뉴스, SNS 등 온·오프라인을 가리지 않고 자연어는 많은 곳에서 각기 다른 난이도를 가진 채 존재한다. 바로 이 자연어를 컴퓨터가 읽고 처리할 수 있게 하는 것이 자연어 처리이다. 컴퓨터와 사람 간의 상호작용을 연구하는 컴퓨터 과학과 어학의 한 분야로, 인간의 언어를 이해하기 위해 머신러닝 기술을 적용하여 데이터를 처리하면 과거의 전통적인 방식과는 달리 좀 더 손쉽고 신속하게 정보를 얻어낼 수 있다. 따라서 자연어 처리는 정보검색, 자동통역, 문서작성, 요약분류, 철자 오류 수정 등 이용자의 의도를 컴퓨터가 파악하여 다양한 데이터를 정확하게 제공하는 데 사용된다. 대표적인 자연어 처리 서비스로는 구글 홈, 구글 어시스턴트, 워드렌즈, 왓슨, 코타나, 스카이프 트랜스레이터, 그래머리, 진저 등이 있고, 세부 기술로는 형태소 분석, 고정밀 구문분석과 같은 구조 분석을 바탕으로 한 담화 분석, 문서분류, 정보 요약, 정보추출 기술 등이 있다. 분석은 자연언어 문장에서 형태소 분석, 구문 분석, 의미 분석, 화용 분석 단계를 거쳐 결과가 도출된다.

1950년대부터 기계 번역과 같은 자연어 처리 기술이 연구되기 시작했으며, 90년대 이후에는 대량의 말뭉치 데이터를 사용하는 기계 학습 기반 및 통계적 자연어 처리 기법이 자주 사용되었다. 최근에는 자연어를 효율적으로 처리하기 위해서 딥러닝 기술을 기계 번역 또는 자연어 생성 등에 사용하고 있다. 중의성이 있는 단어, 동음이의어의 경우에는 머신러닝 기법을 통해 해결할 수 있기 때문이다. 애피어의 쑨민 최고 인공지능 과학자는 기계가 인간의 언어를 효율적으로 이해하고 번역하기 위해서는 인간이 단어 간의 관계를 명확히 밝혀줘야 한다고 말했다. 여기서 딥러닝이 사용된다면, 인공지능은 딥러닝을 통해서 단어와 구문이 상황에 따라 어떻게 사용되고 있는지 의미를 학습하는 것이 가능하다. 즉, 누군가 인공지능에 미리 정의된 내용을 입력하지 않았고, 인간이 그사이에 개입해서 관계를 정의하지 않아도, 인공지능 스스로 단어나 구문의 의미를 파악하고 기능을 수행할 수 있게 된다.[1]

딥러닝도 대량의 텍스트 데이터는 필요하다. 컴퓨터는 각각의 토큰이 나타내는 벡터를 학습하는데, 여기서 벡터는 비슷한 단어가 서로 근접하게 매핑되는 곳을 말한다. 가깝게 배치된 비슷한 컨텍스트를 가진 단어들이 의미상 같은 뜻을 공유할 가능성이 높다는 것을 보여준다. 딥러닝과 벡터 매핑을 통해 인간의 개입이 없어도 인공지능 스스로 언어를 보다 정확하게 처리할 수 있으며, 키워드 기반 마케팅이나 감정 분석에도 좋은 결과를 기대할 수 있다. 키워드 기반 마케팅에 활용할 때 벡터의 중요성은 두드러질 것이고, 딥러닝 기반의 자연어 처리를 활용하면 정교한 정서 분석이 가능해질 것이다.[2]

단계

자연어 처리는 자연어로 이루어진 문장을 입력한 후, 형태소 분석, 구문 분석, 의미 분석, 화용 분석을 거친 후, 결과를 도출하는 일련의 과정으로 이루어져 있다.

형태소 분석

자연어 처리에서의 형태소 분석은 대상을 가작 작은 의미 단위인 형태소로 분석하는 것을 의미한다. 정보 검색 엔진에서 한국어의 색인어를 추출할 때 많이 사용된다. 자연어로 작성된 SNS, 웹 문서, 뉴스 기사의 텍스트 데이터를 형태소로 변환해야 다음 단계의 분석 효율성이 올라가기 때문에, 문장을 최소단위까지 쪼개는 것이다. 형태소 분석의 치명적인 약점은 오탈자 발생, 띄어쓰기 오류, 등록되지 않은 언어 등으로 분석에 오류가 발생하거나, 중의적인 의미와 신조어 처리 등이 있다. 복합 명사의 분해도 형태소 분석의 어려운 문제 중 하나이다. 복합 명사란 하나 이상의 단어가 합쳐져 새로운 의미를 생성해 낸 단어를 말하는데, 이러한 단어는 띄어쓰기에 따른 형식도 정확하지 않고, 복합된 유형에 따라 의미와 분해가 다양한 형태를 보이기 때문이다. 형태소 분석은 전처리, 후보 생성 단계, 후처리 단계로 이루어져 있다. 형태소 분석은 띄어쓰기 단위로 진행되며, 한국어는 영어에 비교하여 형태소 분석이 복잡하다. 기계적으로 복합명사를 처리하는 방식은 N-gram, 통계 언어 모델 등등이 있는데, 그중 N-gram의 bi-gram은 음절 단위를 기반하여 연속된 두 단어를 단어별로 쪼갤 수 있다. 예를 들어, '복합 명사'를 음절 단위로 나눈다면 '복합+명사', '복+합명사', '복합명+사' 의 세 가지 형태로 쪼갤 수 있다.[3] 일반적으로 한국어의 형태소 분석에서는 태뷸러 파싱(Tabular Parsing)을 사용하여 형태소의 후보를 분석하는 방법과 기계 학습에 기반한 품사 부착이 사용된다. 과거에는 형태소를 분석할 때 HMM이나 CRF를 사용했지만, 최근에는 딥러닝을 적용하여 분석하고 있다.[4][5]

구문 분석

문장을 구성하는 성분 간의 관계를 분석하는 것을 말한다. 언어의 종류에 상관없이 모든 언어에는 문장을 구성하는데 규칙이 뒤따르기 때문에 필요한 과정이다. 구문 분석은 언어학에서 통사 분석이라고도 불리며, 문장을 구성 성분으로 분해하고 구성 성분 간의 위계 관계를 분석하여 문장의 구조를 결정하는 것을 말한다. 통사는 생각이나 감정을 언어로 표현할 때 완결된 내용을 나타내는 최소의 단위이다. 컴퓨터 과학에서는 일련의 문자열을 의미 있는 토큰으로 분해하고 파스 트리(parse tree)로 만드는 과정을 말한다. 이 과정에는 파서(parser)가 사용되는데, 파서는 인터프리터나 컴파일러의 구성 요소 가운데 하나이다. 인터프리터나 컴파일러의 구성 요소 중 하나로, 입력 토큰 내에 들어 있는 자료 구조를 빌드하고 문법을 검사한다. 또한, 일련의 입력 문자로부터 토큰을 생성하기 위해 별도의 낱말 분석기를 이용하기도 한다. 파서의 프로그래밍은 수작업으로 이루어지며, 도구를 사용하여 반자동 적으로 만들 수도 있다. 문장은 주어와 서술어가 모두 있어야 하는 것이 원칙이지만, 감탄사와 같은 경우 예외가 발생할 수 있다. 어휘적 중의성과 구조적 중의성이 일어날 수도 있다. 시간이 지남에 따라 의존 단계를 구 단위로 분석하는 방법에서 구성 성분 단위로 분석하는 방법으로 발전하고 있다. 세계 각국의 다양한 언어는 언어별 특성에 따라 사용되는 알고리즘이 다르며, 영어는 MST알고리즘, 한국어는 SKY알고리즘이 사용된다. 구문 분석에는 국립국어원에서 제작한 세종코퍼스가 많이 사용되고 있고, 딥러닝도 많이 활용되고 있다.

의미 분석

문장이 나타내는 의미를 분석 및 해석하여 문장 속 단어가 실제로 어떤 의미로 사용되었는가를 판단한다. 문장은 단어의 중의성, 문장의 구조 차이로 인한 통사적 중의성, 통사적으로는 옳을 수 있으나 의미상으로 틀린 중의성, 부정표현으로 인한 중의성, 상황에 따른 중의성 등이 있을 수 있다. 다음은 문법적으로 옳지만 의미적으로 틀린 문장의 예시이다.

  • 동생이 딸기를 먹는다(O)
  • 동생이 아파트를 먹는다(X)

따라서 문법적으로는 규칙에 맞지만 의미가 올바르지 못한 문장들을 알아내야 한다. 이 과정에서 형태소의 의미를 표현하는 지식 표현 기법이 필요하다. 구조 분석기에 의해 생성된 구조들은 의미가 부여된다. 상황에 맞지 않고 맥락에 맞지 않은 문장을 구분하기 위해 각 단어가 지식베이스에서 적절한 개체로 매핑되고, 각 단어의 의미가 서로 결합하는 방법으로 구조를 생성한다. 의미 구조의 대표적인 문법으로는 의미망(Semantic Network), 격문법(Case Grammer), 몬태규 문법(Montague Grammer), 개념의존(Conceptual Dependency) 등이 있다.

화용 분석

문장과 문장 간의 관계에 집중하여 상황을 분석한다. 기계가 발화자의 질문 의도를 파악하고 알맞은 응답을 하는 데 필요한 단계이다. 현실과 어떤 연관 관계가 있고 대화의 흐름으로는 어떤 의미가 있는지를 분석하기 위해, 실세계의 상식 및 지식에 대한 많은 데이터가 필요하다.

역사

전통적 자연어 처리

알고리즘 기반 후보 생성

전통적 자연어 처리 기술들은 알고리즘을 이용하여 여러 개의 후보를 생성하고, 확률적인 방법으로 애매성을 해소하는 접근법을 사용했다. 형태소 분석에 가장 많이 사용되어 온 알고리즘은 태뷸러 파싱(Tabular Parsing) 알고리즘이다. 형태소 분석을 위해서는 형태소 어휘와 품사를 저장하고 있는 자류 구조인 사전과 형태소 어휘 또는 품사의 연속 가능 여부를 담고 있는 자료 구조인 접속 정보가 필요하다. 태뷸러 파싱 알고리즘은 자소를 결합하여 형태소 후보를 생성하고 사전과 접속 정보를 이용하여 조합 가능한 모든 형태소 열을 생성한다. 의존 구조 분석도 형태소 분석과 비슷한 접근 방법을 사용한다. 어절과 어절 사이의 관계를 의존 문법으로 기술하고 해당 문법을 바탕으로 알고리즘을 적용하여 모든 가능한 의존 구조 분석 트리를 생성한다. 아래는 의존 문법의 일보를 이해하기 쉽도록 표로 정리한 것이다.[6]

의존 문법 예시
관계 의존소의 대표 품사 지배소의 대표 품사
수식 관형사, 관형격 조사, 관형사형 전성 어미, 명사, 부사 명사
수식 관형사, 관형격 조사, 관형사형 전성 어미, 부사 대명사
부가 주격 조사, 목적격 조사, 부사격 조사, 보조사,
부사, 연결형 서술 어미, 부사형 전성 어미
동사, 형용사
강조 부사 부사, 관형사

위 표에서 보듯이 입력된 문장의 각 어절은 대표 품사 형태로 변환된다. 그리고 지배 가능한 모든 어절들을 확인하면서 의존 구조 트리 후보들을 생성한다. 아래는 "나는 예쁜 꽃을 좋아한다."라는 문장의 가장 오른쪽 어절인 '좋아한다'부터 첫 어절인 '나는'까지 지배 가능 경로를 따라 이동하면서 의존 구조 트리 후보들을 생성하는 과정을 보여준다.[6]

지배 가능 경로를 이용한 오른쪽 우선 의존 구조 분석의 예
단계 의존소 후보 어절 지배소 후보 어절 의존문법 검사
1 꽃을 좋아한다 OBJ
2 예쁜 꽃을 MOD
3 예쁜 좋아한다 X
4 나는 예쁜 SUB
5 나는 좋아한다 SUB
확률 기반 애매성 해소

규칙이나 알고리즘에 기반한 자연어 처리 모델은 자연어 본연의 특성으로 인해 다수의 분석 후보들을 생성한다. 위 표만 보더라도 '나는'이 '예쁜'을 꾸미는 경우와 '좋아한다'를 꾸미는 경우가 생성된다. 그러므로 문맥을 바탕으로 어떤 것이 보편타당한 것인지를 선택하는 애매성 해소 과정이 필요하다. 전통적인 애매성 해소 방법은 대용량의 언어 지식 부착 말뭉치로부터 통계 데이터를 습득하고 이를 바탕으로 확률적 선택을 하는 것이다. 형태소 분석의 경우에 품사 정보가 부착된 대용량의 말뭉치로부터 해당 품사에서 형태소 후보과 관측될 확률과 현재 품사가 다음 품사로 전이될 확률의 곱을 계산한 후, 가장 높은 확률값을 가지는 형태소 열을 선택하는 HMM(Hidden Markov Model)을 주로 사용한다. 의존 구조 분석도 형태소 분석과 비슷한 방법으로 애매성을 해소한다. 의존 구조 정보가 부착된 대용량의 말뭉치로부터 두 어절이 특정 구문 관계로 출현할 확률을 계산하고 최댓값을 갖는 의존 구조 트리를 선택하는 방법을 주로 사용한다.[6]

식 (1) 

식 (1)에서 는 입력 문장과 의존 구조 트리를 의미하며, 는 문장 내 i번째 어절과 그 어절의 지배소 후보가 되는 어절을 의미한다. 그리고 사이의 구문 표지를 의미한다.

최신 자연어 처리

머신러닝의 도입

최근 딥러닝을 필두로 머신러닝 기술들이 눈부시게 발달함에 따라 자연어 처리 분야에서도 머신러닝 모델을 이용하여 애매성을 해소하고자 하는 연구들이 활발히 진행되고 있다. 머신러닝 또는 기계학습은 인공지능의 한 분야로, 컴퓨터가 학습할 수 있도록 하는 알고리즘과 기술을 개발하는 분야를 말한다. 머신러닝의 핵심은 표현과 일반화에 있다. 표현이란 데이터의 평가이며, 일반화란 아직 알 수 없는 데이터에 대한 처리이다. 즉, 머신러닝이란 학습 데이터라고 불리는 주어진 데이터의 특성을 잘 설명할 수 있으면서도 평가 데이터라고 불리는 새로운 데이터에 적응성이 높은 일종의 함수를 자동으로 찾아내는 것이라고 할 수 있다. 자연어 처리와 연관된 머신러닝 문제는 분류 문제(classification problem), 순차적 표지 부착 문제(sequence labeling problem), 그리고 정책 결정 문제(policy decision problem)로 나뉠 수 있다. 아래 표는 각 머신러닝 문제와 관련이 있는 자연어 처리 기술들을 보여준다.[6]

머신러닝 문제에 따른 자연어 처리 기술
머신러닝 문제 자연어 처리 기술 설명
분류 문제 의존 구조 분석 두 어절 사이의 의존 여부와 구문 표지를 결정
순차적 표지 부착 문제 형태소 분석 문장을 구성하는 어절 열을 형태소 열로 분할하고 품사를 부착
개체명 인식 문장 내에 존재하는 개체명을 탐지하고 개체명 범주를 부착
의미역 결정 문장 내에 존재하는 서술어를 탐지하고 서술어를 수식하는 어절에
의미역 범주를 부착
정책 결정 문제 대화 상대 추적 대화를 구성하는 현재 발화에 대한 다음 발화의 의도를 결정

분류 문제가 적용된 예로는 스팸 메일 자동 필터링 시스템, 신문 기사 범주 자동 결정 시스템, 댓글 감정 분석 시스템 등이 있다. 자연어 처리 분야에서는 의존 구조 분석 시에 현재 어절의 지배소가 어느 것인지를 결정하는 것 즉, 후속 어절 각각에 대해 지배소 가능 여부를 결정하는 것에 적용될 수 있다. 순차적 표지 부착 문제는 시간 순서대로 입력되는 데이터 전체를 고려하면서 각 지점에 분류 모델을 적용하여 범주를 부착하는 것이다. 어절로 구성된 문장 전체에 품사를 부착하는 형태소 분석이나 개체명 경계를 찾고 범주를 부착하는 개체명 분석 등 자연어 처리의 많은 문제들이 순차적 표지 부착 문제에 해당한다. 정책 결정 문제는 대량의 데이터를 바탕으로 정해진 목적을 달성하기에 가장 적합한 정책인지 무엇인지를 결정하는 문제이다. 구글의 딥마인드(DeepMind)가 선보인 알파고와 같은 프로그램이 정책 결정 문제가 적용된 예라고 할 수 있다. 자연어 처리 분야에서는 대용량의 목적 지향 대화 말뭉치(Goal-Oriented Dialogue Corpus)를 바탕으로 해당 목적을 달성하기 위해서 현재 어떤 의도의 발화를 하는 것이 가장 좋은 정책인지를 결정하는 것에 적용될 수 있다.[6]

머신러닝 기반 자연어 처리 모델

머신러닝 기반의 형태소 분석, 개체명 인식, 의미역 결정 등은 식 (2)와 같이 순차적 표지 부착 문제로 변환하여 해결한다.

식 (2) 

식 (2)에서 는 입력된 문장을, 은 표지를 부착해야 하는 개의 분절 열을, 에 부착되는 개의 표지 열을 의미한다. 일반적으로 형태소 분석을 위한 분절은 음절이 되며, 개체명 인식을 위한 분절은 형태소가 되고, 의미역 결정을 위한 분절은 각 서술어를 수식하는 어절이 된다. 예를 들어, "해시넷에 갔다."라는 문장을 형태소로 분석하기 위한 분절 열은 공백을 포함하여 ' [해, 시, 넷, 에, _, 갔, 다, .]'가 되며, 개체명 인식을 위한 분절 열은 ' [해시넷, 에, _, 가, 았, 다, .]'가 된다. 의미역 결정을 위한 분절 열은 ' [해시넷에, 갔다.]'가 된다. 형태소 분석과 개체명 인식을 위한 표지는 아래 표와 같이 경계를 나타내는 표지와 범주를 나타내는 표지를 결합하여 사용한다.[6]

형태소 분석, 개체명 인식, 의미 분석을 위한 표지
구분 표지 설명 예제
형태소 분석 B_POS B: 형태소 경계 시작
POS: 품사
[해, 시, 넷, 에, _, 갔, 다, .]
[B_NNP, I, I, B_JKB, O, B_VV_EP, B_EF, B_SF]
NNP: 고유명사, JKB: 부사격 조사, VV: 동사, EP: 선어말 어미, EF: 어말 어미, SF: 마침 기호
I I: 형태소 경계 내부
O O: 형태소 경계 외부
개체명 인식 B_NEC B: 개체명 경계 시작
NEC: 개체명 범주
[해시넷, 에, _, 가, 았, 다, .]
[B_LOC, O, O, O, O, O, O]
LOC: 장소
I I: 개체명 경계 내부
O O: 개체명 경계 외부
의미역 결정 B_SR B: 의미역 경계 시작
SR: 의미역 범주
[나는, 혼자, 해시넷에, 갔다.]
[B_AGT, O, B_LOC, B_PRED]
AGT: 행위주역, LOC: 장소역, PRED: 술어
I I: 의미역 내부
O O: 비의미역

식 (2)를 단순화하려면 현재 표지는 현재 분절의 특성에만 영향을 받는다는 독립 가정을 적용하고, 현재 표지는 바로 이전 표지에 영향을 받는다는 1차 마코프(Markov) 가정을 적용하면 식 (3)과 같다.

식 (3) 

식 (3)과 같은 모델에서 성능을 좌우하는 것은 를 어떻게 표현할 것인지(어떻게 추상화할 것인지)와 주변의 문맥을 어떻게 반영할 것인지로 요약할 수 있다. MEMM(Maximum Entropy Makov Model)과 같은 전통적 머신러닝 모델에서는 를 효과적으로 추상화하기 위해서 언어 분석 전문가들이 정의한 자질들을 사용하였다. 예를 들어, 개체명 인식의 경우에 의 전체나 일부가 개체명 사전에 포함되어 있는지 여부, 의 품사, 의 품사, 의 품사 등이 주요 자질로 사용되었다. 그러나 최근데 딥뉴럴넷(Deep Neural Network)에 대한 연구가 활발히 이루어지면서 대용량의 말뭉치에서 자동으로 계산된 Word2Vec을 이용하여 를 벡터 형태로 추상화하거나 를 음절 형태로 분리한 후 CNN(Convolutional Neural Network)을 통해 추상화하는 방법이 사용된다.

식 (3)의 경우에 현재 표지의 왼쪽에 있는 표지만 문맥으로 고려되는 단방향성 문제가 존재한다. 이를 해결하고 효과적으로 주변 문맥을 반영하기 위해서 좌우 문맥을 모두 고려하는 CRFs의 모델이 제안되었으며, 최근에는 RNN(Recurrent Neural Network) 계열의 딥뉴럴넷과 CRFs가 결합된 모델들이 주로 사용한다. 좌우 문맥을 모두 고려하는 Bi-LSTM-CRF(Bidirectional Long Short-Term Memory with Conditioanl Random Fields)라는 신경망 모델도 있다. 머신러닝 기반의 의존 구조 분석은 두 어절 사이의 의존 여부와 구문 표지를 결정적으로 찾아가는 분류 문제로 변환하여 해결할 수 있다. 아래 표는 전이 기반 구문 분석 알고리즘에 따라 "나는 예쁜 꽃을 좋아한다."라는 문장의 의존 구조를 분석하는 과정을 보여준다.[6]

전이 기반 한국어 의존 구조 분석의 예
스택 분류
1 나는 예쁜 꽃을 좋아한다 Shift
2 나는 예쁜 꽃을 좋아한다 Reduce
3 나는 꽃을 좋아한다 Shift
4 나는 꽃을 좋아한다 Reduce
5 나는 좋아한다 Reduce

위 표에서 보듯이 전이 기반 한국어 의존 분석은 스택(후입 선출 형태의 자류 구조)과 큐(선입 선출 형태의 자료 구조)의 첫 어절을 비교하여 Shift 할 것인지 Reduce 할 것인지를 반복적으로 이진분류 하는 방식으로 이루어진다. Shift인 경우에 큐의 첫 어절을 스택으로 이동시키며, Reduce인 경우에 스택의 마지막 어절과 큐의 첫어절로 구성된 의존 구조 트리를 구성하고 스택의 마지막 어절을 제거한다. 이와 같은 전이 기반 방법은 두 어절 사이의 정보를 바탕으로 의존 여부를 결정하기 때문에 문장의 전체 구조를 반영할 수 없다는 단점이 있다. 이러한 문제를 해결하기 위해서 최근에는 모든 의존 관계 후보를 그래프 형태로 만들고 전체 후보 중에서 가장 높은 점수를 갖는 후보를 효과적으로 선택하기 위한 다양한 방법들이 활발히 연구되고 있다.

머신러닝 기반의 대화 상대 추적은 강화학습으로 대변되는 정책 결정 문제로 변환하여 해결한다. 대화 상태 추적에 적용된 대표적 정책 결정 모델은 POMDP(Partially Observable Markov Decision Process) 모델이다. POMDP 모델은 대용량의 대화 말뭉치로부터 강화학습을 통해 시스템의 대화 상태를 확률적으로 파악하고 다음 행동을 결정한다. 확률 기반 모델은 음성 인식 오류를 포함한 예기치 않은 사용자 입력에 대해서 부분적으로 관찰된 정보를 바탕으로 시스템의 의도를 결정할 수 있다는 장점이 있지만 학습을 위해서 매우 많은 담화 정보 부착 말뭉치를 필요로 한다는 문제를 안고 있다. 최근에는 딥뉴럴넷을 이용하여 다음 행동을 결정하는 NNMDP(Neural Network Markov Decision Process)와 같은 모델이 연구되고 있다.[6]

연구

자연어 처리는 인간의 언어를 분석하고 표현하는 과정을 자동화하기 위한 계산 기법이다. 과거에는 문장을 입력하기 위해 펀치 카드를 사용하여 7분정도의 시간이 소요됐지만, 현재는 컴퓨터가 파싱, 기계 번역, 품사태깅 등을 수행하여 자연어를 처리할 수 있도록 꾸준히 연구되고 있다. 지난 수십년간 자연어 처리를 해결하기 위해 사용했던 머신러닝은 고차원적인 피처를 학습한 얕은 모델에 기반한다. 머신러닝에 기반한 자연어 처리 시스템은 사람의 손길에 강하게 의존하기 때문에, 많은 시간을 낭비하고 불완전하다는 단점이 있다. 이에 따라 최근 자연어 처리와 관련하여 다양한 모델과 기법들이 적용되고 있다. 여기에는 딥러닝 기법도 해당한다. 딥러닝은 피처를 자동으로 추출하고 표현할 수 있어 새로운 연구 주제로 떠올랐고, 현재 많은 도메인에서 사용되고 있다. 딥러닝 기반의 알고리즘은 데이터의 다층레이어를 사용하여 데이터의 계층적인 표현을 학습한다. 딥러닝 알고리즘의 성장으로, 지난 2017년 기준, 6년간 딥러닝에 관한 논문은 대체적으로 꾸준히 늘고 있다. 다음은 수많은 딥러닝 알고리즘 및 모델들 의 일부를 설명하고 성취도와 차이를 비교한다.

분산표상

자연어를 처리하기 위해 통계 기반 자연어 처리 기법이 떠오르고 있다. 언어모델이 결합확률 함수를 학습해야했기 때문에 초기에는 다소 어려움이 있었으나, 후에 저차원 벡터 공간의 단어 분산표상을 학습하는 계기가 되었다.

  • 단어 임베딩  : 비슷한 의미를 가진 단어는 비슷한 문맥을 가지는 경향이 있다고 가정할 때, 분산표상으로 표현된 벡터 또는 단어 임베딩은 자신과 이웃한 단어의 특징을 잡아내려한다. 이러한 분산표상 벡터는 단어 간의 유사성을 내포하고 있어 벡터간의 유사성을 측정할 수도 있다는 장점이 있다. 단어 임베딩은 벡터 차원의 빠른 계산이 가능하고 단어 간의 문맥 파악, 문맥 유사도를 잡아내는 데 효율적이며, 주로 딥러닝 모델의 첫번째 처리 계층에 자주 사용된다. 좋은 임베딩을 생성할 때 깊은 구조의 뉴럴 네트워크까진 필요하지 않았기 때문에, 수년간 이러한 임베딩 벡터는 간단한 뉴럴 네트워크에서 생성되었다.
  • 워드투벡터 (Word2Vec) :
  • 문자 임베딩  :

활용

기술

최근 인간의 이해를 바탕으로 인간 친화적 서비스를 제공하기 위한 지능형 시스템의 발전이 꾸준히 이루어지고 있다. 이러한 인공지능 시스템의 핵심 기술은 사용자가 손쉽게 원하는 지식을 대화하면서 서비스받거나 언어 제한 없이 다양한 정보를 획득하고 의사소통할 수 있는 언어지능 기술이다. 또한, 언어지능을 위한 핵심 기술로서 질의응답 기술과 자동통역 기술이 상용화된다면 다양한 언어로 만들어진 다양한 정보를 한국어로 검색하여 정보를 획득할 수 있고 다른 언어를 사용하는 사람들과도 자유롭게 소통할 수 있게 된다. 원활한 의사소통과 지식획득을 위한 언어지능기술의 실현으로 인간 중심의 편리한 세상은 더욱 앞당겨질 것으로 기대된다. 이러한 자연어 기반의 언어지능기술의 핵심 기술인 음성 인터페이스 기술, 자동통역 기술, 그리고 자연어 질의응답 기술은 자연어 처리 기반의 인공지능 기술이다.[7]

음성 인터페이스 기술

음성 인터페이스 기술은 인간의 자연스러운 통신 수단인 음성을 인식하여 기계와의 인터페이스를 가능하게 해 주는 기술이며 사람의 말을 이해하고 대화를 통해 사용자의 의도와 상황에 맞는 서비스 및 응답을 제공하는 기술인 대화처리 기술과 같이 사용되어 자연스러운 사용자 인터페이스(NUI, Natural User Interface)의 근간이 되는 기술이다. 이를 위한 주요 기술로 자연어 음성 인터페이스 기술과 자연어 대화처리 기술이 있다. 자연어 음성 인터페이스 기술은 인간의 자연스러운 말을 인식하는 음성인식 기술로 입력 음성에 대한 음향 및 언어 모델링, 환경에서의 강인안 잡음 처리가 기본적으로 필요하며, 음성인식 기반의 정보 처리를 위한 핵심어 검출 기술 개발이 필요하다. 음성인식 기술의 핵심 기술로 자연어 음향모델링 기술, 의미기반 언어모델링 기술, 환경에 강인한 음성 인식 기술, 핵심어 검출 기술 등이 있다. 음성인식 기술의 활용 서비스로 언어 이러닝 서비스가 개발되고 있는데, 자유 발화를 인식하여 대화형태의 언어 학습 시스템을 이용해 언어 사교육비 문제 및 다문화 가족의 언어소통 문제를 해결할 수 있을 것으로 기대된다. 자연어 대화처리 기술은 사람과 기계 간의 대화를 처리하는 기술로써 입력 대화체 문장에 대해 발화자의 의도를 이해하기 위한 대화 이해 기술, 자연스러운 대화 유도를 위한 대화모델링 기술, 외국어 교육 등에 적용할 수 있는 대화 오류 교정 기술 등으로 구성되어 있다. 대화 이해 기술은 사용자 대화의도를 인식하는 기술로 도메인 독립적인 통계적 기반 방법이 대세로 사용된다. 대화처리 기술을 외국어 교육에 접목하여 자동 교육 방식을 제공하려는 연구가 활발히 진행 중이며 향후 대화식 외국어 교육 피드백에 대한 연구가 활발할 것으로 예상된다.[7]

자동통역 기술

자동통역 기술은 크게 다국어 자동번역 기술과 다국어 음성 자동통역기술로 구성되어 있다. 다국어 자동번역 기술은 다국어 문서 또는 대화를 자국의 언어로 자동으로 번역하는 기술로써 입력 텍스트 및 대화체 문장에 대한 언어분석, 변환·생성 기술이 기본적으로 필요하며, 번역 성능 향상 및 언어 확장성을 위해 지식 추출·학습 기술과 하이브리드 자동번역 기술이 필요하다. 이를 위한 주요 기술로 다국어 언어분석 기술, 다국어 생성 및 변환 기술, 지식추출 및 학습 기술, 하이브리드 자동번역 기술 등이 주요 구성 요소이다. 다국어 언어분석 기술은 다국어 입력 문장에 대해 컴퓨터가 이해할 수 있는 단위로 언어학적으로 분석하는 기술로 구성되며 형태소 분석, 구문 분석 및 의미 분석 기술은 자연어 처리의 기반 기술로써 크게 규칙 기반 방법과 통계 기반 방법으로 나눌 수 있다. 지식추출 및 학습 기술은 기존의 소규모 지식 전문가에 의한 번역지식 수동 구축의 한계를 벗어나 대용량 말뭉치로부터 번역지식을 자동으로 추출 및 학습하는 기술로 지식의 용도에 따라 언어 분석과 생성을 위한 지식학습과 자동번역을 이한 단어 및 구 단위 번역 지식학습 등으로 나눌 수 있다. 하이브리드 자동번역 기술은 단일 자동번역 엔진에서의 번역 성능 한계로 복수개의 엔진에서 최적의 번역결과를 선택하는 기술이다. 다국어 음성 자동통역 기술은 사람의 말을 인식하고 다국어로 통역하는 기술로써 편리한 인터페이스를 위해 텍스트, 제스처, 음성 등을 활용하는 멀티모달 인터페이스 기술과 연결될 필요가 있다. 자동통역시스템은 주로 여행·관광 분야 의사소통이 1차 목표이며 일상, 비즈니스 등 다양한 영역으로 확대될 전망이며 웨어러블 컴퓨터의 발달에 따라 스마트폰이 아닌 착용형 안경, 착용형 시계에 통역기가 장착되어 사용성의 편리함이 극대화될 것으로 예상된다.[7]

자연어 질의응답 기술

자연어 질의응답 기술은 사용자의 자연어 질문에 맞는 정답 후보들을 추출하여 그중에 최적 정답을 제시하는 기술로 다양한 인공지능 응용 시스템에서 언어지능 핵심 모듈로 활용이 가능한 기술이다. 자연어 질의응답 기술은 다섯 개의 세부 기술로 구성되어 있다. 첫 번째는 자연어 질문분석 및 이해 기술이다. 최적의 정답추출 전략을 결정할 수 있도록 질문을 정답추출의 전략별 유형을 구분하고 인식하는 자연어 질문 분류 기술로 정답 유형 인식 기술을 포함한다. 두 번째는 정답 후보 생성 기술이다. 정답후보 생성을 위한 효과적인 문서·단락인 구문 분석 기술과 의미 분석 기술인 개체명 인식 기술을 통합적으로 활용하여 언어의 내용을 이해하는 기술이다. 네 번째는 개방형 지식 추출 기술이다. 빅데이터 처리를 위해 구문분석 결과나 의미역 할당 결과를 이용하여 이벤트 템플릿을 생성하는 기법과 텍스트 자체만 이용해서 사건의 주체와 객체들을 파악하여 지식을 추출하는 기법을 포함한다. 마지막으로 지식-지식베이스 연동 기술이 있다. 텍스트에서 추출된 지식을 지식베이스에 존재하는 지식들과 비교·대조하여 지식의 진실성, 중복성, 개연성 등을 분석하고 최종적으로 삭제할 것인지 유지할 것인지 결정하는 기술이다.[7]

사례

  • 자연어 API  : 2017년 11월 27일, 구글 클라우드 플랫폼(GCP)에서 자연어 API를 배포했다.[8] 자연어 API는 영어뿐만 아니라 한국어, 중국어, 일본어, 이탈리어어, 독일어, 스페인어 등 다양한 언어의 분석이 가능하고, 일부 기술은 영어에만 적용이 된다. 구글 자연어 API에서는 감성 분석, 엔티티 분석, 구문 분석, 엔티티 감성 분석, 내용 분류 다섯 가지 메소드를 제공했는데, 엔티티 감성 분석과 내용 분류는 영어에만 기능이 적용된다. 감성 분석의 경우, 감성을 정향화한 스코어와, 스코어의 정도를 나타내는 수치로 나누어 점수를 매긴다. 감성을 정향화한 스코어는 -1에 가까우면 부정, +1에 가까우면 긍정의 의미를 갖게 되고, 스코어의 정도를 나타내는 수치는 0에서 무한대의 값을 가진다. 만약 긍정적인 문장 세 줄과 부정적인 문장 두 줄을 입력할 시, 시스템은 스코어와 수치를 계산하여 긍정적인 문서라고 판단한다. 엔티티 분석은 문장에서 고유 명사나 식당, 유명인 단어를 분석한다. 구문 분석은 문장을 토큰 단위로 분리하여 분석한다. 의존성, 품사, 기본형 등 분석 결과를 제공한다.[9]
  • 엑소브레인 : 과학기술정보통신부가 국가적으로 추진 중인 국가 혁신기술 연구개발 프로젝트로, '내 몸 밖의 인공두뇌'라는 의미이다. 2016년 EBS 장학퀴즈에서 인간과 함께 대결한 결과, 압도적으로 승리하여 유명해졌다. 이를 통해 대중에게 '한국형 알파고'라고 불리기도 했다. 프로젝트의 비전은 '세계 최고의 인공지능 기술을 선도한다'며, 최종 목표는 '자연어를 이해하여 지식을 자가학습하며, 전문 직종에 취업 가능 수준의 인간과 기계의 지식 소통이 가능한 지식과 지능이 진화하는 소프트웨어'를 개발하는 것이다. 프로젝트는 핵심 기술 개발, 응용 기술 개발, 글로벌 기술 개발 3단계로 진행될 계획이며, 10년이 넘는 개발 과정 동안 약 800여억 원이 넘는 자본이 투자됐다. 프로젝트에는 한국전자통신연구원(ETRI)와 카이스트(KAIST), 그리고 자연어처리 기업 ㈜솔트룩스 등이 참여했다. 2018년 8월, 한국전자통신연구원과 ㈜솔트룩스, 카이스트는 '엑소브레인 언어지능 심포지엄'을 개최했다. 한국전자통신연구원의 김현기 박사는 인공지능 문어체 구문 분석의 경우 언어학자 수준의 분석이 가능하지만, 의미 분석은 연구 초기 단계에 해당한다고 말했다.[10]
  • 카이 : 카카오에서는 2018년부터 형태소 분석기 카이를 오픈소스로 제공하고 있다. 딥러닝 기술을 기반으로 개발된 형태소 분석기를 오픈소스로 제공한 것은 국내에서 카카오가 최초이다. 딥러닝 기술 중 하나인 CNN을 사용하여 형태소가 분석되며, 국립국어원에서 배포한 세종 코퍼스를 기반으로 데이터 오류는 없는지 검사하고 수정했다. 카이의 딥러닝 과정에는 C++ 언어가 사용되어 그래픽처리장치를 사용하지 않아도 분석 속도가 빠르다.[11][12]
  • 그래머리 : 2009년에 설립된 영문 문법 검사기이다. 현재 수백만 명의 사용자가 이용하고 있는 온라인 편집 기업이다. 사용하고 있는 브라우저에 무료 브라우저 확장 프로그램을 설치하면 손쉽고 용이하게 사용이 가능하다. 머신러닝, 딥러닝, 자연어 처리 방식 등 인공지능 방법론을 조합하여 구축된 프로그램으로, 인공지능 시스템에는 피드백 메커니즘을 가지고 있다. 따라서 문법적인 특정 피드백을 다수의 사용자가 거절할 경우 연구원이 알고리즘을 조정하여 프로그램의 지속적인 성장과 유지보수가 용이하다.

"그래머리(grammar.ly)의 맞춤법 검사는 인공지능과 결합하며 더 똑똑해지고 있습니다. 잘 작성된 영문 콘텐츠를 머신러닝한 덕분이죠. 이 덕분에 시중 사전이나 번역기보다 문장을 훨씬 더 자연스럽게 교정합니다. 신조어를 무조건 오류로 출력하지 않죠. 다른 영문과 비교해 많이 사용되는 단어로 인식되면 오류 표시를 하지 않습니다."[13]

  • 샤오아이스  : 마이크로소프트가 중국에서 선보인 챗봇으로, 일상 대화를 50문장 이상 진행할 수 있다.
  • 봇숍 : 미국의 메신저 업체 킥은 20, 30대 젊은 소비자를 타깃으로 운영중인 기업으로, 화장품 및 의류 기업들과 제휴하여 봇숍이라는 챗봇을 운영하고 있다. 봇숍은 코디네이터처럼 사용자와 대화하며 사용자에게 옷과 화장품을 추천해준다. 또한 메뉴에서 원하는 업체나 메신저를 고르고 원하는 서비스를 말하면, 해당 업체에서 서비스를 제공한다.

각주

  1. SD아카데미, 〈인공지능(A.I)기술과 자연어 처리(Natural Language Processing)〉, 《네이버 블로그》, 2018-03-23
  2. 애피어, 〈딥러닝이 자연어 처리(NLP)에 가장 효과적인 이유〉, 《애피어》, 2019-07-16
  3. 자연어 처리 위키백과 - https://ko.wikipedia.org/wiki/%EC%9E%90%EC%97%B0%EC%96%B4_%EC%B2%98%EB%A6%AC
  4. 김경선, 〈[인공 지능 기반 언어 처리 기술 - 자연어 대화 인터페이스를 중심으로]〉, 《새국어생활》
  5. 국민대학교 자연언어처리 연구실 - http://nlp.kookmin.ac.kr/main.html
  6. 6.0 6.1 6.2 6.3 6.4 6.5 6.6 6.7 김학수 강원대학교 컴퓨터정보통신학전공 교수, 〈우리말 자연어 처리 기술 - 과거와 현재〉, 《(특집) 4차 산업 혁명 시대의 국어 생활》
  7. 7.0 7.1 7.2 7.3 한국전자통신연구원 최미란 책임연구원, 〈자연어처리 기반의 인공지능 기술 현황〉, 《한국전자통신연구원》
  8. 구글 클라우드 홈페이지 자연어 - https://cloud.google.com/natural-language/
  9. 이영민, 〈구글의 자연어 처리 기술〉, 《브런치》, 2017-11-27
  10. 강승만 에디터, 〈ETRI 언어지능 심포지엄, ‘구문분석’ 언어학자 수준…의미분석은 초기단계 “고품질 학습테이터 필요”〉, 《사이언스모니터》, 2018-08-13
  11. 플래텀, 〈카카오, 딥러닝 기술 기반의’형태소 분석기’ 오픈소스 제공〉, 《플래텀》, 2018-11-30
  12. 카카오 정책산업 연구, 〈카카오의 딥러닝 기반 형태소 분석기〉, 《브런치》, 2018-11-29
  13. 생각노트, 〈Grammarly는 어떻게 '맞춤법 검사'로 매일 700만 명이 찾는 서비스가 됐을까?〉, 《오픈애즈》, 2018-05-28

참고자료

같이 보기


  검수요청.png검수요청.png 이 자연어 처리 문서는 인공지능 기술에 관한 글로서 검토가 필요합니다. 위키 문서는 누구든지 자유롭게 편집할 수 있습니다. [편집]을 눌러 문서 내용을 검토·수정해 주세요.