KR100401466B1 - 자연어 검색 시스템을 위한 한글 스태머와 그 스태밍 방법 - Google Patents

자연어 검색 시스템을 위한 한글 스태머와 그 스태밍 방법 Download PDF

Info

Publication number
KR100401466B1
KR100401466B1 KR10-2000-0055858A KR20000055858A KR100401466B1 KR 100401466 B1 KR100401466 B1 KR 100401466B1 KR 20000055858 A KR20000055858 A KR 20000055858A KR 100401466 B1 KR100401466 B1 KR 100401466B1
Authority
KR
South Korea
Prior art keywords
rule
syllables
syllable
stem
rule table
Prior art date
Application number
KR10-2000-0055858A
Other languages
English (en)
Other versions
KR20020023543A (ko
Inventor
이효숙
Original Assignee
이효숙
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 이효숙 filed Critical 이효숙
Priority to KR10-2000-0055858A priority Critical patent/KR100401466B1/ko
Publication of KR20020023543A publication Critical patent/KR20020023543A/ko
Application granted granted Critical
Publication of KR100401466B1 publication Critical patent/KR100401466B1/ko

Links

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Machine Translation (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)

Abstract

본 발명은, 온라인/오프라인 정보검색 시스템 및 웹 환경에서 자연언어 텍스트 데이터베이스에 대한 검색성능을 향상시키기 위해 정보검색 시스템의 주요 모듈로 구현한 한글 스태머 및 그 스태밍 방법을 제공한다.
스태머는, 불용어 제거루틴에 의해 자동적으로 불용어를 제거한 후, 나머지 자연어 형태의 텍스트를 자동 처리한다. 그 처리단계는 크게 2가지 단계로 구분된다. 첫째로, 규칙테이블1과 규칙테이블2와의 매칭을 행한 후, 적용 과정을 순환적으로 진행하고, 고정 어간길이를 적용하는 기본 처리단계와, 둘째로, 2차 처리단계로서 현재 처리되어야 할 자연어 음절조건에 따라 규칙테이블3, 규칙테이블4, 어간사전, 어미파일 등과의 매칭을 순환적으로 진행하면서 규칙을 적용하는 단계로 구분된다. 불규칙 활용조건에 따라서는 다시 쓰기 규칙이 적용되어 자연어 텍스트에서 출현하는 다양한 형태의 어미를 제거한다. 결과적으로, 다양한 곡용에 의하거나, 규칙 또는 불규칙 활용에 의해 발생하는 어미부분이 제거된 어간으로 구성된 텍스트를 생성한다. 본 발명은, 한국어 자연어 처리시에 데이터베이스 및 질의어에 출현하는 단어의 형태적 변이체(word variants)를 시스템에서 자동적으로 스태밍된 형태로 모아 줌으로써, 검색의 재현율 증가, 질의어 확장, 텍스트 클러스터링, 자연어 텍스트 데이터베이스의 압축효과를 갖는다.

Description

자연어 검색 시스템을 위한 한글 스태머와 그 스태밍 방법 {KOREAN LANGUAGE STEMMER FOR NATURAL LANGUAGE SEARCHING SYSTEM AND STEMMING METHOD THEREOF}
본 발명은, 온라인/오프라인 정보검색시스템 및 웹 환경에서 자연언어 텍스트 데이터베이스에 대한 검색성능을 향상시키기 위해 정보검색시스템의 주요 모듈로 구현한 한글 스태머(Korean Language Stemmer), 및 그 스태밍 방법에 관한 것이다.
자연어 검색 시스템에 있어서 색인 및 검색시에 발생하는 주요한 문제 중의 하나는, 텍스트 데이터베이스에서 동일한 의미를 전달하는 단어가 형태적 변이체(word variants)를 갖는다는 점이다. 일반적으로, 한국어에서 단어의 형태적 변이체는 단어가 구성되는 음운적(phonological) 조건과 형태적(morphological) 조건에 의해 생성된다.
본 스태머의 개발은, 텍스트의 변화를 가져오는 형태론적 조건을 고려하여 이루어졌다. 예컨대, 한국어에서 어간의 끝의 조건이나 어미 형태에 따라 도 11에 나타낸 바와 같이 동사의 규칙 또는 불규칙 활용, 명사의 준굴곡에 따라 다양한 변이체를 갖는다. 이것은, 검색시 질의어와 문헌의 색인어가 정확히 일치하지 않으면 적합한 레코드의 검색이 누락되어 재현수준의 저하를 초래한다.
또, 문헌의 적합성 순위에 따른 순위화된 출력을 제공하는 정보검색시스템에 있어서는, 문헌레코드 상에 출현한 형태적 변이체를 검색시에 시스템에서 모두 고려하지 않으면, 출력순위에 영향을 미쳐 검색의 정확도를 현저히 저하시킨다. 사용자 인터페이스에서는, 전문용어에 대한 지식이 제한적인 사용자가 자연언어 질의어를 사용하여 검색하였을 때, 질의어로 사용되는 자연어 형태에 따라 검색결과에차이를 가져온다.
이러한 문제를 해결하기 위해, 온라인 정보검색 시스템에서는 전형적으로 전문탐색자가 탐색식 작성시 탐색전략의 하나로 단어의 우측, 좌측, 양측 절단에 의한 탐색어를 질문식으로 작성하여 이를 탐색에 있어서 사용하여 왔다. 그러나, 이 전략은 시스템에 의한 자동적 지원이 아닌 탐색자의 탐색 및 시스템 사용의 전문성이나 질문식 작성시에 사용하는 다양한 탐색전략에 따라 검색결과의 효과가 결정된다는 한계점을 갖는다.
상술한 바와 같이 통상의 정보검색 시스템에서는, 형태적 변이체를 갖고 출현하는 단어의 검색은 시스템의 색인어 매칭 알고리즘만으로는 해결되지 않는다.
본 발명에서 기초로 하는 가정은, 한 단어에서 의미적으로 유용한 정보는 어간 또는 어근에 존재하고, 어미의 변화는 단지 문법적인 목적을 위해 변화된다는 점이다.
본 발명은, 동일 어간의 변이체는 같은 의미를 전달하는 것으로 표층형태가 다른 한글 단어를 정보검색시스템에서 문헌에 대한 색인작성시, 탐색요구를 위해 자연어 형태의 질의어 작성시에 시스템이 자연어 텍스트 필드를 갖는 레코드와 사용자의 질의어에 대해 효과적으로 자동처리를 실행할 수 있는 한글 스태머 및 그 스태밍 방법을 제공하는 것을 목적으로 한다.
한글 스태머에서 어미란 한글단어에서 체언의 곡용에 따라 접미사와 조사가 사용되는 경우와, 용언 활용에 의해 생성되는 어미를 포함한다. 본 발명에 의한한글 스태머는, 시스템에 구현된 다양한 사전, 규칙 및 알고리즘을 사용하여 어간의 의미를 유지하고 다양한 어미를 제거하는 모듈로 구현되어 시스템에서 스태밍된 색인어를 자연어 정보검색에 사용하여 그 검색효과를 현저히 향상시킨다.
도 1은 본 발명에 따른 한글 스태머의 데이터흐름도,
도 2는 규칙테이블1의 구성예를 나타낸 도면,
도 3은 규칙테이블2의 구성예를 나타낸 도면,
도 4는 규칙테이블3의 구성예를 나타낸 도면,
도 5는 규칙테이블4의 구성예를 나타낸 도면,
도 6은 어간사전의 구성예를 나타낸 도면,
도 7은 어미파일의 구성예를 나타낸 도면,
도 8은 도 2의 규칙테이블1의 '도' 섹션의 예를 나타낸 도면,
도 9는 확장스태밍 1단계의 다시 쓰기 단계까지 진행한 후, 종료처리된 단어의 예를 나타낸 도면,
도 10은 본 발명에 따른 한글 스태머의 스태밍 알고리즘을 구체적으로 나타낸 도면,
도 11은 일반적인 형태적 변이체를 설명하기 위한 도면이다.
상기 목적을 달성하기 위해 본 발명에 따른 한글 스태밍 방법은, 자연어 한글 단어에 대한 스태밍을 하기 위해서 소정 종류의 문맥의존 규칙테이블을 설계하는 단계와, 상기 테이블을 시스템에서 순환적으로 호출하여 프로시쥬어에서 적용하는 단계를 구비하여 이루어진 것을 특징으로 한다.
또, 상기의 한글 스태밍 방법에 있어서, 다양한 불규칙 활용에 대한 처리를 위해서 어간사전 및 어미파일을 준비하는 단계를 더 구비하고, 조건에 따라 하나 이상의 매칭 방법을 적용하는 것을 특징으로 한다.
상기 매칭 방법은, 완전 매칭과 부분 매칭의 적어도 한쪽이다.
더욱이, 본 발명에 따른 한글 스태머는, 한글의 색인어 처리대상을 최소어간 길이 규칙을 적용하여 처리하는 처리수단과, 이 처리수단에 의해 처리된 색인어 처리대상을 현재 처리되어야 할 자연어 음절조건에 따라 소정의 규칙을 적용하여 처리하는 스태밍 수단을 구비하여 구성된 것을 특징으로 한다.
또, 상기의 한글 스태머에 있어서, 한글의 색인어 처리대상은 체언과 용언을 포함한다.
또, 상기 처리수단에서 적용하는 최소어간 길이 규칙이 고정어간 길이 규칙이고, 상기 스태밍 수단에서 적용하는 규칙이 문맥의존 어간길이 규칙이다.
(실시예)
본 발명의 실시예의 설명에 앞서, 본 발명이 청구하는 알고리즘에 포함되지는 않지만, 본 발명에 따른 스태머를 구동하기 전에 실행되는 불용어 제거루틴에 대해 참고적으로 설명하기로 한다.
불용어 제거루틴은, 본 발명의 알고리즘을 실행하기 전에 데이터베이스 탐색시에 적합한 정보를 검색하는데 유용하지 않을 것으로 시스템에서 예측된 단어 및 그 활용형태로 구성된 불용어 파일을 사용하여 본 발명에 따른 스태머를 구동하기 전에 질의어와 데이터베이스에서 제거하는 프로시쥬어이다. 이를 위해, 불용어 파일을 개발하고, 불용어 제거 프로그램을 작성하며, 불용어 제거 프로시쥬어를 호출하면 불용어 파일과 현재의 단어와를 비교하여 완전 매칭이 이루어진 단어를 삭제하는 알고리즘으로 구현되어 있다.
불용어 사전에 포함될 수 있는 후보 불용어의 수집을 위해 다음과 같은 정보원을 사용했다. 즉,
. 한글 문장의 부속성분에 속한 단어그룹
. 한국어 역순 사전에 수록된 해당 품사그룹에 포함된 단어그룹
. 기존 시스템의 불용어 파일의 참조
. 실험문헌 집단으로부터 추출된 후보 불용어
상기의 정보원으로부터 각 파일로 수집된 후보 불용어에서 중복 단어를 제외하고, 곡용 및 활용어미를 갖는 단어에 대해서는 각 용어에 포함되는 굴절형태를 모두 작성하여 최종적인 불용어 사전을 구성했다.
또, 후보 불용어 리스트로부터 최종 불용어로 선택하기 위해서, 다음과 같은 기준을 사용했다. 즉,
. 한글 문장의 부속성분에 속하는 부사, 관형사로서 무의미어: 어느, 저 등,
. 수사, 지정사, 보조동사, 대명사에 속한 단어: 하나, 없다, 아니하다, 그것이 등,
. 한글 문장의 주성분에 속한 품사영역의 단어이지만, 주제어로서 유용성이 낮은 단어: 어르신, 여짭다, 저쑵다, 조렇다 등.
반면에, 문헌집단에서 낮은 출현빈도를 보이고 주제어로서의 의미가 적은 단어로서 다음과 같은 단어가 후보 불용어로서 고려될 수 있으나, 일반적인 이용목적의 불용어 사전을 위해 다음과 같은 단어는 불용어 사전에 포함시키지 않았다. 즉,
. 의미의 섬세한 변조나 표현방식에 따라 결정되는 단어유형: 뽀얗다, 보얗
다, 하얗다, 새하얗다, 길다, 기다랗다 등,
. 사물이나 사람의 움직임 강세에 따른 다양한 표현의 단어유형: 끌어안다,
얼싸안다 등,
. 한글문헌의 실험 결과, 한국어 문장에는 한국어 표기에 의한 다수의 한자어가 사용되고 있음을 나타내었고, 이들 중에는 다음의 예에서 보인 바와 같이 다수의 동음이의어가 포함되어 있다. 예컨대, 적(enemy: noun), 적(non content-bearing: suffix); 성(sex: noun), 성(non content-bearing: suffix); 때(time: noun), 때(dirt: noun); 안(inner side: noun), 안(knew: verb) 등이다. 이러한유형의 단어는 불용어 사전에 포함시키지 않았다.
결과적으로, 총 2,469개의 단어로 구성된 최종 불용어사전을 구성했고, 이 사전은 스태밍 알고리즘에서 분석대상 단어그룹으로부터 불용어 후보를 제외하는 루틴에서 사용된다.
이하, 예시도면을 참조하여 본 발명의 실시예를 상세히 설명한다.
본 발명에 따른 한글 스태머는, 1차 처리단계와 2차 처리단계인 확장 스태밍 단계로 구성되어 있다. 입력된 텍스트의 형태론적 표층형태의 규칙 또는 불규칙성에 따라 1차 처리과정만 거친 후에 처리된 결과의 음절을 검색엔진에서 사용할 수 있고, 입력단어가 형태가 복잡한 활용형태인 경우 한글 스태머가 구현한 모든 하부 프로시쥬어를 모두 거친 후에 최종 결과로서의 문자열이 생성되어 검색엔진에서 사용할 수 있다.
본 발명의 상세한 처리과정은 다음과 같다.
먼저, 자연어 형태의 문자열이 시스템에 입력되면, 입력된 단어가 불용어인지를 체크하기 위해 불용어 제거루틴이 불용어 파일을 사용하여 불용어를 삭제한다. 그리고, 불용어 제거루틴이 실행되고 남은 음절에 대해 한글 스태머의 처리단계가 진행된다.
1차 처리단계는, 기본적인 어미 제거루틴으로 규칙테이블1에서 어미가 매칭되면, 고정어간 길이조건을 만족하는 경우에 한하여 규칙테이블1에서 매칭된 규칙이 적용된다. 규칙테이블1을 구성하는 각 규칙은 역순형태의 어미, 제거대상 음절, 규칙테이블2의 활성화, 규칙 적용의 순환적(iterative) 진행 또는 작업종료 등을 나타내는 요소로 코드화되어 있다. 1차 처리단계에서 규칙테이블1의 적용단계가 종료하면, 문맥의존적 처리단계로서 규칙테이블2의 적용단계로 진행된다. 규칙테이블2의 활성화는, 최초처리 단계에서 어미제거후 남은 어간이 시스템에서 정의한 조건, 즉 축약, 불규칙활용, 어간과 어미간에 또는 용언과 체언간에 음절의 표층형태가 동일한 경우 중 하나에 해당되는 경우로 규칙테이블2를 적용하여 과잉 스태밍 또는 과소 스태밍 결과가 초래되지 않도록 처리된다.
1차 처리단계에 의한 결과음절의 표층형태에 따라 한글 스태머는 확장 스태밍 단계로 진행된다. 확장 스태밍 단계는, 보다 복잡한 처리과정을 요하는 자연어 텍스트에 대해 시스템 알고리즘으로 구현된 조건의 체크와, 시스템에 구축된 다양한 사전의 조회, 다시 쓰기 규칙 등이 적용되어 정확한 스태밍 처리결과의 문자열을 생성한다. 확장 스태밍 단계에서는, 첫번째 단계로서 문맥의존적 최소어간 조건을 체크하여 시스템에서 정의된 다음의 3가지 경우중에 현재의 입력음절이 해당하는 루틴으로 진행한다.
입력음절이 1음절인 경우는, 규칙테이블3과의 매칭을 행한 후, 매칭된 규칙을 적용하여 결과를 찾아낸다. 반면에, 규칙이 탐색되지 않은 경우는, 시스템은 최종 처리결과로 현재의 입력음절을 출력하고, 작업을 종료한다.
기억장소에 있는 음절이 2음절인 경우는, 처리의 순서는 어간사전과의 매칭, 어미파일과 규칙테이블4와의 완전매칭, 규칙테이블5와의 매칭의 순서로 해당 조건에 만족되는 규칙을 적용하여 처리된다.
1차 처리루틴을 거친 후의 음절이 3음절 이상의 경우는, 현 문자열에서 1음절이 증가된 음절수에 해당하는 엔트리를 어간사전에서 부분 매칭기법을 이용하여 탐색을 진행한다. 부분 매칭이 된 엔트리가 탐색되면 현재 매칭된 엔트리에서 마지막 음절을 제외한 음절수까지 부분 매칭되는 엔트리를 최종결과로서 출력하고, 부분 매칭에 실패하면 시스템은 현재의 단어를 최종결과로서 출력하게 된다.
다음에는 도 1을 참조하여 상술한 사용자 자연어 질의어 처리과정을 구체적인 예를 들어 상세히 설명하기로 한다.
본 발명의 스태머가 구현된 시스템에서 검색결과가 출력되기 까지의 질의어처리, 데이터베이스 텍스트 처리, 질의어에 대한 데이터베이스 탐색결과의 과정을 요약하면 다음과 같다.
<질의어의 처리>
단계 결과
<최초질의어> ‘멀티미디어나 하이퍼미디어의 개발에 관한, 또는 하이
퍼텍스트 저작을 위한 저작도구에 관한 연구는'
<불용어 제거> 멀티미디어나 하이퍼미디어의 개발에 하이퍼텍스트
저작을 저작도구에
<1차처리>
R1 멀티미디어나 하이퍼미디어에 개발에
하이퍼텍스트 저작을 저작도구에
R2 멀티미디 하이퍼미디 개발 하이퍼텍스트 저작
저작도구
<2차처리>
멀티미디 하이퍼미디 개발 하이퍼텍스트 저작 저작도구
<데이터베이스상의 다양한 레코드의 처리>
스태밍전(before stemming) 스태밍후(after stemming)
멀티미디어에서 멀티미디
멀티미디아도
멀티미디어에
멀티미디어인
하이퍼미디어로 하이퍼미디
하이퍼미디어가
하이퍼미디어의
하이퍼미디어로
하이퍼미디어는
하이퍼미디어보다
하이퍼미디어를
개발도 개발
개발하기
개발하여
개발하였고
개발하였는데
개발하였다
개발이지만
개발된
개발은
하이퍼텍스트에서만은 하이퍼텍스트
하이퍼텍스트로
하이퍼텍스트들간의
하이퍼텍스트로서
저작면에서 저작
저작용
저작하기에
저작임을
저작하기도
저작도구상의 저작도구
저작도구까지
저작도구를
저작도구조차도
저작도구들을
데이터베이스 탐색엔진의 구동시에, 접근할 데이터베이스의 각 텍스트 데이터 레코드는 불용어가 제외되고, 자연어 형태의 각 음절이 문장에서의 활용, 곡용을 위해 사용되었던 어미, 접미사, 조사 부분이 모두 처리되어 단어의 핵심의미만을 전달하는 어간으로서 저장되어 압축된 텍스트 데이터베이스를 구축한다.
한편, 질의어와 데이터베이스와의 매칭처리는 다음과 같이 이루어진다.
시스템 탐색시에, 사용자는 탐색시스템에서 지원하는 검색논리(예컨대, 불리언 논리)나 용어에 대한 탐색전략을 잘 알고 있지 못하더라도, 사용자가 일상생활에서 사용하는 형태의 자연어 탐색문을 입력하면, 이에 대해 시스템은 데이터베이스처리시 본 알고리즘에 의한 순환적 처리과정을 거쳐 사용자의 질의어 문장을 각 탐색어의 어간으로 구성된 문자열로 생성한다.
검색 프로시쥬어는, 질의어의 문자열에 일치하는 레코드를 데이터베이스로부터 매칭하여, 시스템에서 채택한 검색알고리즘을 사용하여 사용자가 가장 만족할 것으로 시스템이 예측하는 순서대로 검색된 결과집합을 출력한다.
이상의 설명은, 도 1에 의거 본 발명의 스태머의 동작을 상세히 설명하기 위해 실질적으로 이용가능한 질의어 ‘멀티미디어나 하이퍼미디어의 개발에 관한, 또는 하이퍼텍스트 저작을 위한 저작도구에 관한 연구는’에 대한 검색 예를 보인 것이다.
여기서, 예로 든 해당 질의어내에는 2차 처리의 3.2 단계까지 진행을 필요로 하는 단어가 포함되어 있지 않으므로, 2차 처리의 3.1 단계에서 ‘어간 사전’조회를 통하여 단어를 처리한 후, 이것이 최종형태이므로 이어서 검색프로시쥬어(<질의어와 데이터베이스와의 매칭>)로 진행하는 것을 기술한 것이다.
도 1에는 <데이터베이스 상의 다양한 레코드의 처리>가 없지만, 이 부분이 포함된 것은 본 발명의 알고리즘은 질의어의 텍스트를 처리할 뿐만 아니라 데이터베이스의 텍스트 레코드에 대한 처리를 진행하고, 처리된 질의어와 처리된 텍스트 데이터베이스와의 매칭을 통하여 최종 검색결과가 시스템으로부터 출력되기 때문이다.
다음에는 도 2∼도 5를 참조하여 규칙테이블1∼4의 구성예에 대해 설명한다.
규칙테이블1:
규칙테이블1에 있어서, 각 규칙은 다음의 4가지 요소로 구성되고, 그 예는 도 2에 나타낸 바와 같다.
- 체언의 곡용 또는 용언의 활용시 어간에 부가되는 어미로서 어미사전에 수록된 음절의 역순형태의 어미;
- 선택적으로 채택된 심볼 ‘>>’로서, 본 발명을 위해 조사된 98가지의 경우에 해당하는 어미에 한하여 부가되어 규칙테이블2의 활성화로 진행;
- 제거할 어미의 음절수를 나타내는 0에서 9까지의 숫자;
- 조건을 만족하는 경우에 한하여 규칙의 순환적 적용을 나타내는 심볼 ‘>’;
예1) 도라이지4>까>>
시스템에 입력되어 앞에서부터 순차적으로 읽은 음절이 R1 파일을 탐색하여 찾은 규칙에서 음절의 형태인 ‘도라이지까’와 완전히 일치하면, 처음부터 4음절 [8바이트(byte)]을 삭제하고, R2 파일을 활성화하여 R2 파일에서 ‘까’로 시작하는 규칙을 탐색하라.
예2) 도라이테한5>
입력된 단어의 음절이 R1에서 탐색된 규칙 ‘도라이테한’과 완전히 일치하면, 처음부터 5음절을 삭제한 후, 다시 R1을 활성화하여 삭제되고 남은 음절의 첫 음절과 R1과의 매칭을 계속하라.
규칙테이블2:
규칙테이블2에 있어서, 각 규칙은 다음의 5가지의 요소로 구성되고, 해당 규칙이 매칭되면, 규칙에서 지시한 조건을 체크한 후, 규칙에서 정의한 액션(action)이 해당 프로시쥬어에서 진행된다. 규칙테이블2의 예는 도 3에 나타낸 바와 같다.
- 역순형태의 어미 또는 어미와 어간의 축약형태;
- 제거할 어미의 음절수를 나타내는 0에서 9까지의 숫자;
- 어미 또는 축약형 어미의 첫음절 바로 앞의 음절수를 나타내는 심볼 ‘~’와 ‘!’;
- 규칙테이블의 다른 규칙 적용의 계속 또는 종료를 지시하는 심볼 ‘>’,‘>>’ 및 ‘.’;
- 어미제거 후 대체해야 할 하나 이상의 음절
예1) 라!1>
1차 처리에서 넘어온 단어의 음절중 첫음절이 ‘라’로 시작하고, ‘라’앞의 음절을 읽어 1음절(2byte) 이상인 조건을 만족하면, 현재 읽은 어절의 순차적 첫음절에 해당하는 ‘라’를 삭제하고, R1을 활성화하여 매칭을 계속하라.
예2) 시~0.
1차 처리에서 넘어온 단어 어절의 첫음절이 ‘시’와 일치하고, ‘시’음절 앞에 음절이 없으면, 현재 읽은 음절을 그대로 읽어 임시 기억장소에 저장하라.
규칙테이블3:
이 규칙테이블은, 한국어에서 체언 및 용언이 단음절의 어간을 갖는 어절을 한국어 사전 및 형태론에 관한 저서/보고서 등에서 설명되고 있는 이들의 규칙성과 불규칙성을 조사하여 하나의 텍스트 파일로 포맷한 것이다. 이는 본 발명에 따른 스태머가 과소스태밍, 즉 삭제할 음절이나 철자가 남아 있는 채로 종료하는 오류를 가질 확률을 최소화하기 위해 설계된 것이다. 본 파일은 총 716음절의 한국어 단음절 어간으로 구성되어 있다.
예) 헌1헐.
2차 처리단계(확장 스태밍)로 들어온 단어 어절의 첫음절이 ‘헌’과 일치하면, 읽은 현재의 음절 ‘헌’을 ‘헐’로 변환하여 임시 기억장소에 저장하고, 현재의 프로시쥬어를 종료하라.
규칙테이블4:
이 규칙테이블은, 한국어에서 서로 의미가 다른 어간(예컨대, 풀 solve; 푸 draw)을 갖는 어절임에도 불구하고, 어간이 어미나 접미사를 만날 때 그 활용 형태가 동일한 표층형태를 갖거나(예컨대, 풀 will solve ; 풀 will draw) 또는 어미에 따라 구별되는 형태를 갖는 경우가 발생한다(예컨대, 풀어서 solve and; 퍼서 draw and). 또는, 단어의 클래스가 전혀 달라(예컨대, 체언, 용언), 용언은 활용형태를 갖는 반면, 체언은 그 형태가 활용되지 않는 경우가 있다(풀 will draw; 풀 a gum).
예1) 러누1렇
2차 처리단계로 들어온 단어 어절을 순차적으로 읽어 첫 2음절(4byte)이 ‘러누’와 일치하면, 첫 2바이트에 해당하는 문자열만을 ‘렇’으로 변환한 후, 전체 음절(4byte)을 기억장소에 저장하고, 처리루틴을 종료하라.
예2) 러슬2르스
2차 처리단계로 들어온 단어 어절을 순차적으로 읽어 첫 2음절(4byte)이 ‘러슬’과 일치하면, 읽은 모든 문자열(4byte)을 ‘르스’로 변환한 후, 이 어절(4byte)을 기억장소에 저장하고, 처리루틴을 종료하라.
다음에는 도 6 및 도 7을 참조하여 어간사전 및 어미파일의 구성에 대해 설명한다.
먼저, 어간사전에 대해 설명한다.
이 어간사전은, 어간이 2음절 이상이 되는 단어가 전단계의 처리과정에서 과대스태밍, 즉 삭제해서는 안될 음절이 초과 삭제처리된 경우의 보완을 위해서, 또한 체언이 용언과 동일한 음절을 갖음으로써 용언처럼 처리되는 오류를 발생시키지 않기 위해서 설계된 것이다. 어간사전은 별도의 포맷을 하지 않고, 텍스트 파일로 구성되어 완전 매칭이 가능하도록 하고 있다. 다만, 한국어 복합어의 경우, 해당 복합어를 엔트리에 포함시키는 것 외에 하나의 복합어가 하나 이상의 어간으로 구성된 경우, 이들을 각각의 어간으로 간주하여, 이들 어절도 어간사전에 포함시켰다. 어간사전의 개략적인 예는 도 6에 나타낸 바와 같다.
어미파일은, 시스템에서 어미파일 단독으로는 사용되지 않고, 반드시 규칙테이블3과 함께 사용되므로 처리조건 탐색시 이들 2파일의 조건을 모두 만족하는 경우에 규칙테이블3에서 매칭된 규칙이 해당 프로시쥬어에서 적용된다. 어미파일의 예는 도 7에 나타낸 바와 같다.
다음에는 한글 스태머의 개발과정에 대해 보다 구체적으로 설명하고, 상기의 규칙테이블1∼4, 어미파일 및 어간사전 등이 어떻게 작성되고 또한 어떻게 적용되는지에 대해 상세히 설명하며, 더욱이 이들 규칙테이블, 어미파일 및 어간사전을 통한 규칙의 적용에 대해서도 상세히 설명하기로 한다.1. 한글 스태머의 개발과정한글 스태머의 핵심기능은 한글 텍스트의 다양한 형태적 특성에 의한 자연어 문자열에서 어미를 제거하고, 단어의 핵심의미를 전달하는 어간으로 모아 주어 텍스트 압축효과와 데이터베이스 검색시 검색의 재현율을 증가시키는데 그 목적이 있다. 본 발명에 의한 한글 스태머는, 시스템에 있어서 1차적 처리단계에서는 음절형태의 어미제거와 어미제거후 어간의 형태를 복원하는 다시쓰기 처리가 진행되며, 확장 스태밍 단계에서는 이전 단계에서 처리된 텍스트 결과에 대해 문맥의존적 최소어간길이 규칙을 적용하여 어간과 어미의 형태적 조건을 체크하고, 각 조건에 따라 해당 규칙테이블의 규칙의 적용 및 사전 조회를 실행한 후 최종결과를 출력하고 있다.한글 스태머의 1차적 어미제거 루틴은 다음의 과정에 의해 개발되었다.첫째, 다양한 어미들의 유형과 어간의 규칙 및 불규칙 활용에 관한 텍스트 분석을 위해 실험 문헌집단에 출현한 모든 문자열을 자동 추출한다. 추출된 문자열집단에서 불용어를 제거한 후, 각 문자열의 마지막 음절이 첫음절이 되도록 역순으로 처리하여 정렬된 문자열로 구성된 자연어 텍스트에 대해 어미형태, 어간의 활용형태, 복합조사(compound particles), 한자어에서 유래된 조사에 관하여 분석한 후, 그 결과로서 최초의 1차적 어미 리스트를 구성한다.둘째, 동사 및 형용사 어간의 문자열에 대해 다음과 같은 특성을 분석한다: 단어 내에서 어간과 어미의 구분지점; 어간의 원형 복원; 음절이 아닌 자음음소(예: ㄴ, ㄷ, ㄹ, ㅂ, ㅅ, ㅎ)형태의 어미 리스트; 모음조화(예: 어간이 "l"로 끝나는 음절에 어미가 추가될 때 일어나는 모음조화); 어간과 어미의 축약형(예: ㅚ).셋째, 명사를 어간으로 하는 문자열에서 어간의 마지막 음절과 어미의 첫음절의 표층형태가 같은 어미에 대한 분석과 해당 어미 리스트를 생성한다. 이것은 시스템에서 어미가 제거되기 전에 어미의 첫음절이 어간의 마지막 음절과 같은 음절형태인지 자동 체크하는 루틴을 설계하고, 이에 해당하는 어미가 시스템에서 식별되어 처리될 수 있도록 하기 위해 수행된다.넷째, 동사 및 형용사 어간의 활용에 의해 음절의 형태적 변화가 일어난 경우는, 어미제거후 어간의 마지막 음절을 어간의 원형으로 바꾸어 주어야 하므로, 이를 처리하기 위해서는 우리말 동사·형용사 어간의 다양한 형태론적 변형 특성을 조사하여 다시쓰기 규칙이 적용된 규칙테이블을 구성해야 한다.1.1 최초 어미 리스트 생성자연어 문자열에 대해 스태밍 처리를 행하기 위해서는, 우리말 단어형성의 기본형태, 어간과 어미의 음절간의 모음조화, 어간의 모음과 어미의 자음이 결합된 단음절어, 어간에 추가되는 단순조사와 복합조사, 단일어미와 복합어미, 조사 및 보조사, 선행어미와 종결어미, 용언 어간의 불규칙 활용 등이 일어나는 단어의 처리가 효과적일 수 있는 어미 리스트를 시스템에서 사용할 수 있어야 한다.스태밍 처리시에 적용할 규칙테이블의 규칙을 구성하는 필수적 구성요소인 어미 리스트는 실험문헌 집단에서 출현한 개별 어미의 특성에 대한 조사와 개별 어미가 추가로 결합되는 특성을 고려하여 최초의 어미 리스트를 구성한다.최초의 어미 리스트를 생성하기 위해서, 실험 문헌집단을 자동 처리하여 이 문헌집단에서 출현한 어미의 특성을 조사하고, 이를 기초로 최초의 어미 리스트를 생성한다.1.2 규칙테이블1실험 문헌집단의 분석을 통해 나타난 한글 문헌에서 어미의 출현특성은 규칙테이블1의 개발에서 다음과 같은 중요한 사실을 나타낸다.첫째, 실험 문헌집단에 있어서 공통으로 높은 출현빈도를 보이는 어미 그룹이 있으며, 그 예로서 '의, 을, 에, 를, 이' 등의 단음절 형태의 어미가 전체 출현빈도에서 약 30%를 차지하고 있다. 반면에, 또 다른 그룹의 어미로서 한자어에서 생성된 어미인 '성, 적, 화' 등도 높은 출현빈도를 보이고 있다.둘째, 각 실험 문헌집단에서 중간빈도 분포(KRIST set 2.9%, KT set 2.4%; 여기서, KRIST는 한국과학기술원에서 생성한 테스트 콜렉션을 가리키는 것이고, KT는 한국연구개발정보센터 데이터베이스를 기반으로 생성한 테스트 콜렉션을 가리키는 것임)를 나타내는 어미 그룹에 속하는 어미에는 아주 다른 어미가 포함되어 있는 바, 텍스트의 주제분야에 따라 다른 어미가 다양하게 사용될 수 있다.셋째, 어미형태와 빈도특성을 조사한 실험에서 우리말 특성상 어미형태에서 다음과 같은 두 가지 특성을 나타낸다. 즉, 음절이 아닌 자음 또는 모음 형태를 갖는 어미가 사용되고, 사용빈도는 비교적 낮다. 우리말 텍스트에서 자주 사용되는 어미길이는 단음절 또는 2음절 형태의 것이 주류를 이루고 있다(KRIST set 내 90%, KT set 내 85.2%).상기의 특성과 관련한 우리말 문법에 관한 이론을 기반으로 모든 규칙이 구성되어야 하므로, 다음의 과정을 단계적으로 진행하였다. 자연어 형태의 우리말 문자열에서 다양한 형태적 변이체를 갖는 어미를 삭제하고, 핵심적인 의미를 전달하는 어간의 형태로 모아줄 수 있도록 하기 위해 김석득에 의한 우리말형태론(탑출판사 - 1994년), 김승곤에 의한 우리말 토씨에 관한 연구(건국대학교 출판부 - 1989년), 남기심, 고영근에 의한 표준국어문법론(탑출판사 - 1995년), 서태룡에 의한 국어 활용어미의 형태와 의미(탑출판사 - 1988년) 및 유재원에 의한 우리말 역순 사전(정음사 - 1987년) 등의 레퍼런스(이론서)에서 기술되고 있는 어미의 유형과 조사(postpositional particles)를 모두 수집하여 분석하였다.실험을 통하여 수집된 최초의 어미리스트에, 김승곤에 의한 우리말 토씨에 관한 연구(1989), 서태룡에 의한 국어 활용어미의 형태와 의미(1988), 유재원에 의한 우리말 역순 사전(1987) 등에서 설명된 조사 가운데 350개의 조사를 수집하여 최초의 어미리스트에 추가하였다. 이들 이론적인 기술내용이 각 규칙의 조건 설계를 위한 기반으로 되었다.최종 어미리스트는 1208개의 어미로 파일을 구성하였다. 각 어미에 대해 해당 어미를 제거하기 전과 후에서 다음 단계로 진행하기 전에 체크해야 할 조건, 예컨대 형태론적인 굴곡에 의한 변이체 어미(the inflectional variant suffixes), 종결어미 앞에 붙는 선행어미(pre-final endings) 등이 규칙의 적용 전에 조건을 체크한 후에 규칙을 적용하도록 규칙테이블을 구성하여 규칙테이블1을 생성하였다.규칙 적용의 알고리즘은 최장일치기법과 순환기법 가운데 우리말의 어미구조 특성, 즉 교착어(agglutinative characteristics)의 특성과 어미 추가시에 다양한 예외의 경우가 있는 특성을 고려하여 순환 알고리즘으로 설계하였다.1.3 규칙테이블2자연어 문자열은 1차적으로 규칙테이블1의 적용에서 어미삭제조건이 만족되어 어미가 제거되고, 결과 문자열은 우리말 어간의 형태를 갖는 경우와 그렇지 않은 경우로 구분된다. 후자는 복잡한 어간의 활용 및 어미의 변형에 의한 경우이므로, 이를 처리하기 위해서는 계속적인 처리루틴이 필요하다. 이를 위해, 한글 스태머의 1차 처리 단계에서는 최소어간길이 규칙을 적용하고, 다시쓰기 규칙을 고려하여 규칙테이블2를 구성하였다.1) 최소어간길이 규칙우리말의 단음절어 가운데는 두 개의 서로 다른 형태소가 합하여져 한 음절로 축약된 형태를 갖는 경우가 있다. 그와 같은 예로, '옴', '쉼' 등을 들 수 있다. 또는 동사나 형용사의 굴곡규칙(the same inflectional rule) 하에서 여러 가지 형태의 어미가 붙는 특성이 있는데, 이것은 어간의 마지막 음절 또는 자모에 따라 다수의 형태소 변이체를 생성하고 있다. 또한 이와 같은 변이체들은 형태소간의 경계를 구별하여 불규칙어간의 변형에 의한 어미형태를 시스템에서 식별하여 처리되어야 한다. 어미제거시 과소스태밍이나 과대스태밍을 피하기 위해 일차적으로 최소어간길이를 체크하여 어미사전의 어미 및 규칙을 적용하여야 한다.우리말 단어의 평균길이는 2.77음절로 보고된 바 있으며, 또한 우리말 단어가운데 2음절어와 3음절어가 차지하는 비율이 약 81%로 알려져 있다. 반면에, 문헌집단을 사용한 통계적 특성을 조사한 이전 실험에서는 명사어간의 평균길이는 2음절어, 동사 및 형용사 어간의 평균길이는 3음절어로 보고되어 있다. 그리고, 단음절 형태의 어간은 명사의 경우 약 0.82%, 동사나 형용사의 경우 약 3.2%이었다.이와 같은 특성을 고려하여 최소어간길이는 2음절로 결정하고, 이 최소어간길이의 적용은 알고리즘에서 규칙테이블이 활성화되어 처리할 단어와 매칭되는 규칙이 탐색되었을 때, 규칙의 적용 전에 우선 최소어간길이가 체크되도록 하였다.2) 다시쓰기 규칙불규칙 활용을 하는 어간은 어간의 마지막 철자에 따라 어미의 첫음절에 영향을 주어 어미형태를 변화시킨다. 또는 두 형태소 즉, 어간과 어미가 서로 영향을 주어 음절이 변화된다. 이와 같은 특성을 조사하여 다시쓰기 규칙의 개발시에 고려될 수 있도록 그 특징을 그룹화하여 분석한 후, 규칙데이블2를 구성하는 규칙에 반영하였다.우리말 단어에서 형태소는 어간의 마지막 글자와 어미의 첫 글자에 의해 영향을 받아 다양한 변이체를 갖는다. 변이체의 유형으로는 자모의 탈락, 매개모음의 생성, 축약형 어미의 생성, 다른 철자로의 변화 등이 있다. 이를 모두 고려하여 대표적인 35가지의 불규칙 굴곡형의 어간과 각 경우의 예외가 발생하는 어간을 조사하였다. 각 불규칙 굴곡형에 해당하는 단어는 우리말 사전을 참조하여 수집한 후, 이 특성을 규칙으로 표현하고, 이러한 규칙의 집합을 규칙테이블2의 기초로 하였다. 각 규칙은, 첫음절은 어간의 마지막 음절로서 스태밍할 단어의 끝음절과 규칙의 첫음절과 매치하여 규칙의 적용여부를 결정하도록 구성되어 있다.3) 규칙테이블2규칙테이블에서 매칭된 규칙을 적용하기 전에, 처리할 어미 바로 앞에 사용된 음절이나 철자를 체크하여야 하는데, 그 이유는 우리말 어간 가운데 다수의 어간은 그 마지막 음절이 어미의 첫음절과 동일한 음절이므로 매칭된 규칙의 시작 음절과 처리대상어미가 일치되어, 규칙을 적용하면 어간의 일부가 제거되어 과대스태밍의 오류를 초래하기 때문이다. 따라서, 동사나 형용사 어간의 마지막 음절로 사용되기도 하고, 또는 어미의 일부로 사용되기도 하는 음절을 조사한 결과, 이와 같이 사용가능한 음절로서 총 81개의 음절을 수집하고, 그 어간의 음절로서, 또는 어미의 변화형태를 조사한다. 그 예를 보면 다음과 같다.우리말에서 음절 '가'는 어미로 사용되기도 하고, 어간의 일부 음절로서 사용되기도 한다. 동사, 형용사, 명사의 어간에 모두 사용되는 사용빈도가 높은 어미로서 음절 '가'를 사용한 경우에 있어서는, '아가(baby: noun)', '잠가(soak: verb)', '빨가니(red; adjective)' 등의 예를 찾아 볼 수 있다.스태밍 알고리즘에서 다시쓰기 규칙을 적용하지 않고, 시스템에서 매칭된 규칙의 어미로서 인지하여 제거한다면, 이는 어미의 일부가 제거되는 과대스태밍의 결과를 초래하게 된다. 그러나, 규칙테이블이 다시쓰기 원칙을 고려하여 설계된 규칙인 경우에는, 명사 어간의 '아가'의 처리와 동사 어간의 '잠가', '빨가'의 처리를 구별해서 행해야 한다. 즉, 어간 '아가'의 처리시에는, 다시쓰기 규칙은 적용하지 않고, 또한 음절 '가'도 제외하지 않는다. 반면에, 동사 어간에 어미가 추가되어 활용형태를 갖는 '잠가'와 형용사 어간에 어미가 추가되어 활용형태를 갖는 '빨가'를 처리하기 위해서는, 어미 'ㅏ'를 제거하고, 어간을 생성하여야 하므로, 다시쓰기 규칙이 적용되도록 하는 규칙을 규칙테이블에 포함시키지 않으면 안된다.상기에서 설명한 예와 같이 어미의 첫음절과 어간의 마지막 음절이 동일한 음절을 모두 조사한 후, 각 어간에서 어미가 추가될 때 사용가능한 활용형을 조사하여 총 1621개의 규칙으로 구성된 규칙테이블2를 생성하고, 다음과 같은 특성을 갖는 어간과 어미의 처리를 행한다. 즉,- 어간에 어미가 합해진 축약음절 형태(예: 옴(coming); 어간 '오' + 어미 'ㅁ').- 어간이 불규칙 활용을 하여 어간의 형태소가 변화한 형태(예: 고운가보다(might be beautiful); 어간 '곱' + 어미 'ㄴ가보다').- 어간의 끝음절과 어미의 첫음절이 동일한 형태(예: 놀라고(surprise); 어간 '놀라' + 어미 '라고').- 의미가 다른 두 개 이상의 서로 다른 어간에 각각 어미가 붙어서 동일한 형태를 보이는 경우(예: 잘생긴(good-looking), 긴(long) 등).반면에, 규칙테이블이 가질 수 있는 한계점으로 어간에 자음어미 'ㄴ'이나 'ㄹ'이 붙은 활용형일 때, 원형이 다른 어간에 어미활용에 의한 어간과 어미 결합의 표층형태가 완전히 동일하므로, 시스템 및 사람에 의한 식별이 불가능하다. 이에 해당하는 약 20개의 단음절 어간 처리시에 한계가 있다. 그와 같은 예로서 팔(will buy), 팔(will dig), 푼(solved), 푼(drew) 등이 있다.이상과 같이 생성된 규칙테이블1과 2는 1차 처리단계에서 다음과 같이 순환(recursive) 알고리즘으로 실행된다.첫째, 처리하여야 할 단어가 입력되면, 불용어 사전과 비교된다. 이 비교결과, 불용어이면 불용어처리를 행하고, 불용어가 아닌 경우는 스태밍 처리를 행해야 할 단어로 읽어 들인다. 규칙테이블1과 비교하여 완전 매칭된 경우에는, 어미제거루틴을 실행하고, 현재 매칭된 규칙의 심볼에 따라 다음 단계로의 순환적 처리를 위해 규칙테이블1을 다시 활성화하여 다음 단계의 어미제거 루틴을 실행하거나, 또는 다음 단계의 스태밍을 위해 규칙테이블2를 활성화한다.둘째, 다시쓰기 루틴이 진행되는 단계로서, 규칙테이블2상에서 매칭된 규칙과 비교하여 다음과 같이 처리한다. 즉,- 규칙테이블2에서 적용할 규칙을 탐색하기 위해, 프로시쥬어에서는 규칙테이블의 각 규칙에 대해 순차적인 탐색을 진행하는데, 각 규칙의 첫음절과 현재 처리할 대상 텍스트의 마지막 음절을 비교하면서 순차탐색을 행한다.- 순차탐색의 결과, 매칭된 규칙이 있으면, 매칭된 규칙을 읽어 들임과 더불어 첫음절 다음에 오는 값을 읽어 들이고, 읽어 들인 값이 숫자인지, 심볼(~ 또는 !)인지를 체크한다.- 만일 읽어 들인 값이 숫자이면, 읽어 들인 숫자와 같은 수의 음절을 현재의 텍스트에서 제거한다. 반면에, 숫자와 숫자 앞의 값으로 ~ 또는 ! 중의 하나의 심볼이 있으면, 각 심볼이 나타내는 조건을 현재 처리할 자연어 텍스트에서 현재 음절의 바로 앞 음절을 조사하여 조건이 만족되는지를 체크한다. 조건이 만족되면, 규칙에서 정의된 숫자와 같은 길이의 음절수를 현재 처리하는 자연어 텍스트에서 제거한다.- 어미를 제거한 후, 규칙에서 숫자 다음에 오는 값을 읽어 들여 음절이 있으면 현재 읽어 들인 음절을 어미가 제거된 음절 위치에 대체한다.- 음절을 대체하고 난 후, 규칙의 다음 값을 다시 읽어 들여 처리를 계속하도록 하는 심볼이 있는지, 처리종료를 나타내는 심볼이 있는지를 체크한다. 만일 규칙에서 읽어 들인 값이 '.'이면, 1차 처리루틴은 종료된다. 반면에, 읽어 들인 심볼값이 '>'이면, 규칙테이블1이 활성화되어 스태밍 과정을 순환적으로 계속 진행하게 된다.1.4 어간사전자연어 텍스트가 어간과 어미의 결합형태를 갖는 경우는, 1차 처리 이후에도 다음 단계의 프로시쥬어에 의한 처리를 필요로 한다. 이를 위해, 어간사전은 다음과 같은 과정에 의해 구축하고 있다.사전구성을 위해 과학기술분야에서 사용되는 시소러스 파일(KORDIC)과 대학 도서관 온라인 목록(ELIS)에서 참조되는 명사리스트 파일을 대상으로 이들 파일에 포함된 명사 엔트리를 조사하였다. ELIS 파일의 조사결과, 해당 엔트리를 그대로 사용하기에 부적절하다고 판단하여 특수 분야에서 한정적으로 사용되는 명사 엔트리를 제외하고, 중복출현 엔트리를 삭제한 5,285개의 명사어를 재정렬하여 하나의 파일로 구성하였다.KORDIC 파일은 다음과 같이 가공처리되어 하나의 파일로 구성되었다. 각 엔트리에 대한 가공처리는 우리말 형태소로서 어간으로서의 적절성에 기준하여 엔트리가 복합명사의 형태를 갖거나, 두 개의 어간이 결합된 후 띄어쓰기를 한 엔트리 구조를 갖는 엔트리는 이들을 모두 분리한다. 분리된 단어를 정렬하여 데이터 파일을 작성하고, 복합어 엔트리에 대해서는 우리말 어간형식을 갖지 않는 단어군을 제외하고 복합어 형태의 엔트리는 붙여쓰기를 하고 정렬하여 어간 데이터 파일을 작성하였다. 이 두 파일을 정렬하여 어간사전으로 구성하였다.1.5 문맥의존 최소어간길이1차 처리가 종료된 후, 어간으로 남아 있는 음절의 길이와 조건에 따라 다음과 같은 세 가지의 경우로 나누어 각각 필요한 처리를 진행할 수 있도록 루틴을 설계하였다.1) 단음절이 경우에 속하는 문맥조건으로는, 음절의 어간이 규칙활용을 하는 단음절어(예: 잡 catch; 섞 mix), 단음절 명사 어간(예: 눈 an eye), 다양한 형태적 변이체를 가지면서 불규칙 활용을 하는 단음절어, 즉 모음탈락(예: 크 grow; 뜨 float; 푸 draw), 자음탈락(예: 날 fly; 불 blow; 낫 be better), 자음변화(예: 듣 hear; 싣 load; 눕 lie down), 어간과 어미의 결합에 의한 축약(예: 오 come; 베 be cut) 등이 있다.2) 2음절선행의 우리말 연구에 의하면, 2음절어 중 약 44%는 다양한 형태변화를 갖는다고 보고되어 있다. 따라서, 전단계에서 처리되고 난 후 2음절이 남았을 때, 단어의 형태론적 특성에 따라 다음과 같이 다섯 가지 경우 중의 한 경우에 해당하므로, 이를 처리하기 위한 다시쓰기 규칙의 추가 및 새로운 규칙테이블의 생성 등을 필요로 하고, 각각의 조건에 따른 처리를 할 수 있는 루틴의 설계를 필요로 하였다. 즉,- 불규칙 활용의 동사어간과 어미의 결합형.- 규칙 활용의 동사어간과 어미의 결합형.- 동사어간.- 명사어간.- 과대스태밍된 어간.새로운 루틴을 위해 다시쓰기 규칙을 설계하는 경우에 있어서는, 단음절 어간 또는 2음절 어간이 음절이 아닌 철자형태의 어미와 결합한 경우, 어미를 제거하고 어간의 원형으로 처리되도록 하는 규칙을 추가하였는데, 이를 위해 우리말 어간이 음절형태의 어미나 철자형태의 어미를 만나서 어간의 굴곡이 일어나는 모든 가능한 경우를 조사한 후, 이러한 조건 하에 있는 어미를 조사하였다.3) 3음절 이상한글 스태머에서는 순환 알고리즘으로 실행되므로, 처리할 텍스트의 현재 음절과 매칭되는 규칙이 있는 한은 음절길이가 2음절로 될 때까지 어미가 제거된다. 그러나, 처리결과가 3음절 이상의 음절 중에는 과소스태밍될 단어도 존재한다. 따라서, 이와 같은 문자열을 정확히 처리하기 위해, 어간의 마지막 음절과 어미의 첫음절이 동일한 경우에는, 이를 구별하여 어미를 제거하거나, 또는 어간으로 음절을 유지할 수 있도록 하는 루틴을 추가하고, 이를 위해 이에 해당되는 어미로 구성된 어미파일을 생성하였다.1.6 어미파일어미파일은 다음의 특성을 갖는 어미를 조사하여 2음절어나 3음절어의 과소스태밍과 3음절어의 과대스태밍 결과를 초래하지 않도록 구성하였다. 즉,- 동사 및 형용사 단음절 어간에 어미결합형(예: 벗고 take off).- 명사어간에 조사결합형(예: 꿈이 a dream is).- 불규칙 활용 어간에 자모 철자형태의 어미 결합형 또는 어간과 어미의 형태적 변이(예: 말라 be dry; 잘라 cut; 고와 be beautiful).- 어간의 마지막 음절과 어미의 첫음절의 일치형(예: 리액터 a reactor).이상의 경우를 해결하기 위해서는, 추가의 규칙테이블을 구성하는 것 이외에, 우리말에서 어간에 어미가 붙을 때 어미의 첫음절로 사용되는 모든 음절을 조사하여 이 정보를 시스템에서 사용해야 하므로, 총 141개의 어미로 구성된 어미파일이 생성되었다.1.7 규칙테이블3 과 규칙테이블4규칙테이블3은 단음절 어간의 처리에서 어미 바로 앞 음절의 조건에 따라 스태밍 처리를 하는 문맥의존 규칙을 적용할 때, 현재 처리 중인 단어의 어간이 단음절인지의 여부를 체크하고, 어간이 불규칙 활용에 의해 음절의 형태가 변화된 경우 어간의 원형으로 처리될 수 있도록 하기 위해 다음의 과정을 거쳐 개발하였다.우선, 우리말 역순사전(유재원, 1987), 우리말 형태론에 관한 저서(남기심·고영근, 1994; Lee, 1989; Sohn, 1994) 및, 연구논문(강승식, 1993)을 기초로 하여 우리말 어간으로 사용되는 단음절어와 어간의 활용예를 모두 조사하였다. 그 결과, 716개의 어간과 각 어간의 활용에 따른 변이체에 다시쓰기 규칙을 갖는 규칙테이블3을 구성하였고, 이 규칙테이블3은 한글 스태머에 의해 규칙테이블2의 적용에 의해 처리된 텍스트를 후속적으로 처리하기 위해 사용된다.규칙테이블4는 어간의 규칙 또는 불규칙 활용에 의해 활용형태가 표층구조는 동일하지만 서로 다른 어간인 경우 이를 식별하여 처리하기 위해, 또는 명사 어간과 동사 어간의 활용형이 표층구조가 동일한 경우 시스템에서 이를 식별하여 처리하기 위해 개발된 것이다. 규칙테이블4는 우리말 사전을 조사하여 상기의 형태론적 특징을 갖는 총 9,413개의 어간을 수집하여 규칙테이블로 구성한 것이다.규칙테이블3과 규칙테이블4의 각 규칙은 다시쓰기 규칙을 갖는데, 그 구조는 다음과 같은 4가지 구성요소로 구조화된다. 즉,- 2음절 이상의 어간 또는 어간과 어미 결합형 음절의 역순형태.- 제거 또는 다시쓰기 대상 음절수를 나타내거나 어간의 원형 유지를 지시하는 숫자.- 복원되어야 할 어간의 원형음절.- 처리종료를 가리키는 심볼.2. 한글 스태밍 알고리즘한글 스태머 실행에 의한 자연어 텍스트 처리과정을 요약하면 표 1과 같다.
단계 조건 규칙테이블/사전 처리내용
1. 1차 처리단계1.11.22.확장 스태밍 단계2.1 최초 입력된 자연어 문자열규칙테이블1 적용 후의 결과 음절1차 처리 결과의 단음절, 또는 1차 처리시에 최소어간길이를 만족하지 않는 단음절 규칙테이블1과 매칭규칙테이블2와 매칭읽어들인 단음절 형태 문자열과 규칙테이블3과 매칭 최소어간길이 조건을 체크하여 만족하면, 규칙테이블1과 매칭하여 매칭된 규칙을 적용하고, 구조화된 규칙의 마지막 요소를 읽어들여 조건에 따라 규칙테이블1을 다시 조회하는 순환적 처리를 행하거나, 규칙테이블2와의 매칭을 실행한다.규칙테이블2와 매칭하여 매칭되는 규칙이 탐색되면, 그 규칙을 적용하여 어미제거와 어간 다시쓰기를 실행한 후, 규칙의 마직막 요소를 읽어 들여 규칙테이블1의 조회, 또는 규칙테이블2의 조회 여부를 결정하여 루틴을 진행한다.매칭의 결과가 만족하면, 현재 매칭된 규칙을 문자열에 적용하여 처리된 결과를 출력하고, 만족하지 않으면, 문자열을 출력한다.
2.22.32.42.5 1차 처리 결과의 2음절2음절2음절3음절 이상의 문자 읽어들인 2음절의 문자열과 어간사전을 매칭현재 문자열의 끝음절과 어미파일을 탐색하여 탐색결과를 저장하고, 다음으로 첫음절과 규칙테이블3을 탐색하여 탐색결과를 저장한다.남은 문자열의 끝음절부터 규칙테이블4의 규칙과 비교탐색을 시작하여 두 음절이 완전히 일치하는 규칙이 있는지 탐색한다.어간사전에 대해 현재 문자열과 완전매칭, 또는 부분매칭된 엔트리가 있는지 이진탐색에 의해 사전상의 엔트리를 탐색한다. 어간사전의 각 엔트리가 현재 비교하는 2음절 문자열과 완전매칭하면, 현재 문자열을 결과로서 출력하고, 완전매칭하지 않으면 다음 루틴(2.3)을 실행한다.두 파일과의 매칭결과가 모두 만족하면, 현재 문자열의 끝음절을 제거한 후, 남은 문자열을 결과로서 출력하고, 만족하지 않으면, 다음 루틴(2.4)을 실행한다.매칭 결과 일치하는 규칙이 있으면, 현재 매칭된 규칙을 적용하여 처리결과를 출력하고, 일치하는 규칙이 없으면, 현재의 문자열을 결과로서 출력한다.완전매칭 엔트리가 탐색되면, 부분매칭은 실행하지 않고, 매칭된 엔트리를 출력한다. 완전매칭 엔트리가 탐색되지 않으면, 현재 문자열의 수보다 1이 증가한 길이를 현재 문자열의 길이로 하여 사전의 각 엔트리에 대해 첫음절부터 음절수를 하나씩 증가시키면서 문자열을 비교하여 현재의 음절수보다 1이 적은 음절수까지 부분매칭이 되면 매칭된 엔트리를 결과로서 출력하고, 부분매칭의 결과가 없으면 원래의 문자열을 결과로서 출력한다.
표 1. 한글 스태머 알고리즘 처리과정
본 발명에 따른 한글 스태머 알고리즘의 구현시에, 입력된 단어의 형태적 특성에 따라 5개의 규칙테이블을 순차적으로 모두 사용할 수도 있고, 형태론적 특성이 복잡하지 않은 단어의 경우는 처리에 필요한 단계까지 진행한 후, 현재의 규칙에서 액션으로 처리종료 심볼을 만나면 작업을 종료한다. 매칭된 규칙테이블 상의 규칙 중에서 현재 단어의 형태적 조건과 매칭되는 규칙이 더 이상 없거나, 규칙에서 처리종료를 가리키는 경우에는 처리를 종료하고, 그렇지 않은 경우에는 최소어간 조건이 만족될 때까지 루틴을 계속 진행한 후, 현재의 기억장소에 저장된 단어를 최종 처리결과로서 출력한다.
시스템에서 규칙의 적용을 위해서 컴퓨터가 규칙데이블의 구조를 인식하여 프로그램에서 명령한 대로 구동될 수 있도록, 각 규칙은 C언어의 구조체 타입으로 정의된다. 선언부에서 각 규칙테이블의 구조를 정의하고, 프로그램의 각 하부루틴에서 규칙의 적용조건을 체크한다.
각 규칙테이블(R1, R2, R3, R4), 어간사전 및 어미파일은, 알고리즘의 해당 루틴에서 필요한 처리단계에 적용하기 위해 호출되면, 해당 규칙테이블, 또는 현재 단어의 조건에 따라 하나 이상의 규칙테이블에서 규칙이 탐색되어 조건에 맞는 규칙이 매칭되면 규칙에서 정의된 액션이 실행된다. 실행되는 액션의 종류는, 음절제거, 현재음절의 유지, 음절 다시 쓰기, 처리후 현재의 규칙에서 호출하는 규칙테이블의 활성화, 처리종료 등이다.
형태론적 특성이 복잡하지 않은 단어의 처리를 처리중에 사용한 규칙테이블 중의 하나인 도 8과 관련하여 설명하면 다음과 같다.
입력단어의 마지막 음절과 매칭된 해당 섹션(‘-도’)에서 해당 규칙을 탐색하여 다음과 같이 적용하는 것은, 알고리즘의 1차 단계에서 진행되는 주요한 특성을 보여준다. 즉, 입력된 3단어 ‘전동기라도’, ‘온도’, ‘난로도’에 대해 ‘전동기라도’는 후보어미 ‘-라도’중 어미 ‘-도’를 적용하여 삭제하고, 규칙테이블2가 활성화된 후, 확장 스태밍 단계에서 조건을 조사하며, ‘-라’를 적용하여 어간으로 ‘전동기’를 출력한다. 입력단어 ‘온도’는 어미 제거루틴에서 규칙이적용될 수 있는지 조건을 탐색하는 단계에서, 최소어간 길이조건이 만족되지 않으므로 입력단어의 형태변화 없이 ‘온도’로서 출력된다. 단어 ‘난로도’에 적용가능한 후보어미는 ‘-로도’와 ‘-도’이다. 그러나, 후보어미 ‘-로도’의 적용은 최소어간 길이조건에 맞지 않으므로, 어미 ‘-도’가 채택된다. 규칙테이블1에서 삭제대상 어미 ‘-도’의 적용은 1차 단계가 아닌 규칙테이블2의 활성화(>>)를 지시하므로, 확장 스태밍 단계에서 조건의 만족여부를 조사한 후, 단어 ‘난로도’에 대해 어미 ‘-도’를 삭제하여 어간으로 ‘난로’를 출력한다.
알고리즘의 2차 단계인 확장 스태밍 및 다시 쓰기 루틴은 규칙테이블2의 적용으로 진행되며, 분석대상 단어는 1차 단계에서 단어의 일부 음절이 제거된 형태이거나, 형태를 유지한 입력단어가 된다. 확장 스태밍 및 다시 쓰기 루틴에 포함되는 세부적인 단계는 다음과 같다.
- 규칙테이블2에서 단어의 마지막 음절과 일치하여 매칭된 섹션에 직접 접근 한 후, 후보 규칙을 탐색하기 위해 섹션내에서 순차적으로 분석대상 단어의 음절과 규칙의 음절과를 비교하며 완전히 일치한 규칙이 탐색될 때까지 진행한다.
- 규칙이 탐색되면, 규칙에서 현재의 음절 다음 위치의 문자를 체크한다.
- 다음 위치의 문자가 숫자인 경우는 규칙에서 지시한 수와 동일한 크기의 음절을 분석대상 단어로부터 제거하고, 심볼인 경우는 매칭된 현재 위치의 음절 바로 전 위치의 조건을 조사하여 조건이 만족되는 경우에만 규칙에서 지시된 수만큼의 음절을 삭제한다.
- 해당 어미의 삭제 후에, 규칙에서 대체할 음절이 있는지를 체크하고, 대체할 음절이 있으면 이를 현재의 위치에 삽입한다.
- 음절을 대체하고 난 후, 현재의 규칙에서 대체음절 다음 위치를 읽어 작업의 종료 또는 계속 여부를 결정하고, 스태밍의 순환적 진행은 다음 중 해당하는 경우를 진행하도록 한다. 즉,
1차 단계로 되돌아가 다음 단계의 규칙을 적용하여 과정을 진행하는 경우;
규칙테이블2의 다른 섹션의 탐색을 계속하여 확장 스태밍을 진행하는 경우;
현재 분석중인 단어에 대해 스태밍 작업루틴을 종료하여, 어미의 제거 및 다시 쓰기 과정을 거친 후 현재 남아 있는 음절을 어간으로서 출력하는 경우 등이다.
확장스태밍 1단계의 다시 쓰기 단계까지 진행한 후, 종료처리된 단어의 예는 도 9에 나타낸 바와 같다.
다음에는 도 10의 한글 스태머 알고리즘을 그 번호순서대로 상세히 설명한다.
1. 고정어간 길이의 조건(2음절)을 적용하여 알고리즘에서 규칙테이블 R1 과 R2를 사용하여 처리된 현재의 단어에 대해 현재의 음절수를 조사한다.
2. 현재 처리해야 할 음절수가 1인 경우(case a)에는, 다음 단계(도 10의 3)로 진행하여 해당 규칙테이블에서 매칭되는 규칙을 만나면 규칙을 적용한 결과를 출력하고, 해당 규칙테이블에서 매칭되는 규칙이 없으면 현재의 단어를 출력한다.
현재 처리해야 할 음절수가 2인 경우(case b)에는, 다음 단계(도 10의 3)로 진행한다.
현재 처리해야 할 음절수가 3 이상인 경우(case c)에는, 해당 단계(도 10의4)로 진행한다.
3. 전 단계에서 받아들인 단어와 순차적으로 다음과 같이 진행한다.
만일 받아들인 단어의 문자열과 어간사전과 매칭하여 어간사전 상의 엔트리와 완전 매칭을 하면, 현재의 단어를 가지고 해당 단계(도 10의 7)로 진행한다.
그렇지 않은 경우에는, 즉 받아들인 단어의 문자열과 일치하는 엔트리가 어간사전에 없는 경우에는, 규칙테이블3과 현재 음절의 두번째 철자와, 또한 어미파일과 현재 음절의 첫번째 철자와를 비교하여 이들 2조건이 모두 만족하면, 해당 단계(도 10의 5)로 진행한다.
만일 상기의 조건 중 어느 하나라도 만족하지 않으면, 현 음절의 문자열과 규칙테이블4와의 매칭을 시작한다. 매칭 결과, 규칙테이블4 상에서 해당 규칙이 발견되면, 다음 단계(도 10의 5)로 진행한다. 해당 규칙이 탐색되지 않으면 해당 단계(도 10의 7)로 진행한다.
4. 현재 처리해야 할 음절수가 3 이상이어서 전단계에서 받아들여진 경우에는, 어간사전과의 매칭을 시작한다. 현재 비교하는 음절과 완전 매칭하는 엔트리가 어간사전에 있으면 해당 단계(도 10의 7)로 진행하고, 그렇지 않으면, 즉 해당 엔트리가 없으면, 단계 6(도 10의 6)으로 진행한다.
5. 현재 비교하는 음절과 규칙테이블에서 규칙이 탐색되고, 이것이 규칙에서 정의한 액션으로 문맥의존적 조건을 갖는 규칙인 경우에는, 현재 문자열의 조건을 모두 조사하여 규칙에서 요구하고 있는 조건을 만족하는지를 체크하여(예컨대, 현재 철자 앞의 음절수, 음절형태, 현재 음절의 삭제여부, 현재 음절의 다시쓰기), 조건을 만족하면, 규칙을 적용하고 해당 어미를 삭제한다. 그리고, 해당 단계(도 10의 7)로 진행한다.
현재 매칭된 규칙이 문맥의존조건을 정의하지 않는 규칙이면, 비교하고 있는 음절을 삭제하고, 해당 단계(도 10의 7)로 진행한다.
6. 현재의 음절수가 3 이상(도 10의 4)이어서 루틴으로 이 단계를 호출한 경우에는, 어간사전에서 해당 엔트리의 탐색을 행하기 위해, 2가지 타입의 매칭, 즉 완전매칭이나 부분매칭에 의한 탐색을 시작한다. 먼저, 현재 음절수(3음절)와 완전히 일치하는 엔트리가 있는지 없는지 어간사전을 탐색한다. 엔트리가 탐색되면, 다음 단계(도 10의 7)로 진행한다. 만일 탐색되지 않았으면, 현재 음절수에 1음절을 더한 수를 현재 문자열의 음절수로 저장한 후, 현재 저장된 수의 음절수보다 1음절이 작은 부분까지만 문자열을 비교하는 부분매칭을 실행하고, 조건을 만족하면 매칭된 엔트리를 저장하고 이를 처리된 문자열로서 출력한다.
7. 현재까지 처리되어 최종결과로 저장된 음절을 출력하고, 루틴을 종료한다.
또한, 한국어에 있어서는, 각 음절이 조합되어 하나의 어절을 구성하는 가운데 다양한 음운 및 형태론적 조건에 따라 규칙 및 불규칙 활용, 음절의 축약, 체언과 용언간의 동음이의어, 단음절어의 불규칙 활용 등이 발생할 수 있다. 따라서, 이러한 특성을 고려하여, 규칙테이블의 각 규칙은 처리할 단어의 음절과 각 규칙의 시작 음절이 완전히 일치하더라도, 적용하기 전에 무조건적으로 현재 음절의 앞 음절의 조건, 현재 음절의 음절수, 용언과 체언간의 구별을 위해 설계된 규칙 등의조건을 먼저 체크하도록 구성하고 있다.
이와 같은 조건이 만족되면, 1차 처리단계에서 최소어간 조건을 체크한 후에 규칙테이블 상의 규칙을 적용하며, 2차 처리 단계에서는 현재 처리하는 단어의 음절수를 체크하여 각 조건에 따른 프로시쥬어를 진행하도록 설계되어 있다.
본 발명에서는, 한글 스태머의 구현시에 1차 처리단계에서는 고정어간길이를 적용하고, 확장 스태밍에 해당하는 2차 처리단계에서는 문맥의존 어간길이를 적용하도록 하고 있다.
고정어간 길이의 적용이란, 알고리즘은 입력되어 처리될 단어에 대해 조건을 만족하는 한 순환적으로 해당 루틴(recursive routine)을 호출하여 실행한다. 그 과정에서, 현재 처리를 위해 저장된 음절수가 2이면 순환적 루틴에서 빠져 나와 2차 처리단계로 진행하도록 설계되어 있다. 이러한 설계는, 한국어 체언 음절수의 통계적 특성을 반영하여 1차 처리단계에서 우선적으로 고정어간 길이를 적용하도록 한 것이다.
이후 진행되는 2차 처리단계에서는 문맥의존 어간길이를 적용하는데, 이는 현재 처리해야 할 음절수를 기준으로 하여 해당 프로그램 루틴으로 진행하되, 동일한 음절수라 하더라도 현재 처리할 음절이나 현재 음절의 앞 음절의 형태론적 조건을 먼저 조사하여 이 조건과 규칙에서 정의하고 있는 조건이 완전히 일치하는 경우에만 규칙에서 정의한 액션을 취하도록 한 것으로, 현재 처리하는 단어의 문맥의존적 조건은 전술한 바와 같이 규칙데이블에서 정의되어 있다.
본 발명의 한글 스태머는, 유닉스 플랫폼/리눅스 플랫폼(Unix platform/ Linux platform)에서 실험적 정보검색 시스템으로 알려진 코넬대학교(Cornell University)에 의해 개발된 SMART 시스템(스마트 시스템)에 있어서, 한글 스태머가 검색성능에 미치는 효과를 평가하기 위해 우리말 문헌 집단과 질의어 집합을 사용하여 실제적으로 검색실험을 실시함으로써, 표준검색효율의 현저한 증대를 통계적으로 검증한 바 있다. 즉, 한글 스태머를 사용한 검색과 사용하지 않은 검색과의 통계적 검증결과, 단측 검증 유의수준 0.05에서 검색의 평균재현율, 평균정확률이 모두 현저히 향상되고 있음이 확인되었다.
한편, 본 발명은 상술한 실시예에 한정되지 않고, 본 발명의 요지를 이탈하지 않는 범위내에서 여러 가지로 변형하여 실시할 수 있음은 물론이다. 예컨대, 본 발명에 따른 한글 스태머는, 현재 일반적으로 사용되고 있는 검색엔진 등에 탑재되어 사용될 수도 있다. 이 경우에도, 전술한 바와 같이 검색효율을 현저히 향상시킬 수 있다.
이상 설명한 바와 같이 본 발명에 의하면, 온라인/오프라인 정보검색 시스템 및 웹 환경에서 자연언어 텍스트 데이터베이스에 대한 검색성능을 현저히 향상시킬 수 있는 한글 스태머를 제공할 수 있다.

Claims (6)

  1. 입력된 자연어 문자열에 대한 스태밍을 행하기 위해서 소정 종류의 문맥의존 규칙테이블을 설계하는 단계와,
    상기 테이블을 시스템에서 순환적으로 호출하여 프로시쥬어에서 적용하는 단계를 구비하고,
    상기 소정 종류의 문맥의존 규칙테이블을 설계하는 단계가,
    수집된 우리말 어미와 각 어미가 제거될 수 있는 조건으로 각 규칙을 구성하고, 이들 규칙을 구성하는 어미 표층형태로서 원형 어미, 형태적 변이체, 결합형 어미, 종결어미 등의 다양한 유형의 어미를 배열하여 된 규칙테이블1을 설계하는 단계와,
    어미제거 후 어간의 과소스태밍의 오류를 배제하기 위해 어간활용에 의한 어간 마지막 음절 또는 어간과 어미의 결합음절과 다시쓰기 규칙이 적용되어야 할 선행음절 조건, 다시쓰기 해당 음절수 및 대체되어야 할 음절, 상기 규칙테이블1 또는 당해 규칙테이블2의 순환적 적용조건 및 음절형태의 어미제거와 어미제거후 어간의 형태를 복원하는 다시쓰기 처리루틴 종료조건으로 구성된 규칙의 집합으로 이루어진 규칙테이블2를 설계하는 단계,
    어간의 음절과 어미와의 축약형태을 갖는 음절의 과대스태밍의 오류를 배제하도록, 이전 단계에서 처리된 텍스트 결과에 대해 문맥의존적 최소어간길이 규칙을 적용하여 어간과 어미의 형태적 조건을 체크하고, 각 조건에 따라 해당 규칙테이블의 규칙의 적용 및 사전 조회를 실행한 후 최종결과를 출력하는 확장스태밍 루틴에서의 어미제거 단계에서 해당 음절이 어간의 일부로 사용되는 음절인지 조회하기 위해 다양한 형태의 명사 엔트리를 정렬하여 이루어진 어간사전을 준비하는 단계,
    최소어간길이 조건의 적용에 의해 과소스태밍된 음절에서 어미를 제거하기 위해 확장 스태밍 루틴에서 조회되는 파일로서, 각 어미가 우리말에서 원형어미 또는 어간활용 및 곡용에 의한 어미로 어미의 첫음절로 사용되는 어미로 구성된 어미파일을 준비하는 단계,
    문맥의존규칙의 적용에 따라 불규칙 활용을 하는 단음절 어간의 처리시 매칭되는 파일로서, 각 규칙은 체언 어간 또는 어간 어미 축약에 의한 단음절 어간, 어간의 음절 다시쓰기 조건, 어간의 음절유지 조건, 대체음절, 규칙적용 종료를 나타내는 구성요소로 포맷된 규칙테이블3을 설계하는 단계 및,
    체언의 곡용 및 용언의 활용에 의해 표층구조는 동일하지만 원형이 서로 다른 어간에 대해 해당 음절, 처리대상 음절수, 처리 또는 원형 유지조건, 대체음절, 규칙적용 종료 등으로 구성된 규칙테이블4를 설계하는 단계를 구비하여 이루어지고,
    상기 소정 종류의 규칙테이블을 시스템에서 순환적으로 호출하여 프로시쥬어에서 적용하는 단계가,
    상기 입력된 자연어 문자열이 최소어간길이 조건을 만족하면, 이 입력된 자연어 문자열을 상기 규칙테이블1과 매칭하여 매칭되는 규칙을 적용하고, 규칙의 마지막 요소를 읽어들여 그 조건에 따라 규칙테이블1을 조회하는 순환적 처리를 행하거나, 혹은 상기 규칙테이블2와의 매칭을 행하는 단계와,
    상기 규칙테이블1을 적용한 결과음절을 상기 규칙테이블2와 매칭하여 매칭되는 규칙이 탐색되면, 그 규칙을 적용하여 어미제거 및 어간 다시쓰기를 행하고, 그 후 규칙의 마지막 요소를 읽어들여 규칙테이블1의 조회, 또는 규칙테이블2의 조회여부를 결정하는 단계,
    상기 규칙테이블1 및 상기 규칙테이블2를 적용한 결과의 단음절, 또는 상기 규칙테이블1 적용시 최소어간길이를 만족하지 않는 단음절을 상기 규칙테이블3과 매칭하여 매칭되는 규칙이 있으면 현재 매칭된 규칙을 그 문자열에 적용해 처리하여 출력하고, 매칭되는 규칙이 없으면 그 문자열을 그대로 출력하는 단계,
    상기 규칙테이블1 및 상기 규칙테이블2를 적용한 결과의 2음절의 문자열과 상기 어간사전을 매칭하여 어간사전의 각 엔트리와 현재 비교하는 2음절 문자열이 매칭되면, 현재 문자열을 결과로서 출력하고, 매칭되지 않으면 남은 문자열의 끝 음절로부터 상기 규칙테이블4의 규칙과 비교탐색을 행하여 그 2음절과 완전히 일치하는 규칙이 있으면 그 매칭된 규칙을 적용하여 처리하고, 규칙이 없으면 현재의 문자열을 그대로 출력하는 단계 및,
    상기 규칙테이블4를 적용한 결과의 3음절 이상의 문자열과 상기 어간사전을 매칭하여 그 문자열과 매칭되는 엔트리가 있는지 탐색하여 매칭되는 엔트리가 있으면 그 매칭된 엔트리를 출력하고, 매칭되는 엔트리가 없으면 그 문자열의 음절수보다 1 증가시킨 길이를 그 문자열의 길이로 하여 상기 어간사전의 각 엔트리에 대해 첫음절로부터 음절수를 하나씩 증가시키면서 문자열을 비교하여 현재의 음절수보다 1이 적은 음절수까지 매칭이 되면 그 매칭된 엔트리를 결과로 출력하며, 매칭이 되지 않으면 원래의 문자열을 결과로 출력하는 단계를 구비하여 이루어진 것을 특징으로 하는 한글 스태밍 방법.
  2. 제1항에 있어서, 조건에 따라 하나 이상의 매칭 방법을 적용하는 것을 특징으로 하는 한글 스태밍 방법.
  3. 제2항에 있어서, 상기 매칭 방법이 완전 매칭과 부분 매칭을 포함하는 것을 특징으로 하는 한글 스태밍 방법.
  4. 수집된 우리말 어미와 각 어미가 제거될 수 있는 조건으로 각 규칙을 구성하고, 이들 규칙을 구성하는 어미 표층형태로서 원형 어미, 형태적 변이체, 결합형 어미, 종결어미 등의 다양한 유형의 어미를 배열하여 된 규칙테이블1과,
    어미제거 후 어간의 과소스태밍의 오류를 배제하기 위해 어간활용에 의한 어간 마지막 음절 또는 어간과 어미의 결합음절과 다시쓰기 규칙이 적용되어야 할 선행음절 조건, 다시쓰기 해당 음절수 및 대체되어야 할 음절, 상기 규칙테이블1 또는 당해 규칙테이블2의 순환적 적용조건 및 음절형태의 어미제거와 어미제거후 어간의 형태를 복원하는 다시쓰기 처리루틴 종료조건으로 구성된 규칙의 집합으로 이루어진 규칙테이블2,
    어간의 음절과 어미와의 축약형태을 갖는 음절의 과대스태밍의 오류를 배제하도록, 이전 단계에서 처리된 텍스트 결과에 대해 문맥의존적 최소어간길이 규칙을 적용하여 어간과 어미의 형태적 조건을 체크하고, 각 조건에 따라 해당 규칙테이블의 규칙의 적용 및 사전 조회를 실행한 후 최종결과를 출력하는 확장스태밍 루틴에서의 어미제거 단계에서 해당 음절이 어간의 일부로 사용되는 음절인지 조회하기 위해 다양한 형태의 명사 엔트리를 정렬하여 이루어진 어간사전,
    최소어간길이 조건의 적용에 의해 과소스태밍된 음절에서 어미를 제거하기 위해 확장 스태밍 루틴에서 조회되는 파일로서, 각 어미가 우리말에서 원형어미 또는 어간활용 및 곡용에 의한 어미로 어미의 첫음절로 사용되는 어미로 구성된 어미파일,
    문맥의존규칙의 적용에 따라 불규칙 활용을 하는 단음절 어간의 처리시 매칭되는 파일로서, 각 규칙은 체언 어간 또는 어간 어미 축약에 의한 단음절 어간, 어간의 음절 다시쓰기 조건, 어간의 음절유지 조건, 대체음절, 규칙적용 종료를 나타내는 구성요소로 포맷된 규칙테이블3,
    체언의 곡용 및 용언의 활용에 의해 표층구조는 동일하지만 원형이 서로 다른 어간에 대해 해당 음절, 처리대상 음절수, 처리 또는 원형 유지조건, 대체음절, 규칙적용 종료 등으로 구성된 규칙테이블4,
    한글의 색인어 처리대상에 대해 최소어간 길이 규칙을 적용하여 음절형태의 어미제거와 어미제거 후 어간의 형태를 복원하는 다시쓰기 처리를 행하는 처리수단 및,
    상기 처리수단에 의해 처리된 색인어 처리대상에 대해 현재 처리되어야 할 자연어 음절조건에 따라 소정의 규칙을 적용하여 어간과 어미의 형태적 조건을 체크하고, 각 조건에 따라 상기 규칙테이블1∼4중 해당하는 규칙테이블의 규칙의 적용 및 사전 조회를 실행한 후 최종결과를 출력하는 스태밍 수단을 구비하여 구성되고,
    상기 스태밍 수단은, 상기 입력된 자연어 문자열이 최소어간길이 조건을 만족하면, 이 입력된 자연어 문자열을 상기 규칙테이블1과 매칭하여 매칭되는 규칙을 적용하고, 규칙의 마지막 요소를 읽어들여 그 조건에 따라 규칙테이블1을 조회하는 순환적 처리를 행하거나, 혹은 상기 규칙테이블2와의 매칭을 행하며,
    상기 규칙테이블1을 적용한 결과음절을 상기 규칙테이블2와 매칭하여 매칭되는 규칙이 탐색되면, 그 규칙을 적용하여 어미제거 및 어간 다시쓰기를 행하고, 그 후 규칙의 마지막 요소를 읽어들여 규칙테이블1의 조회, 또는 규칙테이블2의 조회여부를 결정하며,
    상기 규칙테이블1 및 상기 규칙테이블2를 적용한 결과의 단음절, 또는 상기 규칙테이블1 적용시 최소어간길이를 만족하지 않는 단음절을 상기 규칙테이블3과 매칭하여 매칭되는 규칙이 있으면 현재 매칭된 규칙을 그 문자열에 적용해 처리하여 출력하고, 매칭되는 규칙이 없으면 그 문자열을 그대로 출력하고,
    상기 규칙테이블1 및 상기 규칙테이블2를 적용한 결과의 2음절의 문자열과 상기 어간사전을 매칭하여 어간사전의 각 엔트리와 현재 비교하는 2음절 문자열이 매칭되면, 현재 문자열을 결과로서 출력하고, 매칭되지 않으면 남은 문자열의 끝 음절로부터 상기 규칙테이블4의 규칙과 비교탐색을 행하여 그 2음절과 완전히 일치하는 규칙이 있으면 그 매칭된 규칙을 적용하여 처리하고, 규칙이 없으면 현재의 문자열을 그대로 출력하며,
    상기 규칙테이블4를 적용한 결과의 3음절 이상의 문자열과 상기 어간사전을 매칭하여 그 문자열과 매칭되는 엔트리가 있는지 탐색하여 매칭되는 엔트리가 있으면 그 매칭된 엔트리를 출력하고, 매칭되는 엔트리가 없으면 그 문자열의 음절수보다 1 증가시킨 길이를 그 문자열의 길이로 하여 상기 어간사전의 각 엔트리에 대해 첫음절로부터 음절수를 하나씩 증가시키면서 문자열을 비교하여 현재의 음절수보다 1이 적은 음절수까지 매칭이 되면 그 매칭된 엔트리를 결과로 출력하며, 매칭이 되지 않으면 원래의 문자열을 결과로 출력하도록 되어 있는 것을 특징으로 하는 한글 스태머.
  5. 제4항에 있어서, 한글의 색인어 처리대상이 체언과 용언을 포함하는 것을 특징으로 하는 한글 스태머.
  6. 제4항 또는 제5항에 있어서, 상기 처리수단에서 적용하는 최소어간 길이 규칙이 고정어간 길이 규칙이고, 상기 스태밍 수단에서 적용하는 규칙이 문맥의존 어간길이 규칙인 것을 특징으로 하는 한글 스태머.
KR10-2000-0055858A 2000-09-22 2000-09-22 자연어 검색 시스템을 위한 한글 스태머와 그 스태밍 방법 KR100401466B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR10-2000-0055858A KR100401466B1 (ko) 2000-09-22 2000-09-22 자연어 검색 시스템을 위한 한글 스태머와 그 스태밍 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR10-2000-0055858A KR100401466B1 (ko) 2000-09-22 2000-09-22 자연어 검색 시스템을 위한 한글 스태머와 그 스태밍 방법

Publications (2)

Publication Number Publication Date
KR20020023543A KR20020023543A (ko) 2002-03-29
KR100401466B1 true KR100401466B1 (ko) 2003-10-11

Family

ID=19690028

Family Applications (1)

Application Number Title Priority Date Filing Date
KR10-2000-0055858A KR100401466B1 (ko) 2000-09-22 2000-09-22 자연어 검색 시스템을 위한 한글 스태머와 그 스태밍 방법

Country Status (1)

Country Link
KR (1) KR100401466B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101139469B1 (ko) 2010-03-25 2012-04-30 성중모 한국어사전

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08235187A (ja) * 1995-02-24 1996-09-13 Fujitsu Ltd 辞書検索システム
JPH11143861A (ja) * 1997-11-05 1999-05-28 Omron Corp 文字入力装置および文字入力方法、並びに記録媒体
KR19990042430A (ko) * 1997-11-26 1999-06-15 정선종 문장의 구조정보를 이용한 명사구 추출장치 및 그 방법
KR19990070636A (ko) * 1998-02-23 1999-09-15 윤종용 자연어의 품사 태깅 장치 및 그 방법
KR20000038079A (ko) * 1998-12-03 2000-07-05 정선종 대용량 말뭉치를 위한 통계학적 용례 추출 수단 및 그 방법
KR20000039018A (ko) * 1998-12-10 2000-07-05 이계철 한글로 표기된 외래어 코드화 방법 및 그를 이용한 검색 방법
KR100286650B1 (ko) * 1996-06-27 2001-04-16 이구택 테이블 구동방식에 의한 술부 양상류 생성방법

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08235187A (ja) * 1995-02-24 1996-09-13 Fujitsu Ltd 辞書検索システム
KR100286650B1 (ko) * 1996-06-27 2001-04-16 이구택 테이블 구동방식에 의한 술부 양상류 생성방법
JPH11143861A (ja) * 1997-11-05 1999-05-28 Omron Corp 文字入力装置および文字入力方法、並びに記録媒体
KR19990042430A (ko) * 1997-11-26 1999-06-15 정선종 문장의 구조정보를 이용한 명사구 추출장치 및 그 방법
KR19990070636A (ko) * 1998-02-23 1999-09-15 윤종용 자연어의 품사 태깅 장치 및 그 방법
KR20000038079A (ko) * 1998-12-03 2000-07-05 정선종 대용량 말뭉치를 위한 통계학적 용례 추출 수단 및 그 방법
KR20000039018A (ko) * 1998-12-10 2000-07-05 이계철 한글로 표기된 외래어 코드화 방법 및 그를 이용한 검색 방법

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101139469B1 (ko) 2010-03-25 2012-04-30 성중모 한국어사전

Also Published As

Publication number Publication date
KR20020023543A (ko) 2002-03-29

Similar Documents

Publication Publication Date Title
Zhou et al. Approaches to text mining for clinical medical records
Vijayarani et al. Preprocessing techniques for text mining-an overview
Sparck Jones Automatic indexing
EP0965089B1 (en) Information retrieval utilizing semantic representation of text
US5369577A (en) Text searching system
EP1508861A1 (en) Method for synthesising a self-learning system for knowledge acquisition for text-retrieval systems
US20050203900A1 (en) Associative retrieval system and associative retrieval method
JPS63231674A (ja) コンピュータによる形態論的テキスト解析方法
Schinke et al. A stemming algorithm for Latin text databases
Litkowski Syntactic Clues and Lexical Resources in Question-Answering.
WO2008059111A2 (en) Natural language processing
Arampatzis et al. IRENA: Information retrieval engine based on natural language analysis
Galvez et al. Term conflation methods in information retrieval: Non‐linguistic and linguistic approaches
Tanev et al. Exploiting machine learning techniques to build an event extraction system for portuguese and spanish
Strzalkowski Natural language processing in large-scale text retrieval tasks
Daille Terminology mining
Tambouratzis Automatic corpora-based stemming in Greek
KR100401466B1 (ko) 자연어 검색 시스템을 위한 한글 스태머와 그 스태밍 방법
Daille et al. Applications of computational morphology
Maheswari et al. Rule based morphological variation removable stemming algorithm
Smeaton et al. Using morpho-syntactic language analysis in phrase matching
Litkowski Question Answering Using XML-Tagged Documents.
POPOVIČ et al. Processing of documents and queries in a Slovene language free text retrieval system
Milić-Frayling Text processing and information retrieval
JPH0228769A (ja) キーワード自動生成装置

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20110927

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20120907

Year of fee payment: 10

LAPS Lapse due to unpaid annual fee