Skip to content

Latest commit

 

History

History
59 lines (32 loc) · 5.69 KB

형태소분석알고리즘(2).md

File metadata and controls

59 lines (32 loc) · 5.69 KB

2) 기분석 사전을 이용한 인접 조건 검사에 의한 형태소 분석

꼬꼬마 형태소 분석기는 [6]에서 제시한 '부분 어절에 대한 기분석 사전을 이용한 인접 조건 검사에 의한 형태소 분석 방법'을 이용한다. 음절 단위로 기분석 된 형태소를 1) 에서 설명한 동적 프로그래밍 방법으로 사전을 조회하면서 순차적으로 확장해 나가는데, 형태소가 결합될 수 있는지의 여부를 결합 조건을 이용해서 확인한다. 결합조건의 유형으로는 a) 품사 결합 조건, b) 음운 결합 조건, c) 형태 결합 조건가 있다.

a) 품사 결합 조건

품사 결합 조건은 한 어절에서 결합할 수 있는 형태소 품사들을 말하는 것으로 후위 형태소 앞에 올 수 있는 전위 형태소를 한정함으로써, 형태소 조합이 올바른 것인지를 확인한다. 예를 들어 어미 앞에는 용언(선어말 어미 포함)의 어간만이 올 수 있다. 또한, 조사 앞에는 체언이 와야 한다. 이같은 품사 제약 조건을 명시함으로써 불가능한 형태소 조합을 배제한다.

b) 음운 결합 조건

형태소가 결합할 때 특정한 음운 조건을 만족해야하는 경우가 있다. 예를 들어 조사 '를'은 앞에 오는 형태소의 마지막 음절이 종성을 포함해야 한다. 또한

c) 형태 결합 조건

꼬꼬마 형태소 분석기는 음절을 기준으로 형태소 분석을 수행하기 때문에 어미 'ㅂ니다', 'ㄴ인지'와 같이 음소 단위로 형태소가 이루어지는 경우에 대한 형태소 분석이 불가능해 진다. [6]에서는 이를 해결하기 위해서 실질적으로 음절 단위로 형태소를 구분하고, 나중에 음소 단위의 형태소가 복원될 수 있도록 하였다. 예를 들어 형태소 'ㅂ니다'와 같은 경우 '받침이 없는 용언의 어간'과 결합할 수 있는데, 이같은 받침이 없는 용언의 어간에 'ㅂ'을 결한한 형태를 미리 생성하고, 'ㅂ'이 결합되었다고 조건을 명시한다. 그리고 'ㅂ니다'는 '니다'로 형태를 바꾸고, 'ㅂ'이 결합한 용언의 어간과만 결합할 수 있다는 제약 조건을 준다. 이같이 하면 실제로 결합 시 '니다'는 실질적으로는 'ㅂ니다'라는 형태소로 복원되고, 음절 단위로 형태소 조합을 생성해 낼 수 있다.

조건 인코딩

형태소는 인접한 형태소에 의해서만 그 조합의 실제 출현 가능 여부가 결정된다. 따라서 기분석 후보간의 조합 가능 여부를 확인할 때에는 전위 기분석 후보의 마지막 형태소와 후위 기분석 후보의 첫번째 형태소에 의해서만 두 조합의 결합 가능성을 확인하면 된다. 후위 기분석 후보에서 전위 기분석 후보와 결합 가능한지를 확인하는데, 후위 기분석 후보는 결합 가능 품사를 OR조건으로 만족하는지 확인하고, 음운 결합 조건과 형태 결합 조건은 AND조건으로 결합 여부를 확인한다. 이같은 결합 조건 확인은 각 조건을 Bit단위로 인코딩 하고 전위 후보가 가진 조건과 후위 후보가 확인해야하는 조건간의 Bit Operation으로 빠르게 확인할 수 있다. 자세한 내용은 [6]을 참고하면 된다.

기분석 사전 구조

꼬꼬마에서는 규칙 기반으로 선호되는 형태소 조합을 찾기 위해서 세가지 조건에 4) 결합 선호 조건을 추가하였다. 최종적으로, 부분 어절 기분석 사전은 아래와 같이 표층어와 이에 대한 기분석 결과 및 결합 조건 정보를 가지고 있다.

  1. 표층어:{[형태소/tag+형태소/tag+...]#(tags)&(conds)@(conds)~(conds)¬(conds)%(conds)}

  2. #(tags): 부분 어절과 결합 가능한 품사들에 대한 정보를 가진다.

  3. &(conds): 현재 기분석 결과가 가지는 음운, 형태 조건을 나타낸다.

  4. @(conds): 현재 기분석 결과와 결합하기 위해서 이전 기분석 결과가 가져야 하는 음운, 형태 조건.

  5. ~(conds): 현재 기분석 결과가 결합하기 위한 후위 기분석 결과의 조건

  6. ¬(conds): 현재 기분석 결과와 결합하지 말아야 하는 음운, 형태 조건.

  7. %(conds): 현재 기분석 결과와 결합할 때 선호되는 조건. 확률 모델로 통합하여 적용 (2011-04-22)

여기서 ~(conds), ¬(conds), %(conds)는 꼬꼬마에서 추가된 것으로, 형태소의 결합 조건을 좀더 명확히 나타내기 위해서 추가하였다. 예를 들어 '끝음절이'ㄹ'이 아닌 받침을 가진'과 같은 조건을 나타내기 위해서는 @(자음)¬(ㄹ)로 나타낸다. 이는 [6]에서 제시한 방법으로는 표시할 수 없다. 또한 ~(conds)는 전위 분석 후보가 특정한 후위 후보와만 결합할 수 있음을 확인하는 것으로 전위 후보가 후위 후보 결합을 제한하도록 하기 위함이다. 예를 들어 'ㅅ'탈락 으로 활용된 용언의 어간은 후위 후보의 어미의 첫음절이 초성이 없는 즉 초성이 'ㅇ'인 경우에만 결합할 수 있다. 이같은 조건들은 사전에 각 기분석 후보가 적재되면서 자동으로 초기화 된다. 각 결합 조건에 대한 상세한 내용은 결합 조건 표를 통해 확인할 수 있다.

결합조건표

2018-11-28 11 26 562018-11-28 11 27 09

출처 : [꼬꼬마, 한글 형태소 분석기] http://kkma.snu.ac.kr/documents/index.jsp?doc=algorithm