seunjeon(mecab 자바버전)에 사용자 사전 추가하기

seunjeon(https://bitbucket.org/eunjeon/seunjeon/overview) 프로젝트 참고

사용자사전(고유명사) 추가의 필요성

아래의 소스와 같이 ‘네네치킨을 먹습니다.’를 형태소 분석하면, 네네치킨에 대한 정의가 없기 때문에 원하지 않는 결과로 해석하게 된다.

 

결과

 

사용자사전 추가하기

소스 폴더에 ‘user-dict.csv’라는 파일을 만들고 다음과 같이 저장한다.

뒤의 숫자 값은 cost 값인데, 숫자가 낮을수록 채택될 확률이 높아진다. 우선순위를 높이고 싶다면 낮은 값을 사용하자

 

결과

 

사용자 사전에  추가하고나면 네네치킨을 NNG(일반명사)로 구분하기 시작한다. NNP(고유명사)로 구분하는 것이 맞으나… seunjeon 프로젝트에서는 아직 mecab 수준으로 사용자 사전을 지원하지는 않는 것 같다.

한글 형태소 분석기 비교

Twitter

사이트 : https://openkoreantext.org/

속도가 가장 빠르지만 형태소 분석 품질은 상대적으로 낮은것 같다. 실시간으로 처리해야할 필요가 있을때 사용하는 것이 좋을 것 같다.

KKMA

사이트 : http://kkma.snu.ac.kr/documents/index.jsp

서울대의 꼬꼬마 형태소/구문 분석기
분석 품질은 괜찮지만 속도가 느리다.
사용자 사전으로 추가한 복합명사에 대해서 불완전하게 동작한다. 어떨때는 분리하고 어떨때는 하나의 명사로 추출해준다.

 

Mecab-ko

일본어 형태소 분석기 mecab을 한국어로 사용 가능하도록 포팅한 버전이 있다.
원래는 C++로 개발된 것으로 보인다. ( 사이트 : https://bitbucket.org/eunjeon/mecab-ko/ )

이걸 java에서 사용 가능하도록 scala로 포팅된 것이 있다. ( 사이트 : https://bitbucket.org/eunjeon/seunjeon ) 사용한다면 scala 버전을 사용하는 것이 나을 듯 하다. 사용자 사전 추가 기능이 편리하여, 전문적인 도메인의 문서를 분석하는데 필수적이다.

속도 및 성능이 전반적으로 좋다는 평가이다.(C++버전에 대해서)

종합