펌 : http://klpl.re.pusan.ac.kr/graduates/2008_2/iku88/Background.htm



2. 관련 연구


  이 장에서는 구문 분석에 대한 선행 연구를 살펴본다. 구문 분석기를 분류하는 기준 중 하나는 바로 사용된 문법(Grammar)이다. 구문 분석기는 기본적으로 특정 문법에 따라 그 기능을 수행한다. 다만, 이러한 문법들은 각기 고유한 특징이 있으며, 언어들이 가진 특징에 따라 적용할 문법을 잘 고르는 것이 구문 분석의 중요한 첫걸음이라 할 수 있다. 구문 분석에 주로 적용되는 문법은 구구조 문법(phrase-structure grammar), 범주 문법(categorial grammar), 의존 문법(dependency grammar) 등이 있다[4].
  구문 분석기의 문법을 구축할 때, 학습에 의한 자동적 방식인지 사람에 의한 수동적 방식인지도 구문 분석기를 분류하는 기준이 될 수 있다. 학습에 의한 자동적 방식은 정제된 대용량의 구문 분석 말뭉치가 필요하며, 확률이 비교적 적은 문법 규칙까지 포함, 문법 규칙의 수가 많은 경향이 있다. 사람이 직접 규칙을 만드는 방식은 많은 시간이 필요하며, 한국어 문법에 대한 높은 지식이 필요하다는 단점이 각각 있다.
  한국어 구문 분석기는 구문 분석의 기본 단위에 따라서도 분류할 수 있다. 영어는 하나의 어절이 거의 하나의 형태소이기 때문에 큰 상관이 없지만, 한국어는 하나의 어절이 하나 이상의 형태소로 이루어졌기 때문이다. 따라서 한국어 구문 분석기는 그 기본 단위가 형태소인지, 어절인지에 따라 구분할 수 있다. 전 세계적으로 기계에 의한 구문 분석이 가장 발전한 언어는 영어이다. 따라서, 2.1절에서 영어 구문 분석기에 대한 연구들을 먼저 살펴보고, 2.2절에서 한국어 구문 분석기에 대한 연구들을 살펴본다. 그리고 2.3절에서 그들의 문제점을 지적하고, 본 논문에서 제안하는 구문 분석기의 방향을 잡아 본다.

2.1 영어 구문 분석기

  영어는 대용량의 구문 분석 말뭉치가 구축되어 있다. 대표적인 것이 Penn tree-bank인데, 이 대용량 말뭉치를 이용해 다양한 확률 기반의 영어 구문 분석기가 구현되었다.
  E. Charniak의 immediate-head parsing model[22]은 파스 트리(parse tree)의 한 구성요소 c에서 하위 노드로 확장될 때, 구성요소 c의 head의 어휘정보를 조건부로 하는 확률에 따른다. 40단어 미만의 문장을 대상으로 E. Charniak의 immediate-head parsing model은 평균 90.1% LP(labeled precision)/LR(labeled recall)를 보이고 있다. M.Collins의 dependency-based parsing model[24]은 하나의 head와 이것과 관련된 여러 modifiers 사이의 확률적인 의존 관계를 고려한 모델이다. 40단어 미만의 문장을 대상으로 평균 88.6%의 LP/LR를 보이고 있다. 또한, 이들은 Collins의 기본 parsing model을 바탕으로 서로 다른 reranking 방법을 적용하였는데, Collins의 reranking 모델은 평균 90.3% LP/LR, Charniak의 reranking 모델은 평균 91.0% LP/LR의 성능을 나타냈다[8].

2.2 한국어 구문 분석기

  한국어는 주어, 목적어와 같은 문법 요소들의 생략이 빈번하며, 문장에서의 위치보다는 조사와 같은 기능어에 의해 결정된다. 이러한 특징 때문에, 한국어는 구구조 문법(phrase structure grammar)보다 의존 문법(dependency grammar)에 의한 분석이 더 적합하다[11]. 초기에는 한국어 구문 분석에 구구조 문법을 적용하기도 하였으나, 최근의 많은 한국어 구문 분석기는 의존 문법을 이용하고 있으며, 본 논문에서 제안하는 구문 분석기 역시 의존 문법을 이용한 구문 분석기이다.
  한국어에서, 하나의 문장은 하나 이상의 어절로 되어 있으며, 하나의 어절은 하나 이상의 형태소로 이루어져 있다. 대부분의 한국어 구문 분석기는 어절을 구문 분석의 기본 단위로 삼아왔다. 어절을 기본 단위로 삼으면, 기본 단위의 수가 형태소를 기본 단위로 삼을 때보다 훨씬 줄어들며, 이것은 곧 구문 분석 과정이 단순해 짐을 의미한다. 다만, 하나의 어절이 하나 이상의 형태소로 이루어졌으며, 이는 곧 하나의 어절이 실제 그것을 구성하는 형태소들의 조합에 의해 분류됨을 뜻한다.

  ‘선희는’이라는 어절이 있다고 하자. 이것은 ‘선희’라는 명사와 ‘는’이라는 보조사로 결합 되어 있다. 구문 분석을 위해서는 이 어절이 명사+보조사로 이루어졌다는 정보가 모두 필요하다. 이 어절은 ‘명사+보조사’ 정도로 분류될 수 있다. ‘옷의’라는 어절은 ‘명사+관형격조사’ 정도로 분류할 수 있을 것이다. 표 1은 [8]에서 사용한 전처리 단계 중 하나로, “선희는 현우를 일으켜 세워 옷의 먼지를 털어 주었다.”라는 문장을 형태소 분석한 후, 그것을 어절 단위로 묶은 결과를 보여준다.
  이처럼 하나의 어절을 분류하려면 하나 이상의 형태소 분류의 조합이 필요하며, 이것은 곧 형태소 기본 단위보다 그 분류 체계가 훨씬 커짐을 의미한다[20]. 분류 체계가 크다는 것은, 그것을 바탕으로 구축되는 문법 규모 역시 크다는 것을 의미한다. 이 경우, 필연적으로 문법 구축 역시 학습을 통해 이루어질 수밖에 없다. 사람이 수동적으로 구축하기에는 그 규모가 너무 크기 때문이다. 수동적으로 문법을 구축하려면, 분류 체계를 많이 쓰이는 순으로 적당한 수만 선택하는 방법도 있다. 하지만, 분류 체계의 수가 줄어드는 만큼 정확도 역시 떨어질 것이다.
  한국어의 어려운 점 중 하나로, 어절의 중의성을 들 수 있다. 하나의 어절이 하나 이상의 형태소로 구성되었으며, 하나의 어절은 하나 이상의 형태소 조합으로 분석될 수 있다. 예를 들어, ‘나는’이라는 어절은 표 2와 같이 분석될 수 있다.

  이러한 어절의 중의성은 한국어 구문 분석의 큰 장애 중 하나다. 하나의 문장이 3개의 어절로 되어 있고, 각 어절이 2개의 형태소 분석 조합으로 되어 있다고 하자. 이 경우, 구문 분석 입력의 가짓수는 8(2×2×2)개가 된다. 문장이 길어지면 길어질수록, 구문 분석 입력의 가짓수는 엄청나게 늘어나게 되어 구문 분석이 불가능에 가까워진다.
  이 문제점을 피하는 방법 중 가장 많이 쓰이는 것은 품사 태거를 이용하는 것이다. 대부분의 한국어 품사 태깅 시스템은 90% 이상의 성능을 보인다. 품사 태거를 사용하면 모든 어절의 중의성이 없어진다. 하지만, 그 결과는 100% 맞는 것이 아니며, 결국 품사 태거의 오답은 구문 분석의 오답으로 직결된다. 구문 분석을 아무리 잘해봐야 품사 태거의 성능을 뛰어넘지 못한다. 또한, 품사 태깅 자체가 구문 분석을 해야 정답을 찾을 수 있는 일도 있다. 
  “은지현의 확률적 차트 파싱에 기반한 한국어 의존 구조 분석기[8]”는 의존 문법을 사용하며, 어절을 기본 단위로 하고 있다. 구문 문법 규칙은 세종 말뭉치에서 사용된 1,189개의 규칙 중, 빈도수를 고려한 793개를 사용하고 있다. E.Charniak의 immediate-head parsing model[22]을 적용시켰다. 성능은 LP/LR 78.98%/79.55%이다.
  “Hoojung CHUNG의 A New Probabilistic Dependency Parsing Model for Head-Final, Free Word Order Languages[23]”에서 소개된 시스템은 어절 단위의 확률에 기반을 두고 있으며, 의존 문법을 사용한 확률 기반 구문 분석기이다. KAIST Language Resources 말뭉치를 사용하고 있으며, 성능은 Precision 85.00%, Recall 84.51%, F-measure 84.76%를 보이고 있다.
  “최선화의 형태소 단위의 한국어 확률 의존문법 학습[15]”에서 소개된 시스템은 형태소 단위이며, 확률 의존 문법을 사용하고 있다. 학습을 위해 KAIST의 트리부착 말뭉치 25,000문장을 사용했으며, 총 2,349개의 확률 문법 규칙을 발견, 적용했다. 성능은 69.77%이다. 최근 한국어 구문 분석에 대한 연구는 기본적인 구문 분석 방법론을 넘어서, 다양한 언어적 기법을 적용하고 있다. 이러한 연구들은 구문 분석 알고리즘과는 독립적으로 적용될 수 있는 추가적인 제약 규칙이다.
  “황선영의 구조적 중의성 해결을 위한 명사 수식 부사 연구[16]”에서 소개된 구문 분석기는 구구조 문법을 사용하고 있으며, 3만 문장으로부터 자동으로 추출된 2,600여 개의 구구조 규칙이 적용되었다. 거기에 명사 수식 부사에 대한 처리를 더하여 성능을 81.9%에서 83.6%로 향상시켰다.
  “김미영의 S-절 분할을 통한 구문 분석[3]”에서 소개된 시스템은 어절 단위이며, 의존 문법을 사용한다. 학습과 실험에 사용된 말뭉치는 Matec99(제1회 형태소 분석기 평가 대회)와 KIBS(국어정보베이스)의 일부분이다. S-절 분할을 통해 여러 개의 용언이 나오는 문장을 구문 분석 전에 분할하여 중의성을 줄였다. 성능은 정확도 87.38%, 재현율 87.60%이다.
  “박의규의 한국어 구문분석을 위한 구묶음 기반 의존명사 처리[7]”는 구문 분석을 수행하기 전, 의존명사들에 구 묶음(chunking)을 수행하여 모호성을 줄이는 기법을 소개하고 있다. 동아일보 2002년 기사를 수동 구축한 말뭉치 1,000문장을 사용했으며, 성능은 정확도 88.13%, 재현율 86.96%, F-score 0.8754이다.

2.3 한국어 구문 분석기에 대한 고찰

  선행 연구들로부터 알아낸, 한국어 구문 분석기를 구현할 때 고려해야 할 사항들은 다음과 같다.

    1) 사용할 문법
    2) 품사 태거 사용 여부
    3) 구문 분석의 기본 단위 - 형태소 혹은 어절
    4) 문법 구축 방식 - 확률 혹은 수동
    5) 추가적인 언어적 제약 기법

  각 사항에 대한 장단점을 보면서, 본 논문에서 제안하는 구문 분석기의 구현 방향에 대해 얘기해보겠다.

2.3.1 사용할 문법

  자연 언어 구문 분석을 위한 문법은 다양하지만, 그중에서 한국어 구문 분석에 가장 적합한 문법은 의존 문법으로 생각된다. 한국어는 주어, 목적어와 같은 문법 관계들이 문장에서의 위치와는 무관하기 때문에 어순이 자유로우며, 생략이 빈번하다. 의존 문법은 이러한 한국어의 특징을 반영하기에 적합하다. 따라서 본 논문에서는 의존 문법을 사용한 구문 분석기를 사용할 것이다. 다만, 의존 문법은 위치를 상관하지 않기 때문에, 그 구문 트리(tree)가 원래 문장과 많이 달라 알아보기 어려운 경향이 있다. 본 논문에서는 의존 문법에 구(phrase)의 개념을 도입하여 이를 해결했다. 원래 구는 구구조 문법에서 사용되는 것으로, 구문 트리에서 하위트리(sub-tree)를 표현하고자 사용되는 비단말 노드(non-terminal node)이다. 이를 적용하여 문법 규칙을 더 세분화하여 구축할 수 있었으며, 구문 분석의 결과가 의존 문법보다 이해하기가 더 쉬웠다.

2.3.2 품사 태거 사용 여부

  한국어는 어절의 중의성이 매우 크기 때문에, 거의 모든 한국어 구문 분석기는 품사 태거를 사용하고 있다. 이는 매우 효율적이지만, 품사 태거의 한계가 곧 구문 분석기의 한계로 이어진다. 이를 방지하고자, 본 논문에서는 품사 태거를 사용하지 않고, 가능한 모든 형태소 분석 조합에 대해 구문 분석을 시도한다. 또한, 중의성을 제거하고자 복합 명사의 구 묶음, 관용구 처리, 의존 명사에 의한 형태소 분석 후보 제거 등 다양한 전처리를 수행한다.

2.3.3 구문 분석의 기본 단위

  대부분의 한국어 구문 분석기는 그 기본 단위를 어절로 삼고 있다. 이 경우, 구문 분석 과정은 단순해지지만, 어절의 분류 체계가 커져 결국 문법 규칙의 수가 커지게 된다. 이는 곧 규칙을 수동으로 구축하기 어렵게 하며, 말뭉치를 이용한 학습 방법을 선택하게 한다. 다만, 아직 한국어의 구문 분석에 대한 말뭉치는 구축을 중심으로 진행되었으며, 그 검증이나 보완에 대한 연구는 미비한 실정이다[9].
  또한, 어절 단위의 구문 분석은 언어학적으로 자연스럽지 못한 구문 분석을 수행하게 된다. 예를 들어, “예쁜 집으로”를 분석할 때, 어절 단위는 [[예쁜][집으로]]로, 형태소 단위는 [[예쁜 집]으로]로 분석이 된다. 언어학적으로 형태소 단위는 깔끔하며, 어절 단위의 분석은 억지스럽다. 이와 같은 문제점을 피하고자, 본 논문에서는 형태소를 기본 단위로 구문 분석을 수행한다.

2.3.4 문법 구축 방식

  본 논문에서는 문법을 수동으로 구축하였다. 확률적 시스템은 정제된 말뭉치를 기반으로 구현되는데, 아직 국내에서는 기존에 구축된 말뭉치에 대한 검증이나 보완에 대한 연구가 미비한 실정이다[9]. 따라서, 본 논문에서는 사람이 직접 실제 자료(data)를 눈으로 보면서 의존 관계를 찾아냈다. 200개 정도의 의존 문법 규칙을 구축했으며, 이는 계속 보완이 이루어질 것이다.

2.3.5 추가적인 제약 규칙

  앞서 소개한 다양한 언어학적 제약 기법들을 반영했다. 본 논문에서 제안하는 구문 분석기는 형태소 단위에 품사 태거도 사용하지 않고, 그로 말미암은 중의성을 처리하고자 많은 기법을 적용했다. 전처리로 복합 명사와 관용구의 구 묶음, 보조용언과 어울리는 어미에 대한 처리 등 기존에 알려진 기법들이 적용되었으며, 실제 구문 분석 단계에서는 건너뛰기와 인접이라는 부가 설정을 새롭게 도입하였으며, 부사의 하위 범주화, 연결어미의 하위 범주화 등 품사 분류를 세분화하여 중의성을 줄이고자 하였다. 또한, 후처리로 동사의 논항 의미 정보를 적용하는데, 논항 사전의 일관성을 위하여 한국어 어휘의미망을 적용시키는 새로운 아이디어를 시도하였다.

'NLP > 의존 파서' 카테고리의 다른 글

의존 문법에 의한 한국어 파싱  (0) 2012.07.05
한국어 구문 분석 관련 연구  (0) 2012.07.05
문장 분석 (작성 중)  (0) 2012.07.05

+ Recent posts