YZ ZONE

[자연어처리] 6.구문 분석 본문

IT/자연어처리

[자연어처리] 6.구문 분석

러블리YZ 2023. 2. 2. 18:52

구문 분석: 자연어 문장에서 구성 요소들의 문법적 구조를 분석하는 기술

문법적 구조 정보를 자동으로 추출함으로써 자연어처리 기술(기계번역, 정보 검색 등)에서 문장 의미의 분석을 돕는 세부 기술로 활용 가능

구문 문법(Construction Grammar)

:언어학에서 문법적 구성 요소들로부터 문자을 생성하고, 반대로 문장을 구성 요소들로 분석하는 분법

구문 문법을 정의하는 것은 구문 분석에서 중요한 요소 중 하나

구문 분석의 목표: 자연어 문장의 문법적 구조를 ‘구문 문법’에 따라 자동으로 분석하는 것

구문 문법을 정의하는 것은 곧 구문 분석을 통해 추출하고자 하는 문법 구조 정보를 정의하는 것

구문 분석 기술에서 대표적으로 할용되는 구문 문법

구구조 문법, 의존 문법

구문 중의성

구문 중의성(Syntax Ambiguity): 자연어 문장의 구문 구조가 다양한 방식으로 분석될 수 있는 특징

하나의 문장에서 가능한 구문 구조가 여러 개일 때 발생.

구문 중의성 해소를 위해서는 의미, 문맥 등 추가적인 정보가 필요.

구문 분석 결과가 잘못되었을 때 이후 단계들에 오류를 전파할 가능성이 있어 구문중의성 해소할 방법 필요.

ex) a. 내가 좋아하는 대상-친구

b.내가 좋아하는 대상 - 동생

구구조 구문 분석 - 규칙기반

구구조 구문 분석(Phrase Structure Parsing): 구구조 문법에 기반한 구문 분석 기술

단어들과 단어들로 구성한 절의 계층적 관계에 따라 문장 구조 분석.

문장 구성 요소의 구조가 비교적 고정적인 언어에 적합.

규칙 기반 구구조 구문 분석

인간이 가지고 있는 언어학적 지식을 컴퓨터가 이해할 수 있는 형태의 문법 규칙으로 미리 정의한 뒤 이를 자연어 문장에 정의함으로써 구문 분석 수행.

문법 규칙의 형태로 ‘구구조 문법’을 활용

구구조 문법(Phrase Structure Grammar): 자연어 문장을 하위 ‘구성소’들로 나눔으로 문장 구조를 나타냄.

구성소(Constituency):한 개의 단위같이 기능하는 일련의 단어들

구구조 문법의 구조

A→BC

구성소A가 하위 구성소 B와 C로 분석될 수 있음을 나타냄.

구구조 구문 분석 - 통계기반

통계기반 구구조 구문 분석: 통계적으로 확률적 구구조 문법을 계산하여 이를 바탕으로 구문 분석을 수행.

문법 규칙은 ‘확률적 구구조 문법’으로 표현. 각 규칙에 대한 조건부 확률이 정의됨.

A→BC[p]

p:구성소 A가 하위 구성소 B와 C로 분석될 조건부 확률.

확률적 구구조 문법 규칙의 두 가지 계산법

  1. 인간이 직접 태깅한 구구조 구문 분석 코퍼스로부터 각 규칙이 나타나는 조건부 확률 계산

코퍼스로부터 문법 규칙의 조건부 확률 계산식:

2. 태깅되지 않은 자연어 문장들에 구구조 구문 분석을 수행함으로써 문법 규칙들의 조건부 확률을 조정

문법 규칙들이 동일한 확률을 가지고 있다 가정한 뒤, 문장의 구문 분석 결과의 확률을 계산하고 이에 따라 조건부 확률을 조정.

Inside-outside 알고리즘: 이러한 방식으로 확률적 구구조 문법 규칙을 계산하는 대표 알고리즘

각 문법 규칙의 조건부 확률에 기반해 가능한 구문 분석 결과 전체의 확률 계산 가능.

구문 분석 결과 전체의 확률 계산법:

적용된 문법 규칙들의 조건부 확률을 모두 곱함으로 구문 분석 트리 전체의 확률을 계산.

자연어 문장에 대해 가능한 여러 구문 분석 트리 중 분석 결과의 전체확률이 가장 높은 걸 구문 분석 결과로 제시

확률 기반 구구조 구문 분석 방법에서 제기하는 구문 분석 결과:

구구조 구문 분석 - 딥러닝 기반

딥러닝 기반 구구조 구문 분석

: 인간이 구축한 구구조 구문 분석 데이터셋으로부터 딥러닝 모델을 학습해 구문 분석을 수행하는 접근 방법

자연어 문장의 표층 정보와 의미적 정보를 입력해 구성소들의 구조 예측

규칙기반, 통계기반 방법들을 기반으로 딥러닝 모델을 적용

대표적 방법: 전이 기반 파싱 (파싱=분석)

 

전이 기반 파싱(Transition-based Parsing)

:자연어 문장을 한 단어씩 읽으며 현재 단계에서 수행할 액션을 선택하는 방식으로 문장 전체의 구구조 구문 분석을 수행하는 방법. 대표적으로 이동-감축 파싱(Shift-Reduce Parsing)

 

각 전이 단계에서 선택할 수 있는 액션: 이동shift, 단항 감축unary-reduce, 이항감축binary-reduce

-이동 연산: 자연어 문장에 포함된 단어를 순차적으로 스택에 이동시키는 연산

-감축 연산: 스택에 저장된 하나 또는 두 개의 구성소를 꺼내 상위 구성소로 감축한 뒤 이를 다시 스택에 이동시킴

 

오라클Oracle: 각 전이 단계에서 어떤 액션을 선택할 것인지 결정

딥러닝 전이 기반 파싱에서는 RNN인코더로 계산한 자연어 문장 및 각 단어의 특징 벡터, 스택의 현재 상태등을 입력을 받는 이 오라클이 딥러닝 모델임

의존 구문 분석

자연어 문장에서 단어 간의 의존 관계를 분석함으로 문장 전체의 문법적 구조를 분석하는 기술

단어간 의존 관계와 그 유형을 분석함으로써 문장의 문법적 구조를 적합하게 표현하는 의존 분석 트리를 구축하는 과제로 볼 수 있음.

대부분의 의존관계 표현은 각 단어를 노드node로 하고 단어간 의존 관계를 에지edge로 나타내는 트리tree구조

의존 문법과 의존 구문 분석은 비교적 문장 구조가 유연한 언어에 적합.

의존 구문 분석 - 규칙 및 통계 기반

  • 규칙 기반 의존 구문 분석: 의존 문법의 형태로 문법 규칙을 저장한 뒤 이를 적용해 의존 구문 분석 수행

의존 문법: 자연어 문장에서 단어 간 의존 관계를 표현하는 구문 문법

지배소Head: 의존 관계 표현에서 절의 중심이 되는 단어

의존소Modifier: 절 내에서 지배소에 의존하는 단어

  • CG(Constraint Grammar):규칙 기반 의존 구문 분석을 위한 문맥 의존 규칙을 정의하는 문법
  • 통계적 의존 구문 분석
  • 문맥 의존 규칙의 조건부 확률을 통계적으로 계산해 의존 구문 분석에 적용함으로써 수행

의존 구문 분석 - 딥러닝 기반

딥러닝 기반 의존 구문 분석

:인간이 구축한 의존 구문 분석 데이터셋으로부터 딥러닝 모델을 학습하여 구문 분석을 수행

딥러닝 모델을 활용해 자연어 문장의 표층 정보 및 의미 정보로부터 가장 적합한 의존 분석 트리 구축

딥러닝 기반 의존 구문 분석 방법

1. 전이 기반 파싱 Transition-based Parsing

자연어 문장에 포함된 단어를 하나씩 의존 분석 트리에 포함시킴으로써 의존 구문 분석을 수행

 

2. 그래프 기반 파싱 Graph-based Parsing

자연어 문자에 포함된 단어 간의 가능한 모든 의존관계에 대한 점수score를 계산한 뒤, 문장 전체에서 가장 높은 점수를 갖는 의존 분석 트리를 선택하는 의존 분석 방법

딥러닝 모델을 통해 입력된 자연어 문장으로부터 각 의존 관계의 점수예측

단점: 가능한 모든 의존 관계들의 점수로부터 유효한 최적의 의존 분석 트리를 구축하기 위한 시간 복잡도가 높아 실사용 단계에서 비효율성이 발생할 수 있음

장점: 액션 선택 시 지역적 정보에 국한되는 전이 기반 파싱에 비해 문장 전체의 문법적 구조를 고려가능

규칙 기반 구문 분석 방법의 장단점

구문 분석 과제를 해결하기 위해 초창기에 제안된 방법

장점

미리 정의된 문법 규칙을 적용할 수 있는 문장에 대해서는 정확한 의존 분석 수행 가능

한계점

  1. 적용할 문법 규칙을 미리 정의하기 위한 시간과 비용 문제 발생
  2. 언어학적 지식을 직접 구구조 문법 형태로 정의해야 하므로, 언어학에 대한 전문성을 가진 노동력 요구
  3. 방대한 문법 규칙을 정의하는데 많은 시간과 비용 소요
  4. 수동으로 정의되지 않은 문법 규칙에 대해서는 구문 분석 수행 불가
  5. 자연어 문장의 중의성 처리시 문제 발생
    1. 하나의 문장이 생성 규칙 여러 조건을 동시에 만족해 구문 중의성을 가지는 경우에는 무엇이 가장 타당한지 판단할 수 없음

통계 기반 구문 분석 방법의 장단점

문법 규칙의 조건부 확률을 자동으로 계산

장점

구문중의성을 갖는 문장에서도 여러 구문 분석 결과 각각의 확률을 계산하여 예상되는 가장 타당한 구문 분석결과 선택 가능

단점

구문 분석 과정에서 요구되는 언어적 정보를 충분히 활용하지 못함

장거리 의존 관계를 고려하기 어려움

딥러닝 기반 구문 분석 방법의 장단점

장점

딥러닝 모델을 학습하여 구문 분석을 수행해 자연어 문장에 포함된 여러 정보 활용 가능

규칙기반과 통계기반 방법에서는 활용하기 어려운 문장 전체 구조정보, 어휘의 하위 범주화 정보 등을 특징 벡터의 계산에 반영해 구문 분석에 활용 가능

단점

딥러닝 모델의 학습 결과는 대량의 실수 파라미터들로 나타나므로 학습한 문법 규칙과 구문 분석 결과의 근거가 해석 불가능함