이번 장에서는 구문 분석의 대략적인 분류와 이론을 다룬다.
A. 구구조 구문 분석
- 규칙 기반
- 통계 기반
- 딥러닝 기반
B. 의존 구조 구문 분석
- 구구조 구문 분석과의 차이
- 의존의 종류
- 분석 방법
C. 중의성
구구조 구문 분석
구구조란 문장의 요소들이 서로 짝을 지어 구와 절을 이룸으로써 형성되는 구조이다.
분석 방법으로는 규칙 기반, 통계 기반, 딥러닝 기반 분석이 있다.
규칙 기반 구구조 구문 분석
S → NP VP VP → V NP NP → DT NP |
S는 Sentence, NP는 Noun Phrase, VP는 Verb Phrase, DT는 Determiner를 의미한다. 이 문법 규칙을 'John hit the ball.'이라는 문장에 적용하면 위의 그림과 같은 분석 트리를 얻을 수 있다. 지금은 규칙이 간단하지만 규칙이 여러 개 더 있다면 가능한 분석 트리가 여러 개 생길 것이라고 쉽게 예측할 수 있다. 모든 가능 한 분석 트리를 구할 수 있는 가장 대표적인 방법인 CYK 알고리즘을 다음 장에서 자세히 알아본다.
통계 기반 구구조 구문 분석
통계 기반 방법에서는 먼저 위에서 다룬 문법 규칙 각각이 발생할 확률을 코퍼스에서 구한다. 예를 들어
S → NP VP [100%] VP → V NP [50%] NP → DT NP [20%] |
라고 가정한다면 'John hit the ball'에서는 위의 트리 그래프처럼 분석될 확률은 \( 100\% \times 50\% \times 20\% = 10\% \) 이다. 이 값이 만들어진 다른 구문 분석 트리에 대한 확률보다 크다면, 위의 분석 트리를 채택한다. 이를 식으로 나타내면
\( P(T|S) = \prod P({\alpha}_i \to {\beta}_i | {\alpha}_i) \) \( T\,'=argmax_T P(T|S) \) |
이다. S는 문장, T는 구문 분석 트리, \( {\alpha}_i \to {\beta}_i \)는 트리에서 적용된 \( i \) 번째 문법 규칙이다.
딥러닝 기반 구구조 구문 분석
많은 딥러닝 기반 구문 분석 방법들이 규칙 기반, 통계 기반 방법들을 기반으로 동작한다. 여러 방법 중 대표적인 방법으로는 전이 기반 파싱(Transition-based Parsing)이 있다. 이 방법에서는 자연어 문장을 기계가 한 단어씩 읽어가며 각 단계마다 어떤 액션을 취할 지 결정하는 데에 딥러닝 모델이 사용된다.
의존 구조 구문 분석
의존 구조의 관점에서는 단어들이 서로 의존 관계를 이루어 하나의 구문을 형성한다고 본다. 구의 배열이 영어에 비해 비교적 자유로운 한국어를 분석할 때 적합하다.
의존 관계 표현에서 절의 중심이 되는 구성소(constituent)를 지배소(head)라고 하고 지배소에 의존하는 단어를 의존소(dependent 또는 modifier)라고 한다.
'자연어처리 바이블'에서는 modifier을 쓰나 영문 위키피디아에서는 modifier 대신 dependent를 쓰더라...)
구구조 구문 분석과의 가장 큰 차이
구를 처음 나눌 때, 구구조 분석에서는 주어인 명사구(NP)와 서술어(predicate)인 동사구(VP) 두 개로 나눈다. 하지만 의존 문법을 제안한 뤼시앵 테니에르(Lucien Tesnière)는 이렇게 두 개로 나누는 것을 반대하며, 동사를 모든 구의 시작점으로 놓아야 한다고 주장했다. 테니에르는 NP와 VP로 나누고 시작하는 것이 논리학에 근거한 방법이고 언어학과는 관련이 없다고 역설했다.
의존의 종류
1. Semantic dependencies
2. Morphological dependencies
3. Prosodic dependencies
접사에 관한 의존 구조.
4. Syntactic dependencies
구문적 의존(syntactic dependencies)은 의존 문법 연구에서 주인공을 맡고 있는 녀석이다. 구문적 의존 관계로 어떻게 문장이 분석되는지 정확하게 답하는 것은 어렵다... 이 문제를 해결하기 위해 다양한 휴리스틱들이 개발되었다. 가장 비슷한 의미를 가진 구성소로 대체하기, 순서 바꾸기, 생략하기, 그리고 어원론적인 방법들도 제시되었다.
딥러닝 기반 의존 구문 분석 방법
- 전이 기반 파싱(Transition-based parsing) : 구구조 구문 분석에서처럼 한 단어씩 읽어가며 이동-감축 파싱을 진행한다. 딥러닝 모듈이 각 구성소끼리 의존하는지 여부를 판단한다. 문장 전체적인 정보를 얻기 힘들다는 단점이 있다.
- 그래프 기반 파싱(Graph-based parsing) : 가능한 모든 관계에 대한 점수를 계산하여 가장 높은 점수의 의존 트리를 선택한다. 시간복잡도가 높다는 단점이 있다.
중의성
Time flies like light. <<< 2가지 이상의 구조로 분석됨. 시간 파리가 빛을 좋아한다?
A man see a woman with a telescope on the hill. <<< 5가지 이상의 구조로 분석됨.
중의성을 해결하기 위해 구문 분석과 함께 의미 분석, 나아가 화용 분석이 필요하다.
'NLP lab > 엔엘피' 카테고리의 다른 글
ELMo (0) | 2022.03.12 |
---|---|
Word2Vec, GloVe, FastText 요약 (0) | 2022.03.12 |
계층적 소프트맥스(Hierarchical Softmax, HS) in word2vec (3) | 2022.03.11 |
Context Free Grammar, CYK(CKY) 알고리즘 (2) | 2022.03.01 |
오토마타 이론과 형식 언어 (2) | 2022.03.01 |