Legacy/Library

KOMORAN ver 1.0 (자바 한글 형태소 분석기)

shine_ing 2013. 5. 18. 17:21

1.    KOMORAN?

KOMORAN SHINEWARE SOFT에서 제작한 한국어 형태소 분석기로서 자바 라이브러리 형태(.jar)로 제공됩니다. KOMORAN은 기존 형태소 분석기의 연구 결과들을 바탕으로 하여 속도’, ‘성능’, ‘사전 관리 비용에서 가장 우수한 성능을 낼 수 있도록 설계되었습니다.

 

2.    KOMORAM 특징

KOMORAN은 자소 단위, 확률 기반의 형태소 분석기 입니다. 속도, 성능, 사전 관리 측면에서 기존 형태소 분석기와 차별되는 특징은 아래와 같습니다.

-       속도

n  Hash 기반의 파싱 방법을 적용하여 한글 분석 속도 향상

n  TRIE 기반의 사전 구성으로 사전 재탐색 횟수를 최소화하여 사전 탐색 속도 향상

n  KOMORAN 내부의 자료형(Data Type)을 대부분 정수(Integer)로 처리하여 연산 속도 향상

n  Hash 기반의 Viterbi 알고리즘을 이용하여 분석 후보 탐색 속도 향상

-       성능

n  한글 불규칙 처리 규칙을 자동화하여 불규칙 어절 대한 분석 정확률 향상

n  TRIE 및 압축된 사전 정보를 사용하여 메모리 사용률 최소화

-       사전 관리

n  사용자 사전을 추가하여 신조어, 고유명사 등의 분석 가능

n  기분석 사전을 적용하여 정확률 및 분석 속도 향상 가능

 

3.    KOMORAN 성능 평가

KOMORAN의 성능을 평가하기 위해 아래와 같이 속도 및 정확률에 대한 실험을 진행하였습니다.

-       속도 평가

n  평가에 사용된 컴퓨터 Spec.

u  프로세서 : 2.3GHz Intel Core i5

u  메모리 : 8GB 1600MHz DDR3

n  초당 2만 어절 분석(word/sec)

n  초당 4천 문장 분석(line/sec)

n  초당 0.2MB 분석(MB/sec)

-       정확률 평가

n  기호 및 숫자 등을 제외한 순수 한글 어절 ( 17만 어절, 33만 형태소 )

u  어절 정확률 : 92.55%

u  형태소 별 품사 정확률 : 94.97%

n  기호 및 숫자 등을 포함한 전체 어절 ( 20만 어절, 46만 형태소 )

u  어절 정확률 : 84.36%

u  형태소 별 품사 정확률 90.81%

 

4.    사용 방법

KOMORAN을 사용하기 위해서는 먼저 komoran 라이브러리와 common 라이브러리를 다운로드 받아야 합니다. KOMORAN 라이브러리는 아래 경로에서 다운로드 받으실 수 있습니다.

-       Core library  

komoran-1.0.jar


-       Require library  

shineware-common-1.0.jar


-       Require data files 

datas.zip


 

(1)   기본적인 사용 방법

 

//Require files 가 저장된 루트 폴더를 지정하여 객체 생성

MorphologyAnalyzer analyzer = new MorphologyAnalyzer("datas/");

                    

List<List<Pair<String,String>>> result = analyzer.analyze("안녕하세요? 좋은 아침입니다.");

                    

for (List<Pair<String, String>> eojeolResult : result) {

                     for (Pair<String, String> wordMorph : eojeolResult) {

                                System.out.println(wordMorph);

                     }

                     System.out.println();

}

위 소스를 실행한 결과는 아래와 같습니다.

 

Pair [first=안녕, second=NNG]

Pair [first=, second=XSV]

Pair [first=, second=EP]

Pair [first=어요, second=EC]

Pair [first=?, second=SF]

          

Pair [first=, second=VA]

Pair [first=, second=ETM]

 

Pair [first=아침, second=NNG]

Pair [first=, second=VCP]

Pair [first=ㅂ니다, second=EC]

Pair [first=., second=SF]

 

(2)   기분석 사전 적용

기분석 사전은 아래와 같이 setFWD(“기분석 사전 파일명”)을 이용하여 적용 가능합니다.

MorphologyAnalyzer analyzer = new MorphologyAnalyzer("datas/");

//기분석 사전 적용

analyzer.setFWD("fwd.txt");

 

기분석 사전의 파일 구조는 아래와 같습니다.

n  구조

u  [분석할 어절]\t[분석 결과]

n  Example

수입불가      수입/NNG+불가/NNG

사람이라고   사람/NNG+/VCP+라고/EC

 

(3)   사용자 사전 적용

사용자 사전은 아래와 같이 setUserDic(“사용자 사전 파일명”)을 이용하여 적용가능합니다.

//Require files 가 저장된 루트 폴더를 지정하여 객체 생성

MorphologyAnalyzer analyzer = new MorphologyAnalyzer("datas/");

//사용자 사전 적용

analyzer.setUserDic("userDic.txt");

 

사용자 사전의 구조는 아래와 같습니다.

n  구조

u  [단어]\t[품사]

u  시작 기호 ‘#’로 주석처리 가능

n  Example

#주석은 라인의 가장 앞에 #을 표시하여 사용

싸이콘서트   NNP

네이버        NNG

 

5.    문의 사항

KOMORAN과 관련된 문의 사항은 ceo@shineware.co.kr로 연락주시기 바랍니다.