구문 분석(Syntax Parsing)이란 문장에서 단어들이 서로 어떤 관계를 맺고 있는지를 분석하는 과정입니다. 사람들은 문장을 읽을 때 단어의 의미뿐만 아니라 문법적 관계를 기반으로 문장을 이해합니다. 컴퓨터도 자연어를 효과적으로 처리하려면 문장 속 단어들이 어떻게 연결되어 있는지 파악해야 합니다.
구문 분석에는 크게 두 가지 방법이 있습니다. 바로 **구성 구문 분석(Constituency Parsing)**과 **의존 구문 분석(Dependency Parsing)**입니다. 두 방식 모두 문장의 구조를 분석하지만, 문장을 바라보는 관점이 다릅니다.
구성 구문 분석은 문장을 구성하는 단어들을 **‘구(phrase)’**라는 의미 있는 단위로 묶는 방식입니다. 쉽게 말해, 문장에서 함께 어울리는 단어들을 모아 덩어리로 그룹화하는 것이죠.
예를 들어 영어 문장 “The student reads a book”를 생각해 봅시다.
이런 식으로 구성 구문 분석은 문장을 큰 덩어리부터 작은 덩어리로 차곡차곡 나누는 **나무/트리 구조(tree structure)**로 표현됩니다. 마치 문장을 퍼즐처럼 조각내고, 각 조각이 어떤 역할을 하는지 정리하는 것이라 생각하면 됩니다. 이 방식은 영어처럼 단어 순서가 중요하고, 문장이 비교적 규칙적인 언어에서 잘 작동합니다. 하지만 문장이 복잡해지면 분석해야 할 구조도 복잡해져서 처리하기 어렵거나 느려질 수 있습니다.
이번 장에서 집중적으로 다룰 의존 구문 분석은 문장을 덩어리로 나누기보다는, 단어들 사이의 직접적인 관계를 중심으로 문장을 분석합니다. 이 방식에서는 문장 안의 중심 단어, 보통은 동사를 기준으로,
‘누가 그 행동을 하는지’(주어),
‘무엇에 대해 하는지’(목적어),
‘어떻게, 언제, 어디서 하는지’(부사 등)
를 직접 연결해서 표현합니다.
예를 들어, 같은 문장 “The student reads a book”에서