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


이름은 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 정도 처리 가능합니다. 단 넉넉한(?) 메모리를 필요로 합니다. 


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


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



  1. 김진오 2015.05.21 16:03 신고

    라이센스정책은 어떻게 되나요??

    • shine_ing 2015.05.22 10:13 신고

      몰론 아파치 2.0을 따르고 있습니다만, 안정화단계까지는 시간이 걸릴것 같습니다..ㅠ

  2. 염정완 2015.10.29 17:02 신고

    동사의 원형을 가지고 올 수 는 없나요?

    • shine_ing 2015.11.11 21:23 신고

      데이터가 있다면 동사의 원형을 가지고 오게끔 변형이 가능합니다만, 관련된 데이터를 구하기가 쉽지 않네요..죄송합니다..ㅠ

    • 염정완 2015.11.30 15:57 신고

      아닙니다. 답변 감사드립니다.

  3. 김덕주 2016.03.31 05:14 신고

    동사의 원형을 복원하고 싶은데 혹시 어떤 흐름으로 해야할지 좋은 아이디어 있으면 알 수 있을까요??

    • lynn 2016.07.28 17:40 신고

      [한글 원형복원] 코모란의 결과를 input으로 받아 원형 복원 후처리하는 코드 공유해드립니다. 저도 원형복원 로직을 못 찾아서 연구에 쓰기 위해 그냥 제가 만들었습니다 파이썬이라 KomoranPy 결과와 연동됩니다

      https://github.com/lynn-hong/ko_restoration

  4. 서정원 2016.10.02 01:19 신고

    영어 버전 원형 복원은 없나요..?

  5. 살려줘요 2018.03.26 17:19 신고

    이거 사용방법 어떻게 되나여

+ Recent posts