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
- Require library
- Require data files
(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로 연락주시기 바랍니다.
'Legacy > Library' 카테고리의 다른 글
KOMORAN 2.0 beta (7) | 2014.07.21 |
---|---|
KOMORAN ver 1.12 (자바 한글 형태소 분석기) (29) | 2013.06.19 |
KOMORAN ver 1.1 (자바 한글 형태소 분석기) (10) | 2013.06.08 |
KOMORAN ver 0.6 (자바 한글 형태소 분석기) (6) | 2013.04.02 |
KOMORAN ver 0.5 (자바 한글 형태소 분석기) (13) | 2013.03.19 |