Legacy/Library

EN-POSTA ver 0.5 (자바 영어 형태소 분석기)

shine_ing 2014. 11. 6. 01:14

자바로 만든 영어 형태소 분석기를 공개합니다.


이름은 EN-POSTA (ENglish POS TAgger) 입니다. 


자체 동작 테스트는 완료하였습니다.


아직 안정화 단계에 접어들기 위해선 많은 피드백들이 반영되어야 할 것으로 보입니다. 

사용하시다가 불편하신 점이나 이상하다고 느껴지시는 부분에 대해서 알려주시면 바로 반영할 수 있도록 하겠습니다.




기본적인 사용법은 아래와 같습니다.

 

public static void main(String[] args) throws Exception {

       EnPosta posta = new EnPosta();

       posta.load("model");

       //사용자 사전 추가

       posta.appendUserDic("dic.user");

       posta.buildFailLink();

      

       List<String> resultList = posta.analyze("Launch a new institute at the University of Washington to conduct independent, rigorous evaluations of health programs worldwide.");

       for (String result : resultList) {

             System.out.println(result);

       }

}

 

 

객체 생성 후 data file 경로를 지정하여 분석기에서 사용될 데이터들을 로딩합니다.

사용자 사전을 추가할 경우에는 appendUserDic 메소드를 통해 사용자 사전 파일을 추가합니다.

load 및 appendUserDic 단계가 끝나면 반드시 buildFailLink 메소드를 실행해줘야 합니다. 


사용사 사전의 구성은 아래와 같습니다.

■ 구조

◆ [단어]\t[품사]

◆ 시작 기호 '#'로 주석처리 가능

■ 예제

University of Washington NNP


위의 기본적인 사용법 예제와 같이 사용자 사전을 적용한 경우에는 아래와 같은 결과를 얻을 수 있습니다. 


Launch/NNP

a/DT

new/JJ

institute/NN

at/IN

the/DT

University of Washington/NNP

to/TO

conduct/VB

independent/JJ

,/,

rigorous/JJ

evaluations/NNS

of/IN

health/NN

programs/NNS

worldwide/NN

./.

 

사용자 사전을 적용하지 않는 경우에는 아래와 같은 결과를 얻을 수 있습니다. 

 Launch/NNP

a/DT

new/JJ

institute/NN

at/IN

the/DT

University/NNP

of/IN

Washington/NNP

to/TO

conduct/VB

independent/JJ

,/,

rigorous/JJ

evaluations/NNS

of/IN

health/NN

programs/NNS

worldwide/NN

./.

 


기본적으로 HMM을 사용하였으며 기존 영어 품사 태거와의 가장 큰 차이점은 사용자 사전을 통해 여러 어절로 구성된 고유 명사를 하나로 묶을 수 있다는 점입니다. (KOMORAN 2.0이 갖고 있는 특징이기도 합니다)


word 단위 accuracy는 96.47% 이며, 초당 1.3MB 정도 처리 가능합니다. 단 넉넉한(?) 메모리를 필요로 합니다. 


사용해보시고 피드백 많이 부탁드립니다. 감사합니다.


※ 문서가 너무 두서 없이 작성된 점에 대해서 죄송하다는 말씀을 드립니다. 안정화 시키는대로 최대한 빨리 다시 한번 위 내용을 정리하도록 하겠습니다.