자연언어처리의 개념

 

자연 언어 처리 : 김영택.권혁철.옥철영.서영훈.이상조.윤덕호.강승식.이호석.윤성희.이하규.심광섭 공저, 교학사, 1994, page 1~19

 

1. 자연언어의 다양성

2. 언어학 이론과 자연언어처리

3. 자연언어처리 단계

4. 형식문법과 자연언어 분석

5. 변형과 통합

 

 

1. 자연언어의 다양성

자연언어란 인공언어에 대응하는 개념으로, 인간이 일상적으로 사용하고 있는 언어 그 자체를 의미한다. 세상에는 수많은 인종들이 있듯이, 수많은 언어가 있다. 자연언어는 인간이 가진 가장 자연스러운 정보 전달 방법이며, 동시에 언어 능력은 인간만이 가진 고유한 특성이다. 그리고 언어란 각 인종, 혹은 집단들이 자신들의 독립성을 유지하는 기본 틀이 된다.

성경에 의하면 태초에는 하나의 언어만 존재했다고 한다. 그러나 바벨탑을 쌓아서 신의 영역에 도달하려는 인간의 시도를 무산시키기 위해 신은 각 집단이 사용하는 언어를 다르게 했다고 한다. 따라서 상호 정보교환이 불가능하게 되었고, 그래서 바벨탑은 무너지고 말았다고 한다. 이 내용은 언어가 가진 정보전달 기능을 함축적으로 설명해준다.

어떻든 인간의 역사가 시작된 이래 언어는 인간이 의사를 전달하는 가장 자연스러운 도구가 되었다. 이에 따라서 상이한 언어를 사용하는 집단이 만날 경우에는 통역이 중요한 문제로 대두되었다. 에스페란토어는 언어의 다양성이 만들어낸 정보 교환의 어려움을 극복하기 위해 만들어낸 인공언어이다. 그러나 에스페란토어는 현재 거의 사용되지 않고 있다. 한편, 피진 (pidgins) 이란, 두 언어가 만날 때 상호 통역없이 의사교환을 하기위해 자연발생적으로 만들어지는 아주 단순한 유형의 언어를 말한다. 이와같은 피진이 더욱 발전하여 어떤 집단의 모국어가 되면 크레올 (creole) 이라고 부른다. 특히 크레올은 완전한 새로운 언어로, 언어의 다양성을 증가시키는 한 측면이 된다.

개별 언어도 시간과 공간 상에서 큰 차이를 보인다. 중세 국어와 현대 국어의 차이, 남한과 북한의 언어적 차이는 시간, 공간과 사회구조의 차이에서 기인한 것이다. 그리고 같은 시간과 공간 상에서도 계층, 지식정도 및 집단의 차이에 따라서 언어는 달라질 수 있다. 미국에서 흑인들의 영어와 백인들의 영어에 차이가 나는 것도 언어의 다양성을 보여주는 한 예이다.

이와같은 언어의 다양성은 형태론 (morphology) 과 통사론 (syntax) 의 측면에서도 나타난다. 우리말은 첨가어로서 어간에 조사나 어미같은 기능어가 추가되어 어절을 형성한다. 이러한 언어로는 일본어, 만주어, 몽고어와 터키어 등이 있다. 특히 터키어는 평균 일곱 개 이상의 형태소가 결합되어 한 어절을 형성한다. 그러나 첨가어에서는 어절 형성에 참여할 각 기능어가 상대적으로 독립적이다.

이에 대해 어간이 변하거나, 어간과 밀접한 연관을 가지는 기능형태소가 결합하여 시제, 태 (voice), 인칭, 법 (mood) 및 격 (case) 등을 나타내는 언어를 굴절어라고 한다. 라틴어는 대표적인 굴절어이며, 굴절어에서는 기능어가 어간에 종속적이다. 한편, 불어와 영어는 굴절어와 교착어의 특징이 동시에 있는 언어이다.

중국어는 시제나 수 등을 나타내기 위한 기능 형태소가 없는 형태소적으로 매우 단순한 언어이며, 반대로 에스키모어는 한 어절이 한 문장이 되는 언어로서, 주어와 목적어가 어절의 일부가 되는 매우 복잡한 유형의 언어이다.

그러나 위의 언어들은 아래의 언어들과 비교하면 형태소적으로 오히려 서로 유사한 언어로 분류될 수도 있다.

(가) 스와힐리어 (Swahili)

      단수             복수              뜻

  a) m + tu         wa + tu          사람

  b) m + ti          mi + ti            나무

(나) 본톡 (Bontoc)

  a) fikas              f + um + ikas

     '강함'               '강하다'

  b) kilad              k + um + ilad

     '붉음'                '붉다'

(다) 아랍어

     능동              수동            뜻

  a) kAtAb         kUtIb            쓰다

  b) kUttIb         kUttIb           쓰게하다

위의 예들 가운데 (가) 는 스와힐리어의 예로서 수 (number) 를 나타내는 기능어가 어간의 앞에 붙음을 보여준다. 그리고 (나) 는 필리핀에서 사용되는 언어의 예로서, 명사를 형용사로 만드는 기능어 "um" 이 어간의 사이에 삽입됨을 보여준다. 특히 아랍어는 자음이 어간으로, "kTb" 는 "쓰다" 를, "kttb" 는 "쓰게하다" 를 의미한다. 그리고 자음과 자음 사이에 모음이 삽입되어 어절을 형성하게 된다. 이때 "_A_A_" 는 능동, "_U_I_" 는 수동을 위한 모음 형태임을 (다) 의 예는 보여주고 있다.

위의 예는 언어들이 형태소적으로 얼마나 다양한가를 실증적으로 보여주고 있으며, 각 언어들은 통사적으로도 매우 다양하다. 예를들어 문장에서 동사가 위치하는 장소를 살펴보면, 먼저 우리말과 같은 언어는 동사가 문장의 끝에 오는 언어로 분류된다. 영어나 불어와 같이 동사가 문자의 중간에 오는 언어도 비교적 우리가 익숙히 아는 언어이다. 또한 아일랜드어는 동사가 문자의 처음에 온다는 것을 생각하면, 우리는 언어의 다양성에 놀라지 않을 수 없다.

어순의 측면에서 보면 영어는 매우 제약된 어순을 가지는 언어이다. 그러나 우리말은 어순이 영어에 비해서는 매우 자유롭다. 대신에 우리말에는 조사와 같은 기능어가 발달되어 있으나, 영어는 기능어의 사용이 상대적으로 미약하다. 그러나 영어에서도 전치사 구문은 전치사에 의해 구문의 역할이 규정되므로 위치가 상대적으로 자유롭다.

결론적으로 자연언어는 매우 다양한 특성과 형태를 가지므로, 컴퓨터로 언어를 분석하고 처리하기 위해서는 각 언어가 가진 특성을 잘 파악해야 한다. 즉, 개별 언어의 특성이 다른 만큼 자연 언어의 분석 및 처리 방법도 언어에 따라서 달라지게 마련이다. 그러므로 각 언어의 특성을 잘 반영하는 알고리즘 개발과, 이를 위한 언어 지식, 상식 (common sense) 과 영역 지식 (domain knowledge) 등을 위한 효과적 지식 표현 기법을 연구하는 것은 공학적 측면에서 매우 중요하다.

2. 언어학 이론과 자연언어처리

언어학은 자연언어를 대상으로 한다는 측면에서 자연언어처리와 밀접한 관련을 가지지만, 언어의 보편성에 대한 탐구를 목표로 한다는 점에서는 자연언어처리와 차이를 보인다. 본 절에서는 언어학 이론의 발전과정을 살펴보고, 언어학적 입장에서 자연언어처리를 살펴보고자 한다.

금세기초, Ferdinand de Saussure 가 독립된 "과학 (science)" 으로서의 언어연구를 주창하면서 태동된 언어학 (linguistics) 은 제일 먼저 "구조주의 (structuralism)" 를 과학적인 방법론으로 발전시켜 나갔다.

구조주의 이론은 미국과 유럽에서 상이한 배경을 갖고 전개되어 왔다. 오래전부터 소리, 의미, 문자를 갖춘 언어를 사용했고, 언어의 연구가 문자 연구를 중심으로 역사-비교 언어학 (historical-comparative linguistics) 에 치중하였던 유럽에서는 프라하 학파 (School of Prague) 가 언어의 본질적 기능에서 소리의 중요성을 인식하고, 청각적 실체를 가진 소리 (sound) 의 분석부터 구조주의 방법론을 개발하기 시작했다.

말을 더 작은 단위로 쪼개는 분석 (analysis) 과 다른 단위와의 교체 (commutation) 의 과정을 반복하면서, 음소 (phoneme) 와 이음 (allophone) 을 추출해내고, 음의 변별적 자질 (distinctive features) 을 밝혀내는 성과를 거두었다. 소리 분석에 있어 우수성을 입증한 구조주의 방법론은, 유럽 뿐만 아니라 대서양을 건너 미국에서도 언어 분석 방법의 모체로서 자리잡기 시작했다. 특히 미국에서는 인구어 (Indo-European language) 와는 언어 체계가 아주 다른 인디언 언어가 병존하고 있었고, 문자 기록을 거의 갖지 못했던 이들 언어 사용자들과의 의사 소통은 현실적인 필요성이 있었으며, 더욱이 이들 언어는 서구 언어에 밀려 빠르게 사멸되어 가고 있었다. 또한, 청교도를 표방한 미국의 선교사들에게는 미국 인디언이나 기타 지역의 "미개인" 에게 복음을 전파해야 할 신성한 의무가 있었고, 그 의무를 가장 잘 수행하려면 선교사 자신이 이들 언어를 배우고, 기술해야 한다는 현실을 마주하고 있었다. 이들은 선교사직을 수행하기에 앞서 언어 학자로서의 방법론을 익혔고, 그 전통은 현재도 Summer Institite of Linguistics 라는 기관에 의해 활발히 전개되고 있다.

이러한 상황에서, 미국에서 발달한 구조 언어학은 분석자 자신이 알지 못하는 언어 자료를 어떻게 분석하느냐에 연구의 초점을 모으게 되었고 소리를 분석하던 프라하 학파의 방법론을 형태, 문장 구조 등의 분석에 적용하게 되었다. 대표적인 이론이 해리스 (Zellig Harris) 의 '구조주의 방법론 (Methods in Structural Linguistics : 1952)' 이다. 분석의 첫 단계는 대상 언어의 자료 (corpus) 를 수집하는 것이다. 그 다음 단계로, 수집된 언어 자료 내에서 분석과 교체를 통하여 음소, 이음, 형태소 (morpheme), 이형태 (allomorphe) 를 추출하고 이들이 어떠한 방식으로 직접 구성요소 (immediate constituent) 를 이루는가를 밝히는 것이었다. 이러한 분석을 토대로 대상 언어의 문법을 기술 (describe) 하는 구구조 규칙 (phrasal structure rules) 을 재구성하는 것이 가장 큰 관건이었다. 당시 과학적인 연구는 실제로 관찰할 수 있는 현상에 국한해야 한다는 행동주의 (Behaviorism) 와 실증주의 (Positivism) 정신을 배경으로 주관적이고 직관적인 언어 분석을 배제하였다. 여기에서 가장 중요한 단계는 언어자료를 얼마만큼 또 어떻게 모으느냐 하는 문제다. 흔히 구조주의 를 비판하는 변형 문법에서는 구조주의 기술론의 대표적인 오류로, 프라이즈 (Charles Fries) 의 '미국 영어 구조 (The Structure of American English)' 를 든다. 이것은 미국인들의 전화 통화를 녹음한 것을 유일한 자료로 삼고 미국 영어 문법을 마치 영어를 모르는 분석자가 기술하듯 서술한 것이다. 그 결과는 구조주의의 함정을 드러냈다. 즉, 언어 자료의 불완전성과 수량면의 한계 때문에 정확한 문법 기술과는 거리가 먼 경우가 상당히 있었다. 더욱이 이는 언어 수행 (performance) 만을 분석 자료로 삼기 때문에, 언어 수행에 흔히 있는 실수도 문법 기술의 대상에 넣어야 한다는 것이다.

이러한 귀납적인 구조주의 방법론에 문제점을 제기하고 나선 것이 바로 구조주의의 대표적 이론가인 해리스의 지도하에 박사 논문을 쓰고 있던 수학자 출신의 Noam Chomsky 이다. 첫 저서인 '통사 구조론 (Syntactic Structures : 1957)' 의 서문에서 밝힌 바 있듯이, 구조주의가 표방하는 실증주의에 반해, 그의 언어 분석은 인간의 정신 세계를 중심으로 하는 이성주의 (Rationalism) 에 바탕을 두었다. 인간에게는 매우 복잡한 체계를 가진 의사 소통 수단인 언어를 만들어 내고 익힐 수 있는 언어 능력 (linguistic competance) 이 있다. 언어의 습득의 경우를 보아도, 어린 아이가 언어를 배운다는 것은 행동주의 심리학 학습이론 처럼 단순히 단어나 문장을 듣고 모방과 반복만으로 이루어지는 것이 아니라, 추상적인 체계화를 할 수 있는 언어 능력이 매우 중요한 역할을 한다. 아이들의 모국어 습득이나, 성인들의 외국어 습득 과정에서 흔히 나타나는 것이 비정형이다. "놀았어" 와 "놀았어요" 를 비교하여 어미에 "-요" 를 붙임으로써 존대법이 된다는 것을 터득한 아이는 "놀았다" 라는 반말에 "-요" 를 붙여 비정형인 "놀았어요" 를 존대말로 사용하며, 영어의 불규칙형을 규칙형으로 유추하여 "speaked, foots, three mouses" 를 흔히 사용한다. 또한 귀납적인 학습 방법을 주장하는 실증주의 언어 이론에서는, 한법도 들어보거나 말해보지 못한 문장등의 발화와 이해는 설명할 수 없게 된다. 즉, 촘스키는 이렇게 실체를 드러낸 언어 능력을 언어 분석에 적극 이용해야 하며, 언어학 연구의 초점도 바로 언어 능력을 규명하는데 맞추어야 한다고 주장하였다. 문법의 재구성이라는 목표를 수행하기에는 턱없이 불완전한 언어 자료의 결함을 인간이 가진 생내적인 언어 능력으로 보완함으로써, 이렇듯 언어학 연구에서 구조주의에 의해 배제되었던 연역적 추리의 자리를 되찾게 되었고 언어학이 추구하는 바가 귀납적인 "문법의 기술 (description)" 에서 연역적인 "문법의 설명 (explication)" 으로 자리를 옮겨 앉게 되었다. 영어를 모델로 하였던 촘스키의 초기 이론인 변형문법 (Transformational Grammar) 은 변형 (transformation) 의 축소, 의미론부의 강화, 언어적 보편성 (universality) 에서 본 이론 검증 등을 바탕으로 점차 생성문법 (Generative Grammar), 지배 결속 이론 (Government and Binding Theory) 등으로 변화되었고, 촘스키의 초기, 중기 이론에서 큰 역할을 담당했던 제자들이 변형을 부정하고 의미와 어휘의 역할을 강조한 이론을 제시한다. LFG (Lexical Functional Grammar), GPSG (Generalized Phrase Structure Grammar), HPSG (Head Phrase Structure Grammar) 등이 변형을 부정하는 이론들의 예들이다. 이와같은 변형을 부정한 이론들은 컴퓨터에 의한 효과적인 자연 언어 처리를 염두에 두고 70 연대 중반 이후에 개발되었다. 한편 유럽에서는, 미국의 전통과는 별개로 프랑스의 테니에르 (L. Tesnière) 가 논항 (argument) 들 사이의 의존관계 (dependency) 를 설정하고, 이를 통해 통사-의미 구조들 설명하려는 이론을 제시하고, 이 이론은 변형으로는 통사적인 설명이 어려운 굴절어의 특성을 가진 독일, 동구, 소련 등에서 의존 문법으로 발전한다.

언어학의 이론이 이렇듯 변화를 거듭하고 있었던 시기와 병행하여, 컴퓨터라는 기계가 자신의 능력을 넓혀가고 있었다. 따라서 컴퓨터 역사의 초기인 50 연대 초중반 이래 수학자에 의해 정립된 언어학 이론과 인간의 언어를 처리하는데 컴퓨터라는 기계를 사용하려는 자연언어처리 분야는 많은 상호 영향을 주고 받게 되었다. 컴퓨터는 때로는 이론 정립의 모델이 되기도 하고, 때로는 이론의 검증 방법으로 사용되기도 했다. 촘스키의 두 번째 저서 'Aspects of the Theory of Syntax (1965)' 에서 언어능력 (competence) 와 언어 수행 (performance) 으로 설명하는 발화 과정은 그림 1 에서 보듯 마치 컴퓨터의 입, 출력 과정과 같다.

 

그림 1  촘스키가 주장한 인간의 발화 과정

컴퓨터의 하드웨어에 해당하는 인간의 머리속에는 언어 습득 과정에서 언어 능력을 통해 세운 구구조 규칙은 통사부에, 어휘는 사전에 따라 저장되어 있다. 화자가 발화 의도라는 입력을 하면, 이를 전달하기 위해 적절한 통사 규칙과 이를 충족시킬 수 있는 어휘를 선택하고, 이것은 적당한 통사 변형을 거쳐 발화체라는 출력이 나오게 된다.

자연언어처리 연구진이 범한 초기의 오류는, 인간이 사용하는 자연언어가 컴퓨터를 위해 만든 인공 언어와 크게 다르지 않으며, 인공 언어를 확장한 정도로 여겨 기계에 의한 분석이 수월할 것으로 생각했었다는 점과, 기계의 하드웨어와 인간의 머리 사이의 엄청난 차이을 부당할 정도로 가깝게 여긴 점으로 요약할 수 있다. 촘스키가 인간에게 언어 능력이 있다는 점을 환기 시켰는데, 사실 인간은 여기에 그치지 않고 언어 능력과 관련된 상식, 전문 지식 등 실세계 지식 (real world knowledge) 을 기억하며, 무엇보다도 유추, 귀납, 연역 등 추론 과정을 이용하여, 이를 적절히 사용할 수 있는 고도의 지적능력 (intelligence) 을 갖는다. 언어학 이론이 인간이 사용하는 문법을 "기술" 하든, "설명" 하든 통사 구조를 중심으로 어휘 정보, 형태소 정보, 음성 정보 들을 분석하였으나, 실제로 이들 요소를 이용하여 인간이 말을 하고 이해한다는 행위를 존재하게 하는 이면에는 지능의 역할이 절대적이다. 컴퓨터에는 바로 이러한 능력이 없기 때문에 구구조 규칙을 넣고 어휘를 입력해도 그것의 정보가 음성, 형태, 통사 구조나 의미 자질 등에 국한되는 한 기계가 인간처럼 인간의 언어를 생성하고 이해하는 것은 불가능하다. 이를 지적한 것이 기계번역 역사에서 유명한 1966 년에 제출된 미국 과학청의 ALPAC 보고서이다.

그러나 80 연대에 들어서면서 컴퓨터의 하드웨어와 소프트웨어는 비약적인 발전을 했고 바벨탑을 헐어보려는 인간의 욕망과 현실적 필요성은 수그러지지 않았다. 이에 따라서 인간의 지능과 유사한 인공지능 (AI) 을 기계에게 갖도록 하는 연구가 계속되었다. 이 결과 인공지능 연구자들은 지식의 필요성에 대해 재인식하게 되었으며, 자연언어처리도 그 영향을 받게 되었다. 즉, 기억량이나 기억 지속 시간에서 결점이 많은 인간과는 달리, 컴퓨터는 이론적으로 무제한에 가까운 기억량을 가지며 별 탈이 없는 한 일단 입력된 정보가 사라지지 않고, 검색 속도가 빠르다는 장점을 가지고 있다.

또한, 효율적인 정보 검색을 위한 기법이 전산학에서 계속 개발되고 있다. 이와같은 전산학의 흐름을 반영한 언어 이론이 앞에서 든 변형을 부정하는 이론인, LFG, GPSG 및 HPSG 등이다.

또한 최근에는 구조주의의 접근이 자연언어처리와 언어학 등에서 이용되기도 한다. 그 이유는 구조주의의 이론적 배경을 컴퓨터가 상당부분 뒷받침해 줄 수 있기 때문이다. 기계에서는 직관이라든지, 생내적인 언어능력이 없으며, 행동주의 학습이론에서 처럼 입력된 것만을 저장하고 있을뿐이다. 물론 저장된 정보를 스스로 활용할 수 있는 능력도 없다. 구조주의 이론에서 가장 큰 결점은 수집할수 있는 언어 자료의 크기와 양이 매우 불충분하다는 것이었으나, 저장 능력이 크고 검색 속도가 빠른 컴퓨터는 이 한계를 상당부분 극복하여 문법을 재구성하고 필요한 경험적 지식들을 찾아내는데 큰 역할을 한다.

3. 자연언어처리 단계

자연언어의 분석 과정은 형태소분석 (Morphology Analysis)   통사분석 (Syntactic Analysis)   의미분석 (Semantic Analysis)   화용분석 (Pragmatic Analysis) 의 네 단계로 나눌 수 있다. 형태소 분석은 입력된 문자열을 분석하여 형태소라는 자연언어 분석을 위한 기본 단위로 분류하는 것이다. 이를 위해 형태소 분석기는 어휘사전 (lexicon) 을 바탕으로 입력 문자에 형태소 결합 규칙을 역으로 적용하여 형태소를 분석하고, 각 형태소가 가진 범주 (category) 정보를 어휘사전으로부터 추출하여 함께 출력한다. 즉, "친구였다" 라는 어절로부터 "친구 (명사) + 이 (서술격 조사) + 었 (선어말 어미, 과거) + 다 (어말 어미, 종결형)" 과 같은 결과를 만들어내는 것이 형태소 분석기의 역할이다.

형태소 분석은 언어의 특성이나 맞춤법 등에 따라 난이도가 달라진다. 즉 영어는 형태소 분석이 매우 쉬우나, 한국어는 형태소적으로 복잡하므로 상대적으로 어렵다. 또한 한국어는 복합 명사 내의 명사를 붙여 쓸 수 있으므로 추가의 어려움이 있다. 일본어는 띄어쓰기를 하지 않으므로 형태소 분석에 또 다른 어려움이 있다.

문장 속에 있는 형태소 혹은 단어들은 각자의 역할을 가지고 있다. 그리고 동시에 단순한 형태소나 단어를 조합한다고 해서 문장이 되는 것은 아니다. 통사 규칙 (syntactic rule) 은 형태소들이 결합하여 문장이나 구절을 만드는 규칙이다. 통사 분석은 통사 규칙에 따라서 문장 내에서 각 형태소들이 가지는 역할, 혹은 상호 관계를 분석하는 것이다.

"학생이 학교에 간다" 라는 문장이 통사적으로 옳으며, "학생" 이 문장의 주어가 됨을 분석하는 것이 통사 분석의 예이다. 그리고 "Love I you" 가 영어 문장으로 부적합한 이유는 통사 규칙에 맞지 않기 때문이며, 통사 분석에서는 이러한 사실도 밝혀낼 수 있어야 한다.

의미 분석은 통사 분석 결과에 해석을 가하여 문장이 가진 의미를 분석해내는 작업이다. 문장이 가진 의미는, 문장을 구성하는 각 형태소가 가진 의미가 합성되는 단순한 유형에서부터, 은유와 같은 보다 고도의 분석을 요하는 유형까지 다양하다. 의미 분석을 위해서는 각 어휘 혹은 형태소에 의미 표지를 부여하고, 하위 범주화와 같은 정보를 이용하여 부분의 의미를 통합하여 전체 의미를 구성하는 방법을 이용하는 것이 자연언어처리에서 일반적으로 사용되는 기법이다.

"돌이 걸어간다" 라는 문장은 통사적으로는 옳다. 왜냐하면 명사 "돌" 을 명사 "학생" 으로 치환한 "학생이 걸어간다" 가 올바른 문장이기 때문이다. 그러나 "걸어간다" 라는 동사는 "걸을 수 있는 어떤 것" 을 주어로 하위 범주화 하며, "돌" 은 살아있는 물체가 아니므로 하위 범주화 규칙에 어긋난다. 따라서 위의 문장은 의미적으로 틀렸다. 그런데 가끔은 "돌이 걸어간다" 가 옳은 문장으로 간주되어야 하는 경우도 있을 수 있다. "걸어가는 사람" 의 별명이 "돌" 일 수도 있고 돌이 의인화된 문학 작품으 한 구절일 수도 있기 때문이다. 따라서 자연 언어의 의미 분석은 간단히 해결될 수 있는 문제가 아니며, 많은 경우 자연언어 시스템이 처리하는 문제의 영역 (domain) 에 따라 그 처리 방법이 좌우되기도 한다.

화용 분석은 문장이 실세계와 가지는 연관관계를 분석한다. 예를들어, "네 뒤에 벼랑이 있는지 알고 있니?" 라는 문장은 단순히 벼랑의 존재를 알려주는 역할 뿐 아니라 벼랑이 있으니 조심하라는 경고의 의미도 포함한다. 그리고 우리말에서 높임말은 주어나 대화의 상대가 글 쓰는 사람이나 화자 보다 높은 위치에 있을 때 사용된다. 이와 같은 화용 분석은 특히 자연언어에 대한 질의어를 분석하거나 사용자 인터페이스를 구축하기 위해서는 매우 중요하다. 화용 분석은 실세계 지식, 상식 등과 같은 지식을 바탕으로 화자와 청자의 대화 의도를 분석하는 것이 요구된다.

언어학에서는 자연언어 연구를 위의 네 단계로 나누어 수행하며, 많은 자연언어 분석 시스템도 이 모형에 근간하여 구성되어 있다. 그러나 모든 자연언어처리 시스템이 위의 모형을 따르는 것은 아니다. 기계 번역 시스템은 통사 분석만 하고 번역을 수행하는 변환 방식 (transfer approach) 이 가장 보편화된 기법이다. 물론 변환 방식도 부분적인 의미 분석을 이용함으로써 번역의 질을 향상시키기도 하지만, 근본적으로는 의미 분석을 한다고 볼 수 없다. 변환 방식에서는 의미 분석과 화용분석이 이루어지지 않음으로써 발생하는 문제점을 응용 분야를 제한하여 응용 분야의 지식 (domain specific knowledge) 을 이용함으로써 해결한다. 그리고 "의미에 의한 분석" 을 하는 시스템에서는 통사 분석을 생략하기도 한다. 이 경우에는 언어학에서 말하는 "격문법 (Case Grammar)" 을 도입하게 되며, 이 방법은 통사적으로 틀린 문장도 분석할 수 있는 장점이 있기도 한다.

그러나 위에서 설명한 네가지 분석 단계의 분리 설정은 자연언어처리 시스템을 모듈화할 수 있고, 언어학과 같은 관련 분야에서 연구된 지식을 효율적으로 이용할 수 있는 등, 시스템의 개발의 효율성 측면에서 효과적인 접근 방법으로 인정되고 있다.

4. 형식문법과 자연언어 분석

자연언어 문장은 무한하다. 따라서 인간이 자연언어 문장을 단순히 암기하여 사용한다는 가정은 받아들일 수 없다. 따라서 촘스키를 비롯한 언어학자들은 인간이 선천적으로 언어 능력 (competence) 을 타고나며, 후천적 학습에 의해 언어 수행 (performance) 이 가능하다고 보았다. 이때 문법이란, 인간의 언어 능력에 의해 해석되어 무한한 자연언어를 생성할 수 있는 유한한 규칙으로 정의될 수 있다. 이 문법에 대한 수학적 모형이 형식 문법 (formal grammar) 으로서, 재귀적 (recursive) 방법에 의해 유한한 규칙으로 무한한 문장의 생성이 가능하게 한다.

언어학자인 촘스키는 형식 문법을 문법이 허용하는 생성 규칙 (production rule) 의 형태에 따라서 무제한 문법 (0 형), 문맥의존문법 (1 형), 문맥자유문법 (2 형) 과 정규문법 (3 형) 의 네가지로 나누었다. (촘스키 계층 (Chomsky Hierarchy))

전산학에서는 어떤 문제를 해결하는데 소요되는 시간을 입력의 개수에 따라 함수로 표현하는 문제 난이도 (problem complexity) 측정법을 사용한다. 예를들어 정렬되지 않은 자료가 n 개 있을 경우, 우리가 원하는 자료를 찾고자 한다면, 처음부터 차례로 원하는 자료가 있는지 모두 조사해야 할 것이다. 따라서 최악의 경우에는 n 개의 자료를 모두 찾아야 하며, 이때 문제 난이도가 |n| 이라 한다. 여기서 |n| 은 대충 n 에 상수가 곱해진 정도의 시간에 처리할 수 있음을 나타낸다. 하지만, 만약 자료가 정렬이 되어 있다면 |n| 번 대신에 |log2n| 개의 자료만 찾아도 충분하다. 그 이유는 자료의 가운데 값이 찾고자 하는 값보다 크면 윗부분에서, 작으면 아랫 부분에서 찾는 이진 탐색 방법을 적용할 경우에 한번 검색할 때마다 최소한 반의 자료가 고려 대상에서 제외되기 때문이다.

전산학에서 문제 난이도를 측정하는 이유는, 어떤 문제들은 해결 방법은 존재하지만 문제 난이도가 너무 높아서 비실용적인 경우도 있기 때문이다.

일반적으로 |log2n|, |n|, |n2| 이나 |n3| 등의 난이도를 가진 문제를 P (polynomial) 문제라고 부르고, |2n|, |n!|, |nn| 등의 난이도를 갖는 문제는 NP (non-deterministic polynomial) 문제라고 부른다. 즉, P 문제는 입력의 개수가 n 일 경우에 최악의 처리 시간이 |nk| (k : 상수) 로 되는 문제를 의미한다. (계산 복잡도 이론 (Computational Complexity Theory))

세상에는 P 문제나 NP 문제가 있는가 하면 알고리즘으로는 아예 풀 수 없는 문제도 있다. 그런데 일반적으로 P 인 문제는 컴퓨터에 의해 해결이 가능하지만, NP 인 문제는 처리가 불가능하다고 본다. 왜냐하면, 비록 알고리즘으로 그 해법을 제시 할 수는 있지만 입력 n 의 크기가 증가함에 따라 처리 시간이 지나치게 급격하게 증가하여 처리 시간면에서 도저히 현실성을 가질 수가 없다고 보기 때문이다.

문제 난이도

문제의 크기

n = 10

n = 50

n = 100

n3

0.001 초

0.125 초

1 초

2n

0.001 초

35.7 년

1015 세기

표 1  문제 난이도에 따른 연산 시간의 비교

표 1 은 입력의 수가 100 개 일 때에 |n3| 의 문제 해결에 소요되는 시간을 1 초라고 할 경우, 문제 크기에 따른 소요 시간을 보여준다. 놀랍게도 |2n| 의 난이도인 문제에 100 개의 자료를 입력하면 1015 세기라는 천문학적인 시간이 소요되어야 해결이 가능하므로, 컴퓨터로 이와같은 문제를 해결하는 것은 현실적으로 불가능하다.

현재까지 연구된 바에 의하면 정규 문법은 |n| 의 난이도를 가지며, 문맥자유문법은 |n3| 의 난이도를 가진다. 그러나 문맥의존문법이나 무제한 문법은 P 문제가 아니므로 컴퓨터로 처리할 수 없는 것으로 생각되고 있다.

형태소 분석은 정규 문법으로 가능하다. 따라서, |n| 의 난이도를 가지고 형태소 분석을 할 수 있다. 특히, 2 단계 형태소 분석 기법 (two-level morphology) 은 형태소 분석과 어절 (word) 생성을 동시에 수행할수 있는 가장 잘 알려져 있는 정규 문법에 기반한 형태소 분석 기법이다.

자연언어 문장이 문맥자유문법에 의해 표현되는지 아닌지에 대한 논란이 언어학자들 간에 계속되고 있지만 결론은 나지 않고 있다. 그러나 자연언어처리 분야와 전산언어학 연구자들은, 자연언어가 문맥자유문법에 의해 처리가 가능하다는 가정하에 연구를 계속하고 있다. 문맥자유문법 알고리즘인 CKY 알고리즈, 차트 파서 (chart parser) 와 토미타 (Tomita) 알고리즘 등은 대표적인 |n3| 의 알고리즘이다.

한편, 확장천이문법 (Augmented Transition Network, ATN) 이나, DCG (Definite Clause Grammar) 등은 자연언어 문법을 기술하기 위해 개발되었지만 무제한 문법도 처리할 수 있는 능력이 있다. 실제 자연언어를 ATN 이나 DCG 로 기술할 경우에는 여러 가지의 추가 제약을 적절히 부가함으로써 실용적인 분석기의 구현도 가능하지만, ATN 이나 DCG 를 이용할 때 문법의 기술이 잘못되면 문장의 분석에 천문학적인 시간이 소요될 수도 있다.

5. 변형과 통합

변형문법은 촘스키가 1957 년에 도입한 언어 이론이다. 이 이론에 의하면 발화되는 문장은 문장의 의미를 표현하는 내부 구조 (deep structure) 가 외부로 나타나는 것이며, 이 과정에서 어순 조정, 어미 추가, 능동화 등의 변형이 적용된다. 촘스키가 변형을 가정한 이유는 정규 문법이나 문맥자유문법과 같은 구구조 문법 (phrase structure grammar) 으로는 일부 자연언어 문장의 생성을 설명할 수 없었기 때문이다.

(1) Arture, Barry, Charles and David are the husbands of Janem, Joanm, Jill and Jennifer, respectively.

(1) 과 같은 영어 문장은 문맥자유 문법으로 생성이 불가능하다. 그러나 자연언어를 위한 문법이 문맥자유 문법보다 표현력이 큰 문맥의존 문법에 의해서만 표현이 가능한지는 의문이다. 그 이유는 앞 절에서 보았듯이 문맥의존 문법이 계산학적으로 지나치게 난이도가 높으며, 동시에 언어학적으로도 인간의 언어 능력이 문맥의존 문법의 표현력을 가졌다는 것은 현실성이 없기 때문이다.

촘스키는 형태소를 재배치하고, 탈락시키고, 추가하는 변형을 도입함으로써 내부구조의 문법 체계를 문맥자유문법으로 유지하려고 시도했다. 그러나 변형은 계산학적으로 큰 문제를 야기한다. 그 이유는, 변형은 무제한 문법의 표현력을 가지고 있고, 변형 과정이 비단조 (non-monotonic) 이며, 변형과정을 역으로 적용시킨다고 해서 문장의 분석이 가능한 것은 아니기 때문이다. 예를들어 같은 내부 구조의 문장이 변형을 거치면서 다른 의미가 될 수 있다.

(2) Not many arrows hit the target.

(3) Many arrows didn't hit the target.

(2) 와 (3) 의 두 문장은 같은 내부 구조에서 변형되었지만, 그 의미가 서로 다르다. 이와같은 변형의 문제점을 해결하기 위하여, 촘스키는 자신의 이론을 계속 발전시켜, GB (Government Binding) 이론에서는 Move-α 라는 단 하나의 변형만을 남겨두었다.

어떻든 변형은 계산학적인 측면에서 바람직하지 못하며, 변형 문법으로 생성이 가능하지만 분석이 불가능한 문장이 있을 수 있으므로, 변형에 대응하는 단조 증가적 언어 이론을 만들고자 하는 시도가 언어학 분야에서 계속되었다. 대표적인 예가 GPSG, LFG 와 HPSG 등으로 불리는 통합 기반 문법이다.

정보가 계속적으로 증가하는 방향으로 일어나는 연산을 단조 증가적 연산이라고 하며, 그렇지 않은 연산을 비단조적 연산이라고 한다. 예를들어, "스위티 (sweaty) 는 새이고, 새는 날 수 있다" 라는 정보로부터 "스위티는 날 수 있다" 는 것을 추론할 수 있는 것이다. 그러나 새로운 정보로 "스위티는 펭귄이다" 라는 정보가 추가된다면, 지금까지 추론 가능하던 "스위티는 날 수 있다" 라는 정보가 거짓이 될 것이다. 이와같이 새로운 정보의 추가가 기존 정보를 부정하게 될 때, 이 연산을 비단조적이라고 한다. 연산을 통한 추론은 인공지능 연구에서 가장 어려운 분야이다.

통합 (Unification) 이란 일종의 패턴 비교 (pattern matching) 로서, 단조 증가적 연산이다. 통합은 수리 논리에서 도입된 개념으로서 단일화라고 번역하기도 하는데, 프롤로그 (Prolog) 라는 프로그래밍 언어의 기본 연산이다.

위에서 (다) 는 (가) 와 (나) 를 통합한 결과이며, 'U' 는 통합 연산을 나타낸다. 이 예는 통합이 일방적인 연산이 아니라, 상호 영향을 주는 연산임을 보여준다.

그러나 예를들어 (가) 와 (라) 는 통합이 불가능하다. 그 이유는 "number" 의 값이 "singular" 와 "plural" 로 같지 않기 때문이다. 그러나 (나) 와 (라) 는 가능하다.

(4) The sheep runs.

(5) The sheep run.

영어 문장에서는 주어의 수와 동사의 수가 일치해야 한다. 그런데 "sheep" 의 경우에는 단수와 복수가 같다. 한편, "runs" 는 주어가 단수이어야 하며, "run" 은 복수이어야 한다. 통합 연산은 예문 (4) 의 "sheep" 이 단수이고, (5) 의 "sheep" 이 복수임을 쉽게 보여준다.

(6) The dog run.

(7) 아버지께서 간다.

예문 (6) 에서 "The dog" 은 단수이며, "run" 은 복수인 주어를 취한다. 따라서 둘은 통합이 될 수 없으므로 틀린 문장이다. 같은 이유에서 (7) 에서 "간다" 는 주어가 존칭이 될 수 없으며, "아버지께서" 는 존칭이므로 통합이 될 수 없다.

위에서 보여준 예들은, 통합 연산이 자연언어 분석을 위해 어떻게 사용될 수 있는지를 간략하게 보여준다. 제 3 부의 통합 기반 문법의 설명에서 보다 구체적으로 통합이 문법 기술에 사용되는 예를 볼 수 있을 것이다.