구문 분석(Syntax Parsing)이란 문장에서 단어들이 서로 어떤 관계를 맺고 있는지를 분석하는 과정입니다. 사람들은 문장을 읽을 때 단어의 의미뿐만 아니라 문법적 관계를 기반으로 문장을 이해합니다. 컴퓨터도 자연어를 효과적으로 처리하려면 문장 속 단어들이 어떻게 연결되어 있는지 파악해야 합니다.
구문 분석에는 크게 두 가지 방법이 있습니다. 바로 **구성 구문 분석(Constituency Parsing)**과 **의존 구문 분석(Dependency Parsing)**입니다. 두 방식 모두 문장의 구조를 분석하지만, 문장을 바라보는 관점이 다릅니다.
구성 구문 분석(Constituency Parsing)은 문장을 이루는 단어들을 ‘구(phrase)’, 즉 의미적으로 결합된 단위로 묶어내는 분석 방법입니다. 이는 문장을 마치 계층적인 트리(tree) 구조로 바라보는 방식으로, 각 단어가 어떻게 결합되어 더 큰 의미 단위를 형성하는지를 단계적으로 보여줍니다. 예를 들어, 영어 문장 “The student reads a book”을 분석해 보면, ‘The student”은 명사구(NP, Noun Phrase)로 ‘학생’이라는 개체를 나타내며, “reads a book”은 동사구(VP, Verb Phrase)로 ‘책을 읽는 행위’를 표현합니다. 이러한 구(phrase)는 다시 문장(S, Sentence) 전체를 구성하는 상위 단위로 결합됩니다. 즉, 구성 구문 분석은 문장을 “문장(S) → 명사구(NP) + 동사구(VP)” → (NP → 관사(Det) + 명사(N)), (VP → 동사(V) + 명사구(NP))”처럼 상위 구조에서 하위 구성 요소로 점차 분해해 나가는 과정입니다. 이를 통해 문장 내부의 구조적 관계, 문법적 역할을 시각적으로 파악할 수 있습니다.

이 접근법은 특히 어순이 고정적이고 문법 규칙이 비교적 명확한 언어(예: 영어)에서 효과적입니다. 그러나 언어의 구조가 유연하거나 격 표지가 발달한 언어(예: 러시아어, 한국어)에서는 단어의 위치보다 형태소 변화가 더 중요한 역할을 하므로, 단순한 트리 기반 구성 분석만으로는 문장의 의미 관계를 완전하게 포착하기 어렵다는 한계가 있습니다. 결국 구성 구문 분석은 문장의 계층적 구조를 시각화하고 문법적 패턴을 파악하는 데 유용하지만, 복잡한 어순 변형이나 문맥 의존성이 강한 언어에서는 이를 보완할 다른 구문 분석 기법과 병행할 필요가 있습니다.
이번 장에서 집중적으로 다룰 의존 구문 분석은 문장을 덩어리로 나누기보다는, 단어들 사이의 직접적인 관계를 중심으로 문장을 분석합니다. 이 방식에서는 문장 안의 중심 단어, 보통은 동사를 기준으로, ‘누가 그 행동을 하는지’(주어),’ 무엇에 대해 하는지’(목적어), ‘어떻게, 언제, 어디서 하는지’(부사 등)를 직접 연결해서 표현합니다. 예를 들어, 같은 문장 “The student reads a book”에서
의존 구문 분석은 문장을 구성하는 각 단어 간의 문법적 관계를 중심으로 구조를 분석하는 방법입니다. 즉, 문장을 ‘덩어리(구)’로 나누는 대신, 각 단어가 서로 어떻게 연결되어 있고, 어떤 단어가 다른 단어에 의존하는지를 밝히는 것이 핵심입니다. 문장의 중심이 되는 단어(보통 동사)가 루트(root)가 되며, 다른 단어들은 이 중심 단어를 기준으로 관계망처럼 연결됩니다. 이러한 분석 결과는 의존 트리(Dependency Tree)라는 형태로 시각화되며, 트리에서 각 단어는 하나의 노드(Node)로, 단어 간의 관계는 간선(Edge)으로 표현됩니다. 따라서 문장의 구조는 하나의 중심 단어(Head Word)를 중심으로, 그 주변의 단어들이 가지처럼 뻗어나가는 형태를 띠게 됩니다. 이러한 방식은 문장의 구문적 계층 구조를 표현하기보다, 단어 간의 관계 자체를 직접적으로 드러낸다는 점에서 특징적입니다.

의존 구문 분석은 위에서 살펴본 구성 구문 분석과 근본적인 접근 방식에서 차이를 보입니다. 구성 구문 분석이 문장을 ‘명사구(NP)’, ‘동사구(VP)’와 같은 구(phrase) 단위로 나누어 계층적으로 구조를 파악하는 데 중점을 둔다면, 의존 구문 분석은 문장의 핵심 단어를 중심으로 관계를 규명하는 방식을 취합니다. 다시 말해, 구성 구문 분석이 “문장이 어떤 구성 요소들로 이루어져 있는가”를 보여주는 구조 중심적 분석이라면, 의존 구문 분석은 “각 단어가 어떤 기능적 관계를 맺고 있는가”를 보여주는 관계 중심적 분석입니다. 또한 구성 구문 분석은 어순이 고정적이고 문법 구조가 명확한 언어, 예를 들어 영어와 같은 언어에서 잘 작동하는 반면, 의존 구문 분석은 어순이 자유롭고 격 표지가 발달한 언어, 즉 한국어나 러시아어처럼 단어의 형태 변화가 문법 관계를 결정하는 언어에서 특히 유용합니다. 이러한 이유로, 언어의 구조적 특징에 따라 두 분석 방식은 상호보완적으로 활용되며, 현대 언어학과 자연어처리 분야에서는 두 접근법을 결합하여 문장의 계층적 구조와 관계적 구조를 동시에 해석하려는 시도가 활발히 이루어지고 있습니다.