자연언어 처리

 

인공지능 입문 - 그림으로 풀어본 : 도우치 준이치 지음, 최기선 옮김, 미래사, 1992, page 97~123

 

1. 자연언어의 이해

2. 구문을 표현하는 문법

     (1) 구(句)구조문법 (문맥자유형 문법)

     (2) 확장천이문법

3. 의미를 나타내는 문법

     (1) 의미네트워크를 사용한다.

     (2) 격(格)문법

     (3) 개념의존(CD)이론

     (4) 몬테규문법

4. 한국어 해석

     (1) 구문해석

     (2) 의미해석

     (3) 형태소해석

5. 자연언어처리의 시스템

     (1) 자연언어처리 시스템의 구성

     (2) 자연언어처리 시스템의 종류

     (3) SHRDLU 와 GUS

 

 

1. 자연언어의 이해

인간을 정의할 때 '인간은 언어를 사용하는 동물이다' 라고 표현하기도 한다. 이렇듯 말을 하고 (또는 글을 쓰고) 그것을 이해하는 것은 인간만이 지닐 수 있는 능력이다. 그런데 이러한 인간 고유의 능력을 기계가 할 수 있도록 하는 것이 바로 자연언어처리라고 불리는 분야이다.

자연언어를 이해하는 데는 두 가지 측면이 있다. 첫째는 문법 (구문) 적 이해이다. 각 단어의 품사를 인식하여, 한 문장 안에서 단어가 어떻게 구성되었는가를 인식하는 것이다. 또 한 측면은 의미적 이해이다. 문장을 문법적 지식만으로는 완전히 이해할 수 없다. 예를 들면, "아름다운 한국의 나" 라는 문구에서 '아름답다' 가 '한국' 을 수식하는가 '나' 를 수식하는가는 문법적인 문제라기 보다는 의미적인 문제이다. 따라서 자연언어의 의미적 구조를 명확히 하기 위한 문법도 고려되고 있다.

다음 절에서는 구문을 표현하는 문법과 의미를 표현하는 문법을 소개하였다. 

2. 구문을 표현하는 문법

문장의 구문을 표현하기 위한 대표적인 문법에는 다음 두 가지가 있다.

문장은 구(句)가 모여 이루어진 것이므로, 문장의 구조를 명확히 하기 위해서는 구의 구성을 아는 것이 기본이라는 데서 출발한 것이 구구조문법이다. 구체적으로 말하자면, 문장의 처음부터 끝까지에 바꿔쓰기 규칙 (rewriting rule) 을 적용함으로써 그 문장을 표현하는 해석트리를 구성해 나가는 것이다.
확장천이문법은 재귀적으로 천이하는 천이표를 문장의 앞에서부터 끝까지 차례로 적용함으로써 문장의 구조를 명확히 하는 것이다. '확장' 이라는 의미는, 이 문법이론을 기초로 이루어진 재귀천이문법 (RTN : Recursive Transition Network) 의 방식을 컴퓨터처리용으로 확장한다는 데서 붙여졌다.

 

(1) 구(句)구조문법 (문맥자유형 문법)

영문은 명사구, 동사구라는 구 (句) 의 결집이라고 할 수 있다. 다음의 영문을 보자.

이 영문의 구조는 그림 1과 같다.

 

그림 1  문장의 구(句)구조

각각의 약호는 다음과 같다.

    S   = 문장

    PP = 전치사구

       = 동사

    NP = 명사구

    = 관사

    = 전치사

    VP = 동사구

       = 명사

     

이와 같이 문장은 구의 결집이라는 생각이 구구조문법의 기본이다. 구구조문법에서는 구구조를 해명하기 위해 예를 들면, 다음 그림과 같이 바꿔쓰기 규칙을 사용한다.

    (a) S      → NP·VP·PP
    (c) NP    → DET·N
    (e) PP    → PREP·NP
    (g) DET   → the, a
    (i)  PREP → with

    (b)
    (d)
    (f)
    (h)
     

VP  → V·NP
NP  → N
N    → boy, window, hammer
V    → broke
 

 

 

(2) 확장천이문법

문법을 바꿔쓰는 규칙이 아니라, 그림 2 와 같은 천이네트워크 (TN : Transition Network) 로 나타낸 것을 확장천이문법 (ATN) 이라 한다.

 

그림 2  확장천이문법

여기서 대문자 (NP, VP 등) 는 다른 천이네트워크로 이동하는 것을 나타내고, 종단기호 (terminal symbol) 에 도달하면 처음의 천이네트워크로 되돌아온다. 문장 (S) 의 종단기호에 이르러 모든 단어를 다 거쳤으면 처리는 완료된다. 한편 소문자 (det, n 등) 는 처리중인 단어의 품사를 표시한다.
이 천이네트워크를 사용하여 앞의 문장을 해석해 보자.

이렇게 상태를 변화시켜 가면서 문장을 해석하는 것이다. 최종적인 상태의 천이를 그림 3 에서 보여주고 있다.

 

그림 3  상태의 천이

그 결과, 앞의 그림 1 과 동일한 해석트리를 얻을 수 있다.

 

3. 의미를 나타내는 문법

문장을 문법적 구조가 아니라 의미적인 구조로써 표현하려는 시도가 있다. 예를 들면, 다음 두 개의 문장은 의미가 완전히 같다.

그런데 문법적인 해석트리에서는 이것이 명확하지 않다. 두 문장은 같은 의미이기 때문에, 의미적으로도 같은 구조로 표현되어야 한다.

반대로, 같은 문장이라도 그 의미에 있어 구조가 다른 것이 있다. 앞에서 든 '아름다운 한국의 나' 등도 '아름답다'가 '한국'을 수식하는가 '나'를 수식하는가에 따라 문장의 의미구조는 다르다. 지금부터는 이러한 의미구조를 표현하는 문법을 설명하겠다.

(1) 의미네트워크를 사용한다.

의미네트워크는 앞 절에서 설명했듯이 지식표현의 한 수단으로, 문장의 의미구조를 나타내는 데도 사용한다. 이를 위해 그림 4 와 같은 다섯 종류의 결합기호가 사용된다.

 

그림 4  의미네트워크의 결합기호

다음 문장의 의미를 네트워크를 사용하여 표현해보자.

이 영문의 의미는 다음 세 가지로 해석될 수 있다.

같은 문장이어도 의미가 다르면, 그 의미구조는 다르다. 세 가지 의미를 의미네트워크를 사용하여 표기하면 그림 5 와 같다.

그림 5  의미네트워크에 의한 의미표현

(2) 격(格)문법

격 (格) 문법은 술어 (동사) 를 중심에 두고, 여기에 대하여 각 단어의 의미적인 관계를 기술함으로써 의미구조를 표현하는 문법이다. 단어 사이의 의미관계는 격 (格) 이라 불리며, 그 종류는 다음과 같다.

(Agt : agent, P : patient, I : instrument, S : source, L : location, D : direction, R : result)

다음의 영문을 보자.

'존은 망치로 창을 깨뜨렸다.' 는 것인데, 이 문장의 의미를 격문법을 사용하여 나타내면 그림 6 과 같다.

 

그림 6  격문법에 의한 의미표현

다음 문장의 의미도 그림 6 과 똑같이 표현되는데 주의하기 바란다.

(3) 개념의존(CD)이론

단어가 가지는 개념에 주목하여 개념으로 문장의 의미를 설명하는 것이 개념의존이론 (Conceptual Dependency Structure = CD이론) 이다.

예를 들면, 사과와 apple 이란 단어는 전혀 다르지만 동일한 것 (개념) 을 나타내고 있다. 문자에 있어서도 마찬가지이다.

이 두 문장은 언어의 종류는 달라도 개념은 같다. 또한 같은 언어에서도,

의 두 문장은 능동태, 수동태라는 차이는 있어도 의미적으로는 완전히 같은 개념이다.

이처럼 단어를 언어에 의해서가 아니라 의미소 (意味素, 개념소) 로 표현하여, 의미소의 구조로 문장의 의미를 표현하는 것이 CD이론이다.
CD이론에서는 개념의 형태를 물건, 행동, 시간, 장소, 물건의 속성, 동작의 속성이라는 여섯 가지로 분류한다. 행동의 형태도 14개로 분류하며, 동사의 의미는 그 중 하나를 사용하여 나타낸다.
예를 들면, 앞의 두 문장을 CD이론에 의해 표현해 보면 그림 7 과 같다.

 

그림 7  CD이론에 의한 의미표현(1)

물론 영어의

도 동일하게 표현된다.

다른 문장의 예를 보자.

이것은 CD 이론에 의하면 그림 8 로 표현된다.

 

그림 8  CD이론에 의한 의미표현(2)

(4) 몬테규문법

자연언어를 논리식으로 표현하려는 것이 몬테규문법의 발상이다. 단, 이때 자연언어란 정상적인 (진위를 논할 수 있는) 문장이어야 한다.
예를 들면, 다음 문장을 논리식으로 변환하는 것을 생각해 보자.

이 문장은 다음과 같이 바꾸어 말할 수 있다.

이것을 이론식으로 나타내면 다음과 같다.

여기에서 ∀x 는 '모든 x 에 대하여', 괄호 왼쪽의 사람 (x) 은 'x가 사람이라면' 이라는 조건, 괄호 오른쪽의 잠을 잔다 (x) 는 'x는 잠을 잔다' 는 결론을 나타낸다.

그러면 자연언어는 어떤 순서를 밟아서 논리식으로 변환되는가? 우선, 문장을 문법적으로 해석하는 해석트리를 만든다 (그림 9 참조).
다음은, 밑의 노드 (node) 또는 가지에서 차례로 논리식으로 변환한다 (그림 10 참조).
①∼⑤의 순서대로 논리식이 작성된다. 여기서 어떤 노드에 대한 의미표현은, 그 노드 이하의 의미표현으로부터 자동적으로 합성된다는 것에 주의해야 한다. 이것은 '전체의 의미는 부분의 의미로부터 합성된다'는 원리에 기초한 것이다. 이렇게 하여 ⑤의 논리식이 최종적으로 완성되는 것이다.

 

그림 9  문장의 해석트리(1)

 

그림 10  문장의 해석트리(2)

4. 한국어 해석

구(句)구조문법과 확장천이문법은 유럽과 미국의 언어를 중심으로 사고하여 만들어졌기 때문에, 한국어 해석에는 맞지 않은 점이 있다. 한국어에는 한국어에 적합한 해석문법이 있어야 한다. 이 절에서는 한국어의 특징과 그 해석법에 대해 서술하겠다.

(1) 구문해석

영문은 구(句)의 집합이라고 볼 수 있기 때문에, 영문의 해석은 문장을 구성하는 구를 분석하는데 주안점이 있다. 그러나 한국어 문장의 경우는 좀 다르다.

한국어 문장의 경우는 다음과 같이 낱말 사이의 수식관계가 문장 구조의 기본을 이룬다.

'나는' '오늘' '책을' 이 모두 '샀다' 에 걸리고, '컴퓨터' 가 '책을' 에 걸린다.

(2) 의미해석

한국어가 영문과 다른 또 한 가지는 어순이 비교적 자유롭다는 것이다. 예를 들어, 앞의 문장은 다음과 같이 바꿔써도 뜻이 완전히 같다.

이러한 특징을 가진 한국어의 의미해석에는, 동사를 중심으로 하는 격문법이 가장 바람직하다. 예를 들면, 앞의 두 문장은 동일하게 그림 11 의 격구조로 표현될 수 있다. 영문의 격을 결정하는 데에는 어순이 큰 영향을 미치지만, 한국어 문장의 격은 조사가 결정적인 역할을 한다.

 

그림 11  논리식으로의 변환과정

(3) 형태소해석

한국어 문장은 어절의 나열로 이루어진다. 각 어절은 하나 이상의 단어가 복잡한 법칙에 따라 붙여쓰기를 한다. 따라서 한국어 해석에 있어 또 하나 중요한 점은, 한 어절 안의 붙여쓴 단어들을 단어별로 나누는 문제이다. 영문에서는 각 단어 뒤에 띄어쓰기를 해서 단어를 잘라주기 때문에, 한국어에서와 같은 문제가 발생하지 않는다. 그러나 한국어에서는 어절 별로 띄어쓰기를 하여, 기계가 어절 안의 단어를 식별하지 않으면 안된다. 이러한 어절 안에서 나누어 주어야 할 단어를 좀더 전문적인 용어로 형태소 (形態素) 라고 부른다. 따라서 위와 같은 해석의 가정을 형태소 해석이라고 하는데, 구문해석 전에 반드시 이 과정을 거쳐야 한다.

그러면, '나는 오늘 컴퓨터 책을 샀다.' 라는 문장에 대한 형태소 해석의 예를 보자. 아래에서 [] 로 묶은 것은 한 어절을 뜻한다.

나

는

오늘

컴퓨터

책

을

샀다

[명사

조사]

[부사]

[명사]

[명사

조사]

[동사(완료형)]

5. 자연언어처리의 시스템

(1) 자연언어처리 시스템의 구성

자연언어를 컴퓨터로 처리하는 경우의 일반적 흐름을 따라가 보자. 자연언어에 의한 질의응답 시스템은 그림 12 와 같이 구성된다.

 

그림 12  자연언어 질의응답의 처리과정

  흐름도의 순으로 설명하겠다.

그림 13 에서는,

이라는 질문을 입력하면 결과로

이라는 응답문이 출력되기까지의 해석 예를 보여준다.

 

그림 13  자연언어시스템의 구성

(2) 자연언어처리 시스템의 종류

자연언어의 이론적인 연구만이 아니라, 이것을 응용하여 실제로 사용하는 자연언어처리 시스템을 만들려는 시도도 활발하다. 현재까지 개발된 자연언어 시스템은,

등으로 분류된다. 기계번역 시스템에 관해서는 다음 장에서 다루겠고, 여기서는 그 외의 시스템에 대해 알아보자.

(3) SHRDLU 와 GUS

두 가지 정도를 구체적으로 보자. 우선, 자연언어처리 시스템의 최초의 성공 예인 유명한 SHRDLU 를 보자.

이라는 지시를 받고 커다란 빨간 나무토막을 팔로 들어올리는 화면이다. (그림 14 참조).

그림 14  SHRDLU화면

이어서 여행계획의 질의응답 시스템인 GUS 와 고객간의 응답 예를 보여주는 화면이다. 가는 글씨는 GUS 의 말(?), 굵은 글씨는 고객의 말을 나타낸다.

 

그림 15  GUS의 응답예

표 1 자연언어(영문) 처리 시스템

분   야

시스템명

개          발

기             능

질의 응답
시스템

SHRDLU

MIT

나무쌓기의 QA 시스템

GUS

제롯스사

여행계획의 QA 시스템

ELIZA

ditto

정신분석의 QA 시스템

SCHOLOR

MIT

지리학습용 CAI

문제해결
시스템

STUDENT

MIT

산수 문제해결 시스템

Newton

MIT

물리 문제해결 시스템

Isaoc

텍사스대

지리 문제해결 시스템

문장해석
시스템

MARGIE

스탠퍼드대

영문해석 시스템

TOPLE

MIT

대화이해 시스템

LINGOL

MIT

영문해석 시스템

데이터베이스

검색

시스템

LADDER

SRI

대규모 분산 데이터베이스 조회 시스템

RENDEZOUS

CODD

관계 데이터베이스 조작 시스템

LUNAR

BBN

지질학에 관한 질의응답 시스템

REQUEST

IBM

데이터베이스 검색 시스템

PLANS

일리노이대

항공편에 관한 질의응답 시스템

상용

시스템

INTELLECT

AI

main flame 의 데이터베이스용 자연언어 인터페이스

SAVVY

에쿠스카리바
테크놀로지

개인컴퓨터용 자연언어 인터페이스

STRAIGHT TALK

딕타폰

워드프로세서와의 자연언어 인터페이스

THEMIS

프리 어소시에이트

VAX-Orode 용 자연언어 데이터베이스
인터페이스

SUPER-NATURAL

마이크로데이터

정보처리시스템과의 자연언어 인터페이스

NATURAL LINK

AI

메뉴에 의한 자연언어 DBMS 인터페이스

PEARL

코그니티브
시스템

지식베이스와의 자연언어 인터페이스