한국어 기본문 파싱(parsing)
29 Apr 2017 | parsing
이번 글은 한국어 기본문을 통사원자(syntactic atom)로 구성된 계층구조로 분석하는 파싱(parsing) 방법에 대해 살펴보도록 하겠습니다. 이 글은 국어 기본문의 문법 구조를 밝힌 박진호(1994)를 정리했음을 먼저 밝힙니다. 자연언어처리라는 목적을 위해 원저작의 내용을 상당히 단순화했다는 점 또한 먼저 말씀드립니다. 그럼 시작하겠습니다.
기본 원리
우선 아래 예문을 살펴보겠습니다.
철수가 밥을 먹었다
이 문장을 파싱하려면 어떻게 해야할까요? ‘먹었다’라는 서술어는 의미론적으로 행위주(철수가)와 대상(밥을)을 요구하므로 당장 떠오르는 방법은 아래와 같을 겁니다.
그런데 자세히 살펴보면 선어말어미 ‘-었-‘은 ‘철수라는 사람이 밥을 먹은 행위가 과거에 있었다’는 의미를 나타냅니다. 다시 말해 ‘-었-‘은 어간 ‘먹-‘이 아니라 ‘철수가 밥을 먹-‘이라는 큰 단위와 결합했다고 보는게 자연스럽다는 것이지요. 이는 한국어의 다른 문장도 마찬가지입니다.
ㄱ. 어제 철수는 청소를 하고 영희는 빨래를 하였다.
ㄴ. 지금쯤 철수는 청소를 하고 영희는 빨래를 하겠다.
위 두 문장에서 철수가 청소를 한 시점은 언제일까요? 한국어 화자라면 (ㄱ)은 과거, (ㄴ)은 현재(추측)라는 것을 단번에 알아차릴 수 있을 겁니다.
두 문장 모두 ‘철수는 청소를 하고’라는 동일한 표현을 썼습니다. 그럼에도 이렇게 의미(시점)가 달라지는 이유는 무엇일까요? 선어말어미 ‘-었-‘, ‘-겠-‘이 어간 ‘하-‘가 아니라 ‘철수는 청소를 하고 영희는 빨래를 하-‘라는 큰 단위와 결합했기 때문입니다.
따라서 ‘철수가 밥을 먹었다’는 문장은 다음과 같이 분석할 수 있습니다.
여기에서 핵(head) 개념이 등장합니다. 명사, 동사, 조사, 어미 등 개별 통사원자들이 위 그림처럼 위계적 구조를 가지고 결합한 것이 문장입니다. 두 통사원자가 결합하여 이루는 상위 단위의 통사적(문법적) 성격은 하위 요소의 통사적 성격에 의해 결정됩니다. 대개 둘 중 어느 한 요소가 중심적 역할을 맡게 되는데요, 이 때 중심 역할을 하는 요소를 ‘핵’이라고 합니다.
박진호(1994)에 따르면 위 문장에서 ‘철수’라는 명사는 격조사 ‘-가’와 결합해 (주)격조사구(phrase)가 됩니다. 격조사 ‘-가’가 핵이라는 이야기입니다. 마찬가지로 (목적)격조사구 ‘밥을’에서는 ‘-을’이 핵입니다. ‘밥을 먹-‘이라는 동사구에서는 동사 ‘먹-‘이 핵입니다.
다시 말해 ‘철수가’는 문장의 주어 역할을, ‘밥을’은 목적어 역할을, ‘밥을 먹-‘은 동사 역할을 하는데요, 이렇게 결합 이후의 통사적 성격 결정에 중요한 영향을 끼치는 것이 바로 핵이라고 말할 수 있습니다.
박진호(1994)는 한국어 통사원자의 범주를 8개로 나누고 그 기호를 아래와 같이 정의했습니다. 이후 예시에서 이 표기를 따르도록 하겠습니다.
명사
동사
격조사
문말어미
보조사
선문말어미
관형사
부사
N
V
K
C
D
I
ADN
ADV
국어 기본문의 논항 구조
논항(argument)이란 핵과 대비되는 개념으로, 핵이 요구하는 필수적 성분을 일컫는 용어입니다. 예컨대 ‘먹-‘이라는 동사는 ‘밥’ 같은 명사(구)를 반드시 필요로 합니다. 따라서 ‘밥 먹-‘에서 핵은 동사, 논항은 ‘밥’이 되는 것입니다.
선문말어미
선문말어미는 동사구 하나와 결합하며 선행 동사구(철수 밥 먹)가 핵이 됩니다. 다시 말해 선문말어미는 동사구의 논항입니다.
문말어미
동사구가 문말어미와 결합할 때는 문말어미가 핵이 됩니다. 다시 말해 동사구는 문말어미의 논항입니다. 동사구와 문말어미가 결합함으로써 절(節)이 됩니다. 아래와 같이 ‘-다’라는 문말어미는 동사구 한 개를 논항으로 가집니다.
그러나 문말어미가 아래와 같이 연결어미일 경우에는 선행 동사구 하나, 후행 동사구 하나, 이렇게 두 개의 논항을 가집니다. 연결어미는 선행 동사구와 결합할 때는 핵이 되지만 후행 요소와 결합할 때는 비핵이 됩니다.
문말어미가 관형사형어미일 경우 선행 동사구 하나, 후행 명사구 하나, 이렇게 두 개의 논항을 가집니다. 관형사형어미는 선행 동사구와 결합할 때는 핵이 되지만 후행 요소와 결합할 때는 비핵이 됩니다.
조사 (격조사/보조사)
조사는 대체로 개체와 그 개체가 참여하는 사건 사이의 관계를 나타내 줍니다. 관계란 정의상 두 개의 항(term)의 존재를 전제로 하기 때문에 조사는 격조사이든 보조사이든 두 개의 논항을 취합니다.
격조사는 선행 명사구와 결합할 때는 핵이 되지만 후행 동사구와 결합할 때는 비핵이 됩니다.
반면 보조사는 늘 비핵입니다.
관형사와 부사
관형사는 후행 명사구 하나, 부사는 후행 동사구 하나를 논항으로 각각 취합니다. 이들은 모두 후행 요소와 결합할 때 비핵이 됩니다.
동사와 명사
동사와 명사는 다른 범주와 달리 논항의 자릿수(개수)가 일률적으로 정해져 있지 않고, 개별 어휘에 따라 다릅니다. 박진호(1994)에 따르면 한국어 동사의 자릿수는 대체로 하나에서 셋이라고 합니다. 대표적 사례는 아래 표와 같습니다.
어휘
자릿수
예시
죽-
1개(주체)
개가 죽-
먹-
2개(주체/대상)
철수가 밥을 먹-
주-
3개(주체/수혜자/대상)
영희가 철수에게 선물을 주-
명사의 경우 자릿수가 0인 경우가 대다수라고 합니다. 그러나 공부, 연구, 살해 등처럼 행위의 주체와 대상을 논항으로 요구하거나 소문, 사실, 이유처럼 명제를 논항으로 취하는 명사도 꽤 있습니다. 명사와 동사 모두 자신의 논항과 결합할 때 핵이 됩니다.
복잡한 문장 분석하기
이번 항목에서는 지금까지 설명해드린 기본문보다 복잡한 구조를 지닌 문장을 분석해보도록 하겠습니다.
전수
명사구 ‘내가 살던 집’은 아래와 같이 분석할 수 있습니다. 우선 격조사구 ‘내가’에 동사 ‘살-‘이 결합해 동사구가 됩니다. 여기에 문말어미(관형사형어미) ‘-던’이 붙어 절이 됩니다. 마지막으로 ‘집’이라는 명사와 ‘내가 살던’이라는 부가어 절이 결합해 ‘내가 살던 집’이라는 명사구를 이룹니다.
그렇다면 ‘나의 살던 집’은 어떻게 분석해야 할까요? 아래와 같습니다.
‘나의 살던 집’에서 ‘나의’는 관형격이므로 동사 ‘살-‘ 혹은 동사구 ‘살던’과는 결합할 수 없고, 명사구 ‘살던 집’과 결합할 수밖에 없습니다. 동사 ‘살-‘은 행위주역과 장소역을 논항으로 가지는데요, 위 예시에서는 ‘살-‘이 자신의 행위주역 논항에 대한 지배권을 ‘-던’에, 그리고 다시 ‘집’에 전수(inheritance)했기 때문에 가능한 것입니다.
합류
‘철수가 먹은 떡’은 아래와 같이 분석할 수 있습니다.
동사구 ‘철수가 먹-‘은 대상역을 논항으로 가집니다. 문말어미(관형사형어미) ‘-은’은 선행 동사구와 후행 명사구를 논항으로 가집니다. 이 둘이 결합하면서 ‘철수가 먹-‘의 대상역 논항과 ‘-은’의 후행 명사구 논항이 합류(merge)하는 걸 볼 수 있습니다. 다시 말해 ‘떡’은 동사구 ‘철수가 먹-‘의 논항이면서, 동시에 문말어미 ‘-은’의 논항이기도 합니다.
조사 중출
국어에서는 하나의 명사구에 조사가 둘 이상 붙는 것이 가능합니다. 특히 격조사와 보조사가 하나씩 붙는 일은 매우 흔합니다. ‘철수는 영희만을 사랑한다’에서 ‘영희만을 사랑하-‘를 분석하면 아래와 같습니다.
대등 접속
문장 내에서 명사(구)가 연결되는 경우 아래와 같이 분석할 수 있습니다.
명사(구)를 병렬적으로 나열하는 경우 아래와 같이 분석할 수 있습니다.
안긴 문장(내포문)
‘철수는 영수에게 일하라고 명령했다’에서 ‘영수에게 일하라고 명령하-‘를 분석하면 아래와 같습니다.
이어진 문장(접속문)
‘철수는 식사를 마치고 집을 나섰다’에서 ‘식사를 마치고 집을 나서-‘를 분석하면 아래와 같습니다.
tough 구문
안긴 문장 동사의 목적어 논항이 목적격뿐 아니라 주격으로도 나타나는 일이 있습니다. (a)의 경우 안긴 문장 동사 ‘잡-‘의 목적어 논항이 목적격의 ‘파리를’로 실현됐는데, (b)는 주격의 ‘파리가’로 실현됐습니다. 이와 같은 구문을 언어학에서는 tough 구문이라고 부릅니다.
(a) 파리를 잡기가 어렵다
(b) 파리가 잡기가 어렵다
(a)를 분석하면 아래와 같습니다.
(b)를 분석하면 아래와 같습니다.
국어에서는 tough 구문을 허용하는 동사가 많지는 않다고 합니다. ‘쉽-‘, ‘어렵-‘, ‘수월하-‘, ‘힘들-‘ 같이 어렵고 힘듬을 나타내는 동사가 대표적입니다. 심리 동사 가운데 ‘싶-‘과 ‘싫-‘도 이 범주에 포함됩니다.
목적어의 인상 구문
‘영희는 철수를 바보로 생각한다’에서 ‘철수를 바보로 생각하-‘를 분석하면 아래와 같습니다.
이중주어문
아래 예시의 이중주어문은 각각 다음과 같이 분석할 수 있습니다.
(가) 철수의 손이 크다
(나) 철수가 손이 크다
분석 예시
지금까지 논의한 내용을 바탕으로 아래 문장을 다음과 같이 분석해볼 수 있습니다.
철수와 영희가 영수에게만 복종하였다
마치며
이상으로 한국어 파싱의 기본 원칙에 대해 살펴보았습니다. 논문을 읽고 정리하면서 저자의 실력에 여러번 감탄할 수밖에 없었습니다. 영어 파싱에 관해서는 여러 자료들이 많으나 한국어 파싱에 관해서는 이만한 논문이 없다는 생각이 듭니다. 개인적으로 모델만큼 언어학 공부를 많이 해야겠다는 다짐을 또한 하게 됐습니다. 한편 Recursive Neural Networks는 이러한 계층구조의 데이터를 입력으로 받는 대표적인 모델인데요, 자세한 내용을 알아보시려면 이곳 방문을 권해드립니다.
이번 글은 한국어 기본문을 통사원자(syntactic atom)로 구성된 계층구조로 분석하는 파싱(parsing) 방법에 대해 살펴보도록 하겠습니다. 이 글은 국어 기본문의 문법 구조를 밝힌 박진호(1994)를 정리했음을 먼저 밝힙니다. 자연언어처리라는 목적을 위해 원저작의 내용을 상당히 단순화했다는 점 또한 먼저 말씀드립니다. 그럼 시작하겠습니다.
기본 원리
우선 아래 예문을 살펴보겠습니다.
철수가 밥을 먹었다
이 문장을 파싱하려면 어떻게 해야할까요? ‘먹었다’라는 서술어는 의미론적으로 행위주(철수가)와 대상(밥을)을 요구하므로 당장 떠오르는 방법은 아래와 같을 겁니다.
그런데 자세히 살펴보면 선어말어미 ‘-었-‘은 ‘철수라는 사람이 밥을 먹은 행위가 과거에 있었다’는 의미를 나타냅니다. 다시 말해 ‘-었-‘은 어간 ‘먹-‘이 아니라 ‘철수가 밥을 먹-‘이라는 큰 단위와 결합했다고 보는게 자연스럽다는 것이지요. 이는 한국어의 다른 문장도 마찬가지입니다.
ㄱ. 어제 철수는 청소를 하고 영희는 빨래를 하였다.
ㄴ. 지금쯤 철수는 청소를 하고 영희는 빨래를 하겠다.
위 두 문장에서 철수가 청소를 한 시점은 언제일까요? 한국어 화자라면 (ㄱ)은 과거, (ㄴ)은 현재(추측)라는 것을 단번에 알아차릴 수 있을 겁니다.
두 문장 모두 ‘철수는 청소를 하고’라는 동일한 표현을 썼습니다. 그럼에도 이렇게 의미(시점)가 달라지는 이유는 무엇일까요? 선어말어미 ‘-었-‘, ‘-겠-‘이 어간 ‘하-‘가 아니라 ‘철수는 청소를 하고 영희는 빨래를 하-‘라는 큰 단위와 결합했기 때문입니다.
따라서 ‘철수가 밥을 먹었다’는 문장은 다음과 같이 분석할 수 있습니다.
여기에서 핵(head) 개념이 등장합니다. 명사, 동사, 조사, 어미 등 개별 통사원자들이 위 그림처럼 위계적 구조를 가지고 결합한 것이 문장입니다. 두 통사원자가 결합하여 이루는 상위 단위의 통사적(문법적) 성격은 하위 요소의 통사적 성격에 의해 결정됩니다. 대개 둘 중 어느 한 요소가 중심적 역할을 맡게 되는데요, 이 때 중심 역할을 하는 요소를 ‘핵’이라고 합니다.
박진호(1994)에 따르면 위 문장에서 ‘철수’라는 명사는 격조사 ‘-가’와 결합해 (주)격조사구(phrase)가 됩니다. 격조사 ‘-가’가 핵이라는 이야기입니다. 마찬가지로 (목적)격조사구 ‘밥을’에서는 ‘-을’이 핵입니다. ‘밥을 먹-‘이라는 동사구에서는 동사 ‘먹-‘이 핵입니다.
다시 말해 ‘철수가’는 문장의 주어 역할을, ‘밥을’은 목적어 역할을, ‘밥을 먹-‘은 동사 역할을 하는데요, 이렇게 결합 이후의 통사적 성격 결정에 중요한 영향을 끼치는 것이 바로 핵이라고 말할 수 있습니다.
박진호(1994)는 한국어 통사원자의 범주를 8개로 나누고 그 기호를 아래와 같이 정의했습니다. 이후 예시에서 이 표기를 따르도록 하겠습니다.
명사 | 동사 | 격조사 | 문말어미 | 보조사 | 선문말어미 | 관형사 | 부사 |
---|---|---|---|---|---|---|---|
N | V | K | C | D | I | ADN | ADV |
국어 기본문의 논항 구조
논항(argument)이란 핵과 대비되는 개념으로, 핵이 요구하는 필수적 성분을 일컫는 용어입니다. 예컨대 ‘먹-‘이라는 동사는 ‘밥’ 같은 명사(구)를 반드시 필요로 합니다. 따라서 ‘밥 먹-‘에서 핵은 동사, 논항은 ‘밥’이 되는 것입니다.
선문말어미
선문말어미는 동사구 하나와 결합하며 선행 동사구(철수 밥 먹)가 핵이 됩니다. 다시 말해 선문말어미는 동사구의 논항입니다.
문말어미
동사구가 문말어미와 결합할 때는 문말어미가 핵이 됩니다. 다시 말해 동사구는 문말어미의 논항입니다. 동사구와 문말어미가 결합함으로써 절(節)이 됩니다. 아래와 같이 ‘-다’라는 문말어미는 동사구 한 개를 논항으로 가집니다.
그러나 문말어미가 아래와 같이 연결어미일 경우에는 선행 동사구 하나, 후행 동사구 하나, 이렇게 두 개의 논항을 가집니다. 연결어미는 선행 동사구와 결합할 때는 핵이 되지만 후행 요소와 결합할 때는 비핵이 됩니다.
문말어미가 관형사형어미일 경우 선행 동사구 하나, 후행 명사구 하나, 이렇게 두 개의 논항을 가집니다. 관형사형어미는 선행 동사구와 결합할 때는 핵이 되지만 후행 요소와 결합할 때는 비핵이 됩니다.
조사 (격조사/보조사)
조사는 대체로 개체와 그 개체가 참여하는 사건 사이의 관계를 나타내 줍니다. 관계란 정의상 두 개의 항(term)의 존재를 전제로 하기 때문에 조사는 격조사이든 보조사이든 두 개의 논항을 취합니다.
격조사는 선행 명사구와 결합할 때는 핵이 되지만 후행 동사구와 결합할 때는 비핵이 됩니다.
반면 보조사는 늘 비핵입니다.
관형사와 부사
관형사는 후행 명사구 하나, 부사는 후행 동사구 하나를 논항으로 각각 취합니다. 이들은 모두 후행 요소와 결합할 때 비핵이 됩니다.
동사와 명사
동사와 명사는 다른 범주와 달리 논항의 자릿수(개수)가 일률적으로 정해져 있지 않고, 개별 어휘에 따라 다릅니다. 박진호(1994)에 따르면 한국어 동사의 자릿수는 대체로 하나에서 셋이라고 합니다. 대표적 사례는 아래 표와 같습니다.
어휘 | 자릿수 | 예시 |
---|---|---|
죽- | 1개(주체) | 개가 죽- |
먹- | 2개(주체/대상) | 철수가 밥을 먹- |
주- | 3개(주체/수혜자/대상) | 영희가 철수에게 선물을 주- |
명사의 경우 자릿수가 0인 경우가 대다수라고 합니다. 그러나 공부, 연구, 살해 등처럼 행위의 주체와 대상을 논항으로 요구하거나 소문, 사실, 이유처럼 명제를 논항으로 취하는 명사도 꽤 있습니다. 명사와 동사 모두 자신의 논항과 결합할 때 핵이 됩니다.
복잡한 문장 분석하기
이번 항목에서는 지금까지 설명해드린 기본문보다 복잡한 구조를 지닌 문장을 분석해보도록 하겠습니다.
전수
명사구 ‘내가 살던 집’은 아래와 같이 분석할 수 있습니다. 우선 격조사구 ‘내가’에 동사 ‘살-‘이 결합해 동사구가 됩니다. 여기에 문말어미(관형사형어미) ‘-던’이 붙어 절이 됩니다. 마지막으로 ‘집’이라는 명사와 ‘내가 살던’이라는 부가어 절이 결합해 ‘내가 살던 집’이라는 명사구를 이룹니다.
그렇다면 ‘나의 살던 집’은 어떻게 분석해야 할까요? 아래와 같습니다.
‘나의 살던 집’에서 ‘나의’는 관형격이므로 동사 ‘살-‘ 혹은 동사구 ‘살던’과는 결합할 수 없고, 명사구 ‘살던 집’과 결합할 수밖에 없습니다. 동사 ‘살-‘은 행위주역과 장소역을 논항으로 가지는데요, 위 예시에서는 ‘살-‘이 자신의 행위주역 논항에 대한 지배권을 ‘-던’에, 그리고 다시 ‘집’에 전수(inheritance)했기 때문에 가능한 것입니다.
합류
‘철수가 먹은 떡’은 아래와 같이 분석할 수 있습니다.
동사구 ‘철수가 먹-‘은 대상역을 논항으로 가집니다. 문말어미(관형사형어미) ‘-은’은 선행 동사구와 후행 명사구를 논항으로 가집니다. 이 둘이 결합하면서 ‘철수가 먹-‘의 대상역 논항과 ‘-은’의 후행 명사구 논항이 합류(merge)하는 걸 볼 수 있습니다. 다시 말해 ‘떡’은 동사구 ‘철수가 먹-‘의 논항이면서, 동시에 문말어미 ‘-은’의 논항이기도 합니다.
조사 중출
국어에서는 하나의 명사구에 조사가 둘 이상 붙는 것이 가능합니다. 특히 격조사와 보조사가 하나씩 붙는 일은 매우 흔합니다. ‘철수는 영희만을 사랑한다’에서 ‘영희만을 사랑하-‘를 분석하면 아래와 같습니다.
대등 접속
문장 내에서 명사(구)가 연결되는 경우 아래와 같이 분석할 수 있습니다.
명사(구)를 병렬적으로 나열하는 경우 아래와 같이 분석할 수 있습니다.
안긴 문장(내포문)
‘철수는 영수에게 일하라고 명령했다’에서 ‘영수에게 일하라고 명령하-‘를 분석하면 아래와 같습니다.
이어진 문장(접속문)
‘철수는 식사를 마치고 집을 나섰다’에서 ‘식사를 마치고 집을 나서-‘를 분석하면 아래와 같습니다.
tough 구문
안긴 문장 동사의 목적어 논항이 목적격뿐 아니라 주격으로도 나타나는 일이 있습니다. (a)의 경우 안긴 문장 동사 ‘잡-‘의 목적어 논항이 목적격의 ‘파리를’로 실현됐는데, (b)는 주격의 ‘파리가’로 실현됐습니다. 이와 같은 구문을 언어학에서는 tough 구문이라고 부릅니다.
(a) 파리를 잡기가 어렵다
(b) 파리가 잡기가 어렵다
(a)를 분석하면 아래와 같습니다.
(b)를 분석하면 아래와 같습니다.
국어에서는 tough 구문을 허용하는 동사가 많지는 않다고 합니다. ‘쉽-‘, ‘어렵-‘, ‘수월하-‘, ‘힘들-‘ 같이 어렵고 힘듬을 나타내는 동사가 대표적입니다. 심리 동사 가운데 ‘싶-‘과 ‘싫-‘도 이 범주에 포함됩니다.
목적어의 인상 구문
‘영희는 철수를 바보로 생각한다’에서 ‘철수를 바보로 생각하-‘를 분석하면 아래와 같습니다.
이중주어문
아래 예시의 이중주어문은 각각 다음과 같이 분석할 수 있습니다.
(가) 철수의 손이 크다
(나) 철수가 손이 크다
분석 예시
지금까지 논의한 내용을 바탕으로 아래 문장을 다음과 같이 분석해볼 수 있습니다.
철수와 영희가 영수에게만 복종하였다
마치며
이상으로 한국어 파싱의 기본 원칙에 대해 살펴보았습니다. 논문을 읽고 정리하면서 저자의 실력에 여러번 감탄할 수밖에 없었습니다. 영어 파싱에 관해서는 여러 자료들이 많으나 한국어 파싱에 관해서는 이만한 논문이 없다는 생각이 듭니다. 개인적으로 모델만큼 언어학 공부를 많이 해야겠다는 다짐을 또한 하게 됐습니다. 한편 Recursive Neural Networks는 이러한 계층구조의 데이터를 입력으로 받는 대표적인 모델인데요, 자세한 내용을 알아보시려면 이곳 방문을 권해드립니다.
Comments