CS224N - 4. Syntactic Structure and Dependency Parsing

­무무치킨자몽·2023년 11월 19일
0

CS224N

목록 보기
3/3

Syntactic Structure: Consistency and Dependency

Syntactic Structure: 문장을 하위 구조로 쪼개어 보는 것 (구문 구조)
구문을 쪼개서 분석하는 것이 NLP에서 중요한 이유는 기계가 자연어를 학습할 수 있도록 언어의 모호성을 줄여 의미를 명확하게 하기 위해서다.

Consistency (구성)

Context free grammers 방식으로 문맥과 상관 없이 문장을 이루고 있는 구성물들을 객체로 구분하는 것이다. 주어, 서술어, 부사어 등으로 구분한 다음 주어를 이루고 있는 단어들을 쪼개가면서 성분을 작은 단위의 객체로 나눠 분석하는 것이다.

Dependency (의존)

문맥적인 관계에 따라 문장의 구성물을 분석하는 것으로, 단어의 위치에 따라 parent, child 관계를 갖는 단어가 달라진다.

위와 같이 dependency 구조를 표현할 수 있다. 큰 단위의 객체에서 작은 단위의 객체로 쪼개지면서 잘게 쪼개져 나온 객체일수록 하위에 위치하도록 tree 구조를 만든다. 여기서 화살표의 tail은 상위 구조, head는 하위 구조를 의미한다.

Dependency Grammer and Treebanks

그럼 위와 같이 분석된 구문 데이터를 어떻게 활용할까? 구문 분석법이 적용된 후로 annotated data들이 많이 쌓였다. 많은 사람들이 parser(문장 구조를 분석하는 parsing 프로그램)를 만들었고 treebank는 공개 데이터로 공유되는 parsed 문장들이다. 사람 손으로 직접 parsing을 수행하는 것은 너무 비용이 많이 들기 때문에 treebank를 통해서 annotated data를 축적하는 것은 재사용성과 효율성 측면에서 좋다. 또 NLP 시스템이 제대로 parsing을 하고 있는지 평가하기에도 좋은 도구가 된다.

Dependency Conditioning Preferences

dependency parsing의 다양한 특징들은 다음과 같다.
1. Bilexical affinities
2. Dependency distance
3. Intervening material
4. Valency of heads

Projectivity


문장 내에서 단어의 위치가 도치되어 나타나는 경우가 있다. 이를 non projective하다고 한다. 도치된 문장의 의미를 그 이전의 문장과 동일하게 판별하기 위해서 이런 개념을 만든 것 같다.

Transition-based dependency parsing

초기의 dependency parser는 dynamic programming을 이용했으나 이는 경우의 수가 너무 많아지면서 시간적 비용이 기하급수적으로 늘어나는 단점이 있었다. 그 다음 방법으로는 Graph algorithm을 사용했는데 이는 문장을 이용해 minimum spanning tree를 만들고 dependencies를 ML classifier를 사용해 점수를 매긴다. 이를 이용해 parsing의 성능을 평가하면서 잘 만들어진 데이터를 만들 수 있었다. (ex. GNN-parser) 이외에도 유연한 Dependency 규칙을 적용하는 등의 시도도 있었다.

Greedy transition-based parsing

효율성을 추구하기 위해 transition step을 줄이고자 greedy 방식을 적용한 것도 있다.

Malt Parser

이는 알고리즘 내에서 왼쪽 탐색을 할 것인지 오른쪽 탐색을 할 것인지 선택하는 classifier이다. 모든 경로를 추적하는 것은 비효율적이기 때문에 ML classifier를 사용해서 다음 행위를 선택하도록 했고, 그 결과 복잡도가 O(e^n)에서 O(n)으로 내려왔다고 한다.

Conventional Feature Representation

기존의 Feature Representation을 언급하면서 Nivre가 만든 dependency parser를 설명했다.

위와 같은 방법들로 만든 parsing data를 평가하기 위한 방법은 다음과 같다.

Neural dependency parsing

엥? 다음에 마저 한다고 하신다. 개꿀....

profile
눈 앞에 치킨 무와 파닭 치킨과 자몽 주스가 있을 때 지었던 닉네임

0개의 댓글