Natural Language Generation
자연어생성 (Natural Language Generation) 과정은 자연어이해 (Natural Language Understanding) 의 반대로써 생각하면 된다. 정보를 나타내는 구조를, 원하는 언어로 된 올바른 string 으로 mapping 시켜야 한다. 그러나 경우에 따라서는 전달할 정보가 어디로부터 얻어지는가를 생각하는 것도 중요한 문제이다. 자연어 생성에 대한 전체 과정은 다음과 같이 세 부분으로 나뉘어 질 수 있다.
(1) 전달할 정보를 나타내는 구조의 구성 : 이것은
무엇을 말할 것인가를 결정하는 것이다.
(2) 문장의 순서를 정하기 위한 대화
구조 및 문장에 대한 규칙을 적용한다.
(3) 실제 문장을 생성하기 위하여,
단어에 대한 정보 및 문장론적 규칙을 적용한다.
이들 중 처음 (1)은 가장 어려운 문제이고, 이는 또 언어학적 문제와는 거리가 멀다. 경우에 따라서는 대화할 정보가 질의응답 시스템에서는 질의에 대하여 산출되기도 한다. 이러한 시스템에서는 정보 생성 과정이 질문에 대하여 제한 받기도 한다. 나머지 두 부분은 대화할 내용이 정하여졌다고 가정하고서 대화를 효율적으로 하는 문제를 강조하게 된다. 문장이나 대화의 구조를 생각함에 있어서, 얼핏 생각하기에는 언어 생성이 언어 이해보다는 쉬울 것처럼 보인다. 왜냐하면 후자를 위해서는 입력을 주는 사람에 의하여 구성되는 모든 대화 범위를 프로그램이 이해할 수 있어야 하나 전자의 경우에는 프로그램이 보다 작은 구조를 이용하여 여러 가지를 하나로 나타낼 수 있기 때문이다. 그러나, 이렇듯 최소한의 언어학적 지식을 사용하면 극히 한정된 형태의 문장을 생성하게 되고, 대답에 대한 부담은 단순히 생성자에게서부터 이해자로 넘겨지는 것에 지나지 않는 것이다. 좋은 문장을 생성하기 위해서는 언어 이해에서 생기는 모든 문제가 해결되어야 한다 :
예로써, 언어 이해에서의 어려움 중의 하나가 대용어라고 말했다. 좋은 문장을 생성하기 위해서는 적당한 대용어를 생성하는 문제가 해결되어야 할 것이다. 다음의 짧은 문장을 생각해 보자.
John saw a bicycle in a store window. John wanted the bicycle.
이처럼 짧은 문장에서조차, 대명사의 사용이 없다면 아주 부자연스럽게 된다. 이미 언급된 사물을 가리키는 대명사를 사용함으로써, 보다 자연스러운 문장을 얻을 수 있다.
John saw a bicycle in a store window. He wanted it.
그러나 이 간단한 방법도 항상 유용한 것은 아닌데, 대명사는 명백히 해석될 수 있다고 생각될 때만 사용할 수 있기 때문이다. 예로써 원래 문장이 다음과 같이 주어졌다면,
John saw a blue ball in a shiny red wagon.
John
wanted the blue ball.
앞서와 같이 단순한 대명사로 대치시키면,
John saw a blue ball in a shiny red wagon.
He
wanted it.
과 같지만, 여기서는 it은 애매하게 된다. 이는 ball을 의미할 수도 있고, wagon을 의미할 수도 있기 때문이다. 이러한 문제는 앞의 문장에서는 생기지 않았는데, 이는 John이 store window를 원하지는 않을 것이기 때문이다. 두 번째 경우에는 언어 생성 프로그램을 다음과 같이 하여야 할 것이다.
John saw a blue ball in a shiny red wagon.
He
wanted the ball.
복합 문장의 생성에 관한 여러 문제를 다룬 시스템들이 개발되었는데, 이 중에서 KDS [Man 81A][Man 81 b]는 조각 구성(fragment and compose)방법을 사용하여, 대화할 정보를 아주 작은 단위(보통은 절에 해당)로 쪼갠 후 이를 다시 적당히 읽을 만한 문장으로 재구성시켰다.
문장 생성의 세 가지 부분 중 마지막은 주어진 지식 표현으로부터 문법에 맞는 언어를 생성하는 것이다. 이를 위한 한 가지 방법은 언어인식기법을 역으로 적용시키는 것이다. 예로써, 영어 문장을 인식하기 위해서는, ATN을 사용할 수도 있다. ATN을 문장생성에 사용하기 위해서는, 아크의 조건으로 지식구조를 첨부하고 문장 구성을 위한 규칙을 써나가면 된다. 이를 이용한 질의응답 시스템이 [Sim 72]에 주어져 있다.
문장 합성 기술은 질의응답 시스템 등으로 자연어의 답을 만들어 내거나 기계번역 시스템에서 번역문을 만들어 낼 때에 사용되고 있는 기술이다. 일반적으로 문장 합성을 하기 위해 입력하는 것은 의미 처리의 결과를 얻을 수 잇는 의미 구조이거나, 처리의 수준을 좀 낮게 하고 구문 처리의 결과를 얻을 수 있는 구문 구조이다.
그런데 본격적인 문장 합성에 대한 연구는 필요 충분하다고는 말하기 어렵다. 질의 응답 시스템 등에서는 오히려 전형적인 응답문의 pattern을 미리 사용하기 전에 그 일부를 변환하여 응답문을 작성해 내는 기술을 주로 사용하고 있다. 이것은 이론적인 견지에서 필요 만족한 것이라고는 말하지 않지만 실용적인 견지에서 유용한 기술이라고 생각된다. 본격적인 입장에서의 문장 합성은 기계번역 시스템에서 활발한 연구가 되고 있다. ... (김재희, 1988)
term :
자연어 생성 (Natural Language Generation) 자연어처리 (Natural Language Processing) 자연어이해 (Natural Language Understanding) 인공지능 (Artificial Intelligence) 기계번역 (Machine Translation) 음성합성 (Speech Systhesis)
site :
AI Topics : Natural Language Generation
paper :