필요에 의해서 한국어 형태소 분석기를 찾아보기도 했고, MeCab을 이용한 한국어 형태소 분석과 폐쇄적인 21세기 세종 계획 성과물이란 글을 보면서 쓸만한 오픈소스 형태소 분석기가 없다는 것에 실망한 적이 있었다. 내가 전문가는 아니라서 잘 모르는 것일 수도 있겠지만, 영어는 물론이고 일본어도 연구 결과들이 공유되고 발전해가는 것이 보이는데, 왜 한국어는 없는지 답답했다. 그래서 "검색에서 쓸만한 오픈소스 한국어 형태소 분석기를 만들자!"라는 생각으로 시작했다는 은전한닢 프로젝트를 보고 상당히 반가운 기분이 들었다.
그래서 한번 사용을 위해서 테스트를 해보기로 했다. 은전한닢 프로젝트는 일본어 형태소 분석기인 mecab에 한국어 형태소 사전을 추가한 형태로, 이를 사용하기 위한 Lucene/Solr용 tokenizer를 제공하고 있다. 그래서 사용해보려면 우선 mecab 설치가 필요하다.
테스트는 ubuntu 12.04 에서 진행했다.
mecab 설치
mecab은 ubuntu 저장소에 들어가있기때문에 쉽게 설치가 가능하다. 신경쓸 것은 컴파일이 필요하기 때문에 libmecab-dev 패키지도 별도로 설치가 필요하다는 것 정도이다.
$ sudo apt-get install mecab libmecab-dev
mecab-ko-dic 설치
mecab-ko-dic이 은전한닢 프로젝트의 핵심 결과물이라고 할 수 있는데, bitbucket 저장소에서 배포중이고, 사실 설치방법도 여기에 한국어로 친절하게 소개되어있기도 하다. 저장소의 다운로드 페이지에서 mecab-ko-dic 최신 버전을 다운로드 받아서 다음과 같이 컴파일하자. 이 글을 쓰는 시점에서 최신버전은 1.1.3 버전이다.
$ tar xzf mecab-ko-dic-1.1.3-20130226.tar.gz
$ cd mecab-ko-dic-1.1.3-20130226/
$ ./configure
$ make
컴파일이 잘 되었는지 테스트해보려면 다음과 같이 확인할 수 있다.
$ mecab -d .(엔터)
잘 설치되었는지 확인하려면 이렇게 확인할 수 있다.(엔터)
잘 MAG,T,잘,*,*,*,*
설치 NN,F,설치,*,*,*,*
되 XSV,F,되,*,*,*,*
었 EP,T,었,*,*,*,았/EP
는지 EC,F,는지,*,*,*,*
확인 NN,T,확인,*,*,*,*
하 XSV,F,하,*,*,*,*
려면 EC,T,려면,*,*,*,*
이렇 VA,T,이렇,*,*,*,*
게 EC,F,게,*,*,*,*
확인 NN,T,확인,*,*,*,*
할 XSV+ETM,T,할,Inflect,XSV,ETM,하/XSV+ㄹ/ETM
수 NNB,F,수,*,*,*,*
있 VV,T,있,*,*,*,*
다 EF,F,다,*,*,*,*
. SF,*,*,*,*,*,*
EOS
(Ctrl + d)
$
이렇게 표시되면 잘 동작하는 것이다. 설치를 마무리하려면 다음과 같이 입력한다.
$ sudo make install
이렇게 하면 "/usr/lib/mecab/dic/mecab-ko-dic"에 사전 파일이 저장되고 설치가 끝난다고 했는데, 나의 경우에는 다음과 같은 오류가 발생했다.
test -z "/usr/lib/mecab/dic/mecab-ko-dic" || /bin/mkdir -p "/usr/lib/mecab/dic/mecab-ko-dic"
/usr/bin/install -c -m 644 ./model.bin matrix.bin char.bin sys.dic unk.dic left-id.def right-id.def rewrite.def pos-id.def dicrc '/usr/lib/mecab/dic/mecab-ko-dic'
/usr/bin/install: cannot stat `./model.bin': No such file or directory
make[1]: *** [install-dicDATA] Error 1
make[1]: Leaving directory
make: *** [install-am] Error 2
model.bin 파일이 없어서 나는 오류인데, 그냥 무시하고 진행해도 별 문제없이 동작하는 것으로 보인다. mecab 설정파일(/etc/mecabrc)을 다음과 같이 수정해주면 설치가 끝난다.
6c6
< dicdir = /var/lib/mecab/dic/debian
---
> dicrc = /usr/lib/mecab/dic/mecab-ko-dic
root 권한이 없는 경우에는 사전파일들을 적당한 디렉토리에 넣어두고, 홈디렉토리에 .mecabrc 파일을 만들어서 동일한 설정을 해줘도 된다.
테스트 해보면 다음과 같다.
$ mecab(엔터)
설치가 다 끝났는지 확인하려면 이렇게 해보자.(엔터)
설치 NN,F,설치,*,*,*,*
가 JKS,F,가,*,*,*,*
다 MAG,F,다,*,*,*,*
끝났 VV+EP,T,끝났,Inflect,VV,EP,끝나/VV+았/EP
는지 EC,F,는지,*,*,*,*
확인 NN,T,확인,*,*,*,*
하 XSV,F,하,*,*,*,*
려면 EC,T,려면,*,*,*,*
이렇 VA,T,이렇,*,*,*,*
게 EC,F,게,*,*,*,*
해 VX+EC,F,해,Inflect,VX,EC,하/VX+ㅕ/EC
보 VX,F,보,*,*,*,*
자 EF,F,자,*,*,*,*
. SF,*,*,*,*,*,*
EOS
(Ctrl + d)
$