HAM is the best Korean lexical analyzer. It's correction ratio is about 99.9% for formal Hangul text and analysis speed is about 5,000 words/sec at pentium(200MHz). Analysis results are easily integrated to application program because it's interface is very simple. Allmost all the NLP researchers in Korea(including many rival team) agree that HAM is the best Korean lexical analyzer. Please, compare HAM with other Korean lexical analyzer! Then, you can really feel that HAM is the best Korean lexical analyzer. You may download shareware version of HAM.

HAM : 한국어 형태소 분석 라이브러리


국민대학교 컴퓨터학부 강승식

1. HAM(Hangul Analysis Module) 소개

문서에 포함되어 있는 keyword를 추출하려면 각 단어들을 형태소 분석에 의하여 keyword로서 가치가 있는 명사들을 추출한다. 이 때 형태소 분석 기법의 활용 정도에 따라 색인어휘집을 이용하는 방법, 기능어휘집을 이용하는 방법, 그리고 형태소 분석기를 이용하는 방법이 있다. 그런데 색인어휘집과 기능어휘집을 이용하는 방법은 자동색인 기능으로서 한계가 있기 때문에 최근에는 대부분 형태소 분석을 이용하는 방법을 취하고 있다. 한국어 형태소 분석을 기반으로 하여 자동색인 및 철자검사 기능까지 가능한 HAM(Hangul Analysis Module)은 자동색인에 매우 적합한 형태소 분석기를 이용하기 때문에 문서의 종류나 유형에 관계없이 문서에 나타난 keyword를 추출한다. 자동색인은 형태소 분석기의 성능에 크게 좌우되는데, HAM은 형태소 분석 및 자동색인 기능에 대하여 이미 한국어 정보처리에 종사하는 전문가들로부터 그 성능을 인정받고 있다. HAM의 형태소 분석 및 자동색인 기능은 다음과 같다.

(1) 한국어 형태소 분석 기능

▷ 한글 문서를 분석하기 위한 가장 기본적인 분석 기능

▷ 단어의 유형 인식

: 명사 + 조사, 용언 + 어말어미, 용언 + 선어말어미 + 어말어미, 용언 + 명사형어미 + 서술격조사 + 선어말어미 + 어말어미 등 : 모든 한국어 단어의 유형을 인식

▷ 단어를 구성하고 있는 각 형태소의 기본형과 품사 인식

▷ 복합명사 및 미등록어 처리 기능

▷ 명사 사전 관리 기능 : 불필요한 명사 삭제 기능

▷ 사용자 정의사전 관리 기능 : 미등록어 등록, 수정, 삭제 기능

▷ 전문용어 사전 관리 기능 : 전문용어 등록, 수정, 삭제 기능

▷ 기분석 사전에 의한 준말처리 기능

(2) 형태소 분석을 이용한 자동 색인 기능

▷ 한국어 형태소 분석기를 자동색인에 활용

: 단어 유형, 형태소 분리 및 품사 인식 정보 이용

▷ 복합명사 및 미등록어 추정 기능

: 복합명사를 구성하고 있는 단위명사의 추출 : 고유명사, 전문용어, 외래어, 신조어 등 사전에 수록되지 않은 명사 추정

▷ 효율적인 불용어 처리 기능

: 형태소 분석기를 이용함으로써 불용어의 활용 형태를 효율적으로 처리 : 한국어의 형태론적 특성을 이용하여 keyword 추출 오류를 최소화

▷ 사용자 정의 사전 및 전문용어 사전 관리 기능

▷ 불용어 사전 관리 기능 : 불용어 추가, 삭제 기능

▷ 특수색인어 사전 관리 기능 : 특수색인어 추가, 삭제 기능

2. HAM의 특징

▷ 범용 시스템을 지향한 한국어 형태소 분석기

: 모든 한국어 정보처리 시스템에 쉽게 활용 가능한 범용 형태소 분석기

▷ 한국어 처리에 적합한 방법론

: 한국어의 음절 특성을 이용하는 매우 효율적인 음절단위 형태소 분석 기법 : 한국어에서 발생하는 모든 형태론적 현상들을 고려하여 설계 및 구현 : 모듈화된 알고리즘과 프로그래밍 기법으로 확장이 매우 용이함

▷ 엄격하게 선정된 형태소 분석 사전

: 형태소 분석에 필요한 어휘만을 선별하여 수록한 형태소 분석 사전 : 불필요한 단어로 인한 과분석 오류 최소화

▷ 자동 색인에 가장 적합한 형태소 분석 결과

: 단어의 품사별, 유형별 분류의 단순화로 단순-명료한 분석 결과 제공 : 형태소 분석 결과의 모호성이 적으므로 자동색인에 매우 적합

▷ 강력한 복합명사 및 미등록어 추정 기능

: 타 시스템에 비해 매우 정확한 복합명사 및 미등록어 추정 기능 : 복합명사를 구성하고 있는 단위명사를 추출하여 색인 : 고유명사, 전문용어, 외래어, 신조어 등 사전에 수록되지 않은 명사 인식

▷ 효율적인 불용어 처리 기능

: 형태소 분석기를 이용함으로써 불용어의 활용 형태를 효율적으로 처리 : 한국어의 형태론적 특성을 이용하여 keyword 추출 오류를 최소화

▷ 특수 색인어 처리 기능

: '3.1절', '윈도95'와 같이 Ascii 문자가 포함된 단어의 색인 기능

3. HAM의 자동색인 기능 특징

(1) 색인 결과가 정확하다.

사전에 수록되지 않은 고유명사나 미등록어 추정 기능이 매우 뛰어나기 때문에 색인 결과가 매우 정확하다. 따라서 불필요한 색인어의 비율이 타 시스템에 비해 매우 적은 편이다. 또한 복합명사를 분해하는 기능이 타 시스템에 비해 월등히 우수하다.

(2) 색인 속도가 매우 빠르다.

인터넷 문서와 같이 대량의 문서를 주기적으로 색인하여 갱신해야 하는 경우에 색인속도는 매우 중요한 요소이다. HAM의 경우에 국내 다른 시스템과 비교할 때 동일한 조건하에서 최소한 3배 이상의 속도로 처리한다.

(3) 완벽한 형태소 분석을 기반으로 한다.

문서에 포함되어 있는 keyword를 추출할 때 형태소 분석 기법의 활용 정도에 따라 '색인어휘집'을 이용하는 방법, '기능어휘집'을 이용하는 방법, 그리고 '형태소 분석기'를 이용하는 방법이 있다. 그런데 색인어휘집과 기능어휘집을 이용하는 방법은 자동색인 기능으로서 한계가 있기 때문에 형태소 분석기를 이용하는 방법이 가장 널리 사용되고 있다.

한국어 형태소 분석기를 기반으로 하고 있기 때문에 문장분석 기능을 도입하여 주제어 추출로 발전시켜 자동색인의 quality를 높일 수 있다. 또한 형태소 분석 결과를 이용하기 때문에 간단한 철자 검사 및 교정이 가능하며, 다른 한국어 정보처리 응용 시스템에서도 공통으로 사용 가능한 융통성이 있다.

(4) 자동색인 기능에 매우 적합한 형태소 분석기를 사용한다.

HAM은 형태소 분석 결과를 단순-명료한 형태로 생성하기 때문에 구문 분석이나 기계번역 등 한국어 정보처리 시스템에서 활용하기가 쉽게 되어 있으며 특히 자동색인에 매우 적합하다.

4. HAM의 성능 평가

한국어 형태소 분석기는 분석 알고리즘과 단어 사전, 그리고 형태소 분리 규칙을 기반으로 하고 있다. 형태소 분석 방법론으로는 여러 가지 다양한 알고리즘이 제안되었고 초기에는 형태소 분석기마다 다른 알고리즘을 사용하였다. 그러나 1993년 이후에는 대부분의 형태소 분석기가 음절 단위 분석법을 사용하고 있고, 또한 형태소 분리 규칙과 다양한 언어 현상에 대한 처리 기법이 잘 알려져 있다. 따라서 형태소 분석에 성공하는 단어들에 대한 분석 결과는 크지 않으며, 단지 사전에 수록되어 있는 단어의 선정 방법에 따라 분석 결과에서 차이가 난다. 그러나 형태소 분석에 실패한 단어를 처리하는 방법은 형태소 분석기마다 다르며 명확한 방법론이 없기 때문에 복합명사와 미등록어에 대한 분석 결과는 차이가 매우 크다. 따라서 형태소 분석기의 성능 차이는 대부분 복합명사와 미등록어 추정 기능의 차이이다. 더욱이 한글 문서에서 복합명사 및 미등록어가 출현하는 비율은 문서의 유형에 따라 띄어쓰기가 잘되는 초등학교 교과서는 5% 정도이지만, 띄어쓰기가 잘 안되고 있는 신문기사나 인명이 자주 등장하는 소설과 같은 문서에서는 복합명사와 미등록어가 약 15%∼20%를 차지하기도 한다.

(1) 처리 속도

자동색인 시스템의 성능은 활용 분야에 따라 차이가 있으나 internet에서 웹문서를 색인할 경우에 색인속도가 매우 중요하다. 또한 앞으로 구문분석 기능이 활용될 경우에 처리속도가 느려지기 때문에 형태소 분석 속도가 빠른 것이 매우 유리하다. HAM의 처리속도는 컴퓨터 환경에 따라 차이가 있으나, 윈도95의 DOS창에서 실행했을 때 처리속도는 초당 약 4,500-5,000단어 정도이다.

- Pentium PC/200MHz, 윈도95 : 약 4,500--5,000단어/초

이 처리속도는 타 시스템과 직접적인 비교는 불가능하지만 약 1.5-3배 정도 빠른 속도라고 추정된다.

(2) 형태소 분석 및 자동색인 성능

HAM은 복합명사 및 미등록어 인식 기능이 뛰어나며 그 결과로 형태소 분석 성공률은 타 시스템보다 훨씬 좋은 99.46%이다. 특히, 자동색인에서 복합명사와 미등록어는 keyword로서 가치가 매우 높기 때문에 복합명사 및 미등록어 처리 기능이 자동색인의 성능을 좌우한다. 다음으로 형태소 분석기의 성능에 영향을 미치는 것은 분석 결과의 적합성 여부이다. 실제로 어떤 형태소 분석기는 한 단어에 대한 분석 결과가 10가지 이상 출력되는 경우가 발생하여 응용 시스템에서 활용하기 어려운 것도 있다.

(3) 복합명사 분해 성능

정보검색의 대상이 되는 한글 문서에는 붙여쓴 복합명사나 전문용어가 자주 등장하며 이러한 용어는 색인어로서 가치가 매우 높다. 그런데 검색시에는 단위명사를 검색하게 되므로 색인시에 '정보검색시스템'과 같은 복합명사로부터 '정보', '검색', '시스템'과 같이 단위 명사들을 분리해야 한다. 그런데 복합명사의 개수가 매우 많기 때문에 분리된 복합명사 사전을 구성하기가 불가능하다. 따라서 명사 사전에 수록된 단위 명사를 기반으로 복합명사를 분리해야 한다. 현재 타 형태소 분석기는 약 80%~90%의 복합명사 분해율을 보이고 있으며, 복합명사에 미등록어가 포함된 것과 10음절 이상 복합명사는 분해하지 못하는 경우가 많다. 그러나 HAM은 복합명사에 미등록어가 포함되어 있더라도 분해가 가능할 뿐 아니라 복합명사의 길이에 관계없이 분해가 가능하다. HAM의 복합명사 분해 성공률은 95%∼99%로 타 시스템에 비해 매우 높은 편이다. 또한 틀린 분해 결과에 대해서는 미등록 단위 명사를 사용자 사전에 추가하면 정확한 분해가 가능하다.

(4) 형태소 분석 결과의 적합성

HAM은 형태소 분석 결과를 단순-명료하게 정의함으로써 분석 결과의 평균 모호성이 1.3개로 모호성이 매우 적은 형태소 분석기이다. HAM은 형태소 분석 결과가 단순-명료하게 출력되고 있으며 자동 색인에서는 명사만 추출하면 되기 때문에 자동색인 기능으로 사용하기에 가장 적합한 형태소 분석기이다. 뿐만 아니라 HAM은 각 형태소에 대한 세부 정보를 가지고 있기 때문에 타 시스템에 비하여 구문 분석이나 이웃하는 단어와의 연관 관계를 파악하는 정보가 필요한 경우에도 지장이 없다.

(5) 호환성 및 안정성

HAM은 실용화된 정보검색 시스템 및 기계번역 시스템에서 사용되어 그 성능 및 안정성을 인정받고 있으며 연구용으로 공개함으로써 한국어 정보처리 전문가들로부터 그 성능을 인정받고 있다. 이에 비해 타 형태소 분석기들은 공개적으로 사용할 수 있는 것이 거의 없으므로 HAM과 직접적으로 비교-평가가 어렵다.

5. 타 형태소 분석기와 성능 및 특징 비교

▷ 한글의 특성을 이용한 효율적인 알고리즘

다른 시스템의 경우

복잡한 알고리즘 사용 ---> 구현 및 유지보수의 어려움 ---> 분석 속도 및 효율 저하

본 시스템에서는

한글의 음절 특성을 이용 : 효율적인 알고리즘 ---> 구현 및 유지보수가 쉬움 ---> 분석 속도 및 효율이 매우 뛰어남

▷ 엄격하게 선정된 사전의 표제어와 미등록어 추정 기능

다른 시스템의 경우

거의 사용되지 않는 많은 명사를 사전에 수록 ---> keyword 추출시에 과분석 오류가 자주 발생 ---> 복합명사 및 미등록어 추정이 어려움

본 시스템에서는

형태소 분석을 위한 사전 구성 ---> keyword 추출시 과분석 오류 최소화 ---> keyword 추출의 질(quality)을 높임 ---> 복합명사 및 미등록어 추정이 용이함

▷ 사전의 구조 및 사전 정보를 단순화시킴

다른 시스템의 경우

세분화된 품사 정보(200∼300가지)를 사전에 수록 ---> 대부분 형태소 분석 응용 분야에 불필요 ---> 형태소 분석 알고리즘이 복잡하고 유지보수가 어려움

본 시스템에서는

단순화된 품사 정보(10∼20가지)를 사전에 수록 ---> 형태소 분석에 필요한 정보만 수록 : 효율 개선 ---> 분석 효율 증가 및 유지보수가 쉬움

다른 시스템과 비교하여 HAM이 특히 우수한 점

가장 빠른 속도로 가장 정확하게 분석

가장 정확한 형태소 분석 결과 : 분석 성공률 99.46% 타 시스템에 비하여 오분석률이 매우 낮음 타 시스템에 비하여 1.5∼4 배의 실행 속도

keyword 추출에 가장 적합한 분석 결과

강력한 복합명사/미등록어 추정 기능 단어의 품사별 분류의 단순화로 명료한 분석결과 제공

가장 우수한 복합명사 분해 기능

복합명사 분해 성공률 : 95%∼99% 미등록어가 포함된 복합명사 분해 10음절 이상의 긴 복합명사 분해

불용어 및 특수색인어 처리 기능

불용어 사전과 특수색인어 사전 기능 제공

발전 가능성이 가장 높은 시스템

세부 기능별 모듈화 : 유지보수 용이 새로운 기능을 추가 및 구문 분석 기법 활용이 용이

6. HAM의 상용화 내역

▷ 서울대학교 자연어처리 연구실에서 개발하고 드림 C&C에서 판매중인 한-일 기계번역 시스템(Seoul/Tokyo 2002)의 형태소 분석 기능 ▷ (주)GTA의 웹에이전트에서 자동색인 기능 ▷ (주)netple 한글 뉴스 그룹(http://news.netple.com/)의 한글 문서 색인 기능 ▷ S사의 한글 Internet Search Engine에서 홈페이지 색인 기능 ▷ S사의 PC 통신에서 서비스되고 있는 신문기사 검색 시스템의 자동색인 ▷ 국내 정보검색 전문회사인 D사와 H사의 자동색인 시스템 ▷ 국내 C사의 DTP 시스템에서 철자 검사 및 교정 기능

<참고1> HAM의 형태소 분석 기능

한국어 형태소 분석기 HAM은 입력 문서에서 한 단어씩 추출하여 입력된 단어의 한글 코드를 HAM의 내부코드인 조합형 한글 코드로 변환하는 전처리 단계를 거쳐 형태소 분석을 한다. 형태소 분석 결과는 응용 시스템의 요구사항에 맞게 출력 결과를 조절하는 후처리 단계를 결과를 출력하는 구조로 되어 있다. 구체적인 형태소 분석 과정은 그림 1과 같다.

                       단   어
                          |
            +-------------+-------------+
            |                           |
            |        전  처  리         |
            |                           |
            +-------------+-------------+           +-----------------+
                          |                         |                 |
            +-------------+-------------+      +----+   문법 형태소   |
            |   +-------------------+   |      |    |    사    전     |
            |   |   형태소 분리     |   |      |    |                 |
            |   +-------------------+   |      |    +-----------------+
            |   +-------------------+   |      |    +-----------------+
            |   |   체 언  분 석    |   |      |    |                 |
            |   +-------------------+   |      +----+   어휘 형태소   |
            |   +-------------------+   +---+  |    |    사    전     |
            |   |   용 언  분 석    |   |   |  |    |                 |
            |   +-------------------+   |   +--+    +-----------------+
            |   +-------------------+   |      |    +-----------------+
            |   |  단일형태소 분석  |   |      |    |                 |
            |   +-------------------+   |      +----+   분야별 용어   |
            +-------------+-------------+   +--+----+    사    전     |
                          |                 |  |    |                 |
            +-------------+-------------+   |  |    +-----------------+
            |   +-------------------+   |   |  |    +-----------------+
            |   | 복합명사/미등록어 |   |   |  |    |                 |
            |   +-------------------+   |   |  +----+   사용자 정의   |
            |   +-------------------+   +---+-------+    사    전     |
            |   |    준 말 처 리    |   |   |       |                 |
            |   +-------------------+   |   |       +-----------------+
            |   +-------------------+   |   |       +-----------------+
            |   |    조 사 생 략    |   |   |       |                 |
            |   +-------------------+   |   +-------+   기  분  석    |
            +-------------+-------------+           |    사    전     |
                          |                         |                 |
            +-------------+-------------+           +-----------------+
            |                           |
            |        후  처  리         |
            |                           |
            +-------------+-------------+
                          |
                      분석 결과

그림 1. 한국어 형태소 분석기의 구조

한국어의 형태소 분석 과정의 각 단계에서 처리되는 기능은 다음과 같다.

① 전처리

형태소 분석의 전처리 단계는 입력 문서에 나타난 단어들을 분석하기 위한 준비 과정이다. 전처리에서 필요한 기능은 먼저 입력 문자열을 분리하여 형태소 분석 단위인 단어를 추출하는 일이다. 즉, 입력 문자열로부터 문장 부호, 숫자, 영문자와 같이 형태소 분석 대상이 되지 않는 문자들을 분리하거나 제거한다. 단어를 추출할 때 문장부호는 별개의 단어로 독립시키고 불필요한 문자(제어문자, 특수문자, tag 등)는 공백으로 대치한다. 입력 문자열에서 단어를 인식한 후에는 한글 코드 변환이 이루어진다. 형태소 분석기 내부에서 처리할 수 있는 한글 코드는 자음과 모음을 분리할 수 있는 조합형 코드이므로 입력 단어의 코드를 형태소 분석기의 내부 코드로 변환한다. 현 형태소분석기는 내부 코드로 상용 조합형 한글 코드를 사용하므로 입력문서가 완성형 코드로 작성된 경우에는 상용 조합형 코드로 변환하는 모듈이 추가되어야 한다.

② 문법형태소 분리

형태소 분리 단계에서는 단어를 구성하고 있는 각 형태소들을 분리한다. 한국어의 단어형성규칙(word-formation rule)에 따라 문법형태소인 조사와 어미를 분리하고 어미가 분리된 경우에는 선어말어미를 분리한다. 이 때 어휘형태소와 문법형태소간의 결합관계를 검사하여야 한다. 어미가 분리되어 용언으로 추정되는 단어에 대하여 불규칙 활용이 일어났을 가능성이 있는 것은 불규칙 원형복원 루틴에 의해 어휘형태소의 원형을 추정한다.

③ 체언 분석

체언 분석은 조사가 분리된 분석후보에 대하여 체언 분석을 행하는 과정이다. 형태소 분리 결과 조사가 분리된 단어는 체언으로 추정되므로 어휘형태소 사전에서 이를 확인하여 체언 분석을 시도한다. 어근부가 체언이 아닌 경우에는 접미사를 분리하고 다시 체언 분석을 시도하며, 명사형 전성어미가 발견된 단어는 용언 분석 단계에서 처리한다.

④ 용언 분석

용언 분석은 어미가 분리된 분석후보에 대하여 체언 분석을 행하는 과정이다. 형태소 분리 결과 어미가 분리된 단어는 용언으로 추정되므로 어휘형태소 사전에서 이를 확인하여 용언 분석을 시도한다. 어근부가 용언이 아닌 경우에는 용언화 접미사를 분리하여 '-하다/되다/시키다'와 같은 접미사가 발견되면 체언 분석을 시도한다. 서술격 조사 '이'가 발견되거나 서술격 조사가 생략된 경우에도 체언 분석 과정에서 처리한다. 본 용언과 보조 용언이 결합된 유형은 보조 용언을 먼저 분석하고 난 후에 본 용언을 분석한다.

⑤ 단일형태소 분석

형태소 분리 단계에서 조사나 어미가 발견되지 않은 단어는 단일형태소로 이루어진 단어라고 추정할 수 있다. 이러한 유형의 단어는 어휘형태소를 사전에서 체언이나 부사어, 감탄사, 관형사인지 확인하고 접미사가 분리되는 경우에는 접미사를 분리한 후에 어휘형태소 사전을 확인한다.

⑥ 복합명사 추정

조사가 분리되어 체언으로 추정된 어근부가 체언으로 분석되지 않은 단어는 어근부가 복합명사로 인식될 수 있는지 확인하여야 한다. 복합명사는 4음절, 5음절, 6음절, 7음절 어근부에 대해서만 명사들의 조합이 가능한 지를 검사하여 명사와 명사의 조합으로 구성된 것은 복합명사로 분석한다.

⑦ 준말처리

준말은 단어의 일부가 축약되거나 생략되어 일반적인 단어형성규칙에 의해 형태소를 분리할 수가 없다. 따라서 준말의 유형에 따라 준말 유형이 적용 범위가 넓은 것은 본딧말 규칙으로 처리하고 적용의 범위가 좁은 것은 분석 결과를 기분석 사전에 수록하여 처리한다.

⑧ 미등록어 추정

위 단계까지 분석되지 않은 단어들은 오류어이거나 사전에 수록되지 않은 형태소를 포함하고 있는 단어이다. 고유명사나 전문용어, 신조어 등과 같이 사전에 수록되지 않은 형태소들은 형태소 분리 과정에서 얻은 결과가 단어형성 규칙을 바탕으로 하여 미등록어를 추정한다.

⑨ 후처리

후처리 단계는 형태소 분석기의 응용 분야에 맞게 출력 양식이 다를 수 있으므로 형태소 분석결과를 사용할 수 있도록 분석결과를 재구성하여 출력하는 과정이다. 또한 영문자나 숫자 등 한글이외의 문자열에 대하여 분석이 필요하면 이 모듈을 연결하여 결과를 출력한다. 그 이외에도 모호성 해결(ambiguity resolution)과 같이 여러 가지 분석결과가 생성된 경우에 옳지 않은 것을 제거하거나 옳은 결과를 선택하는 모듈이나 분석실패한 단어를 처리하는 모듈이 완성되면 추가할 수 있도록 한다.

<참고2> HAM의 자동 색인 기능

자동 색인은 문서에 포함되어 있는 색인어를 추출하는 과정으로 그림 2와 같이 형태소 분석에 의하여 정보자료를 분석하여 색인어 후보를 생성하는 과정과 생성된 후보중에서 불용어 처리와 특수색인어 추출 과정에 의하여 색인어를 선택하는 과정으로 이루어진다.

                      입력 문서
                           |
                    +------+------+ 
                    | 색인어 추출 |<--- 정보자료 분석
                    +------+------+            
                           |                   
                    +------+------+            
                    | 색인어 선택 |<---  불용어 처리
                    +------+------+ 
                           |
                     색인어 리스트

그림 2. 용어 추출 색인 과정

한국어 형태소 분석기는 대학, 연구소를 중심으로 개발 중에 있으며 대부분의 형태소 분석기는 기계 번역이나 tagging 시스템, 철자 검사 등 특정 응용 시스템에서 사용될 수 있도록 개발되어 있다. 이러한 목적으로 개발된 형태소 분석기를 자동 색인 기능으로 사용하는 경우도 있으나 자동색인에서 가장 큰 문제가 되고 있는 복합명사 인식과 미등록어 처리, 불용어 처리 등 여러 가지 문제점을 안고 있다. HAM은 1993년에 형태소 분석기가 완성된 이후로 1996년 현재까지 복합명사 인식 기능과 미등록어 처리 기능을 강화하였으며, 불용어 처리 기능과 특수 색인어 처리 기능을 추가하여 자동 색인 기능에 가장 적합한 형태소 분석기이다. HAM은 상용화된 정보검색 시스템의 자동색인 기능으로 사용되는 과정에서 오류를 최소화하여 성능이 가장 우수함을 입증되었다. 이러한 사실은 1995년에 PC 통신망에 DOS와 UNIX용 실행 파일을 공개한 바 있고, 최근에는 연구 및 실험용으로 사용할 수 있도록 library를 공개함으로써 한국어 정보처리 전문가들에 의하여 확인되었다. HAM은 음절 단위 분석 기법과 한국어의 형태론적 특성을 이용하여 범용 한국어 형태소 분석기로 개발된 범용 한국어 형태소 분석기를 사용하여 자동색인 기능으로 활용하고 있으며 keyword 추출시에 그 성능 및 효율면에서 국내 타 대학 및 연구소에서 개발된 제품보다 월등히 우수하다. 특히, 자동색인의 성능에 많은 영향을 미치는 복합명사 인식 기능, 미등록어 추정 기능, 불용어 처리 기능이 뛰어나며, 사용자 정의 사전과 전문용어 사전, 불용어 사전 관리 기능으로 다양한 분야의 문서를 관리하는 정보검색 시스템에 가장 적합하다. 현재 HAM의 자동색인 과정은 그림 3과 같다.

                           한글 문서
                               |
                     +---------+---------+
                     |    형태소 분석    |
                     +---------+---------+
                     +---------+---------+
                     |   미등록어 추정   |
                     +---------+---------+
                     +---------+---------+
                     |   복합명사 분해   |
                     +---------+---------+
                     +---------+---------+
                     |    불용어 처리    |
                     +---------+---------+
                               |
                       후보색인어 리스트

그림 3. 형태소 분석을 이용한 자동색인

일부 형태소 분석기는 자동색인 기능을 목적으로 개발되기도 하였다. 그런데 형태소 분석만을 위한 자동색인은 색인어 후보 생성시에 '가장 많다'의 부사 '가장'을 추출하는 등의 오류가 발생한다. 이러한 오류를 제거하고 색인의 질(quality)을 향상시키기 위해 자동색인은 문장 단위의 구문 분석(syntactic analysis) 기법을 도입하는 방향으로 발전하고 있으며, 구문 분석은 완벽한 형태소 분석을 기반으로 하고 있다. 구문 분석 기법의 도입되면 그림 4와 같이 단순히 명사를 추출하는 색인에서 문서의 내용을 대표하는 색인어를 추출하는 기능으로 발전하게 된다. 따라서 자동색인을 목적으로 개발된 형태소 분석기는 조만간 경쟁력을 상실하게 된다. HAM은 완벽한 형태소 분석을 기반으로 하고 있으므로 확장성이 매우 뛰어나다.

                        정보 자료
                            |
                    +-------+-------+
                    |  색인어 추출  |<--- 정보자료 분석
                    +-------+-------+
                    +-------+-------+
                    |  불용어 제거  |<--- 불용어 리스트
                    +-------+-------+
                    +-------+-------+
                    |  주제어 추출  |<--- 구문분석, 시소러스
                    +-------+-------+
                    +-------+-------+
                    |    후처리     |<--- 색인 전문가
                    +-------+-------+
                            |
                      색인어 리스트

그림 4. 이상적인 자동색인 시스템의 구조

<참고3> 자동색인의 중요성 및 문제점

(1) 자동색인의 중요성

여러 기관에서 형태소 분석기를 구현하였으며 그 중의 일부는 상용 정보검색 시스템에서 자동색인 기능으로 사용되고 있기도 하다. 자동색인에서는 형태소 분석기의 성능이 사용자들에게 직접적으로 드러나지 않기 때문이다. 정보검색 시스템에서 색인어 추출의 정확성은 사용자가 판단하기 어렵다. 왜냐하면, 사용자는 어떤 정보들이 저장되어 있는지 알지 못하기 때문이다. 즉, 검색된 문서에서 중요한 문서가 빠져 있다 하더라도 사용자는 그 문서가 검색되어야 한다는 사실을 모르는 경우가 대부분이다. 그러나 자동색인 시스템의 성능은 정보자료의 중요성만큼 정보검색 시스템에 미치는 영향이 매우 크다. 사용자가 특정한 정보자료의 검색이 불가능함을 알았을 때에야 비로소 자동색인의 중요성을 인식하게 되고, 그제서야 자동색인의 성능을 향상시키려면 저장되어 있는 모든 문서에 대한 색인을 다시 해야 하는 심각한 사태가 발생하게 될 것이다.

(2) 자동색인의 문제점

자동색인의 문제는 재현율과 정확률의 문제이다. 재현율은 검색되어야 할 정보자료 중에서 몇 %를 검색했는가 하는 것이고, 정확률은 검색된 자료중에서 필요한 것이 몇 %인가 하는 것이다. 재현율을 떨어뜨리는 단어는 두 가지 유형이 있다. 첫번째 유형은 아래 예와 같이 사전에 수록되지 않은 '벨기에'나 '오페라' 등 조사 음절로 끝나는 고유명사가 일부 조사와 결합되는 경우에 발생한다.

                  '오페라는'  --->  '오페' + '-라는'
                  '공직자가'  --->  '공직' + '자가'

이러한 색인어 추출 오류는 자동적으로 해결되기도 한다. 예를 들어, '오페라'와 '공직자'가 중요한 단어라면 '오페라가', '공직자는'과 같이 한 문서내에 다른 조사와 함께 사용되는 단어가 출현할 것이고 '오페라가', '공직자는'에서는 '오페라'와 '공직자'가 색인되기 때문에 자동적으로 문제가 해결된다. 따라서 이러한 오류로 인하여 색인어 추출 오류가 발생하는 경우는 매우 드물다. 그럼에도 불구하고 이러한 오류를 방지하려면 미등록어 추정 결과를 2가지로 출력하거나 그 단어를 사용자 정의 사전에 수록하면 된다. 두번째 유형은 복합명사 분해시에 발생한다. '대학생선교회'의 예와 같이 '대학생' 또는 '선교회' 중 하나가 사전에 수록되어 있지 않고 '대학', '생선', '교회'는 각각 사전에 수록되어 있으면 아래와 같이 복합명사를 분해하게 되어 색인어 추출 오류가 발생한다. 이러한 경우도 드물기는 하지만 정확한 분석을 하게 하려면 '대학생'과 '선교회'를 사용자 정의 사전에 수록함으로써 해결된다.

                  '대학생선교회'  --->  '대학' + '생선' + '교회'

정확률을 떨어뜨리는 색인어 추출 오류로는 형태소 분석 결과의 모호성 때문이다. '가장 빠르다'에서 '가장'이 명사인 '家長'으로 인식되는 경우와 '家長'과 '假裝'을 구별하지 못하기 때문에 발생하는 오류가 있다. 이러한 오류는 모든 형태소 분석기에서 발생하는 것으로 구문 분석이나 의미 분석 기법을 도입하지 않으면 처리할 수 없다.

HAM에서 색인어 추출 오류는 위에서 예시한 3가지 유형으로 미등록어 추정과 복합명사 분해시에 발생할 수 있다. 이러한 오류의 일부는 자동적으로 해결되기도 하고 미등록어를 사용자 정의 사전에 추가하여 해결할 수도 있으며, 그 이외의 것은 형태소 분석만으로 해결될 수 없는 오류이다. 특히, HAM은 타 형태소 분석기에 비해 정확한 형태소 분석을 하므로 이러한 오류가 훨씬 적게 나타난다.

<참고> 형태소 분석 라이브러리 HAM을 down받으려면 여기를 누르세요.