MeCab을 이용한 한국어 형태소 분석과 폐쇄적인 21세기 세종 계획 성과물

Sun, Aug 5 2012 01:37:00 KST

우리는 21세기 첨단 시대에 살고 있다. 이러한 시대에 인공지능적인 재미있는 작업을 하려면 형태소 분석기는 필수적이다. 그러나, 공개되어 있는 한국어 형태소 분석기를 살펴보면 쓸만한 분석기가 별로 없다. 그나마 쓸만한 것은 한나눔이라는 형태소 분석기인데 띄어쓰기가 되지 않은 문장은 분석하지 못하고 java 언어 기반이어서 불편한 점이 있다. 그리고 꼬꼬마(kkma)라는 분석기가 있는데 공개 소프트웨어 은상까지 받고 GPL 라이선스라면서 역설적으로 소스를 구할 수가 없어(http://project.oss.kr/data/3th_source/KOKOMA.zip 파일을 열어보면 pptx 문서 파일이다.) 어처구니가 없다. 공개 소프트웨어 은상까지 받고 소스를 공개하지 않으면 상을 회수해야 하는 것 아닌가.

이러한 시점에서 우리는 일본어 형태소 분석기 MeCab 에 주목할 필요가 있다.
http://mecab.googlecode.com/svn/trunk/mecab/doc/index.html

MeCab의 특징

  • 언어, 사전 코퍼스에 의존하지 않는 범용적인 설계
  • 품사 독립적 설계
  • CRF 채용하여 HMM 보다 성능 향상
  • CRF 값 추정 가능
  • Double-Array TRIE
  • 각종 스크립트 언어 바인딩 (perl / ruby​​ / python / java / C#)

MeCab 설명서를 좀 읽어보니 일본어뿐만 아니라 한국어 사전만 있으면 한국어 형태소 분석도 가능할 것처럼 보여 “나는 밥을 먹었다”를 분석할 수 있는 아주 간단한 한국어 형태소 분석용 사전을 만들어보았는데 정상적으로 돌아가는 것 같다.

cogniti@debian:~/projects/kdic$ make
/usr/lib/mecab/mecab-dict-index -d . -c UTF-8 -t UTF-8 -f UTF-8
reading ./unk.def ... 43
emitting double-array: 100% |###########################################|
reading ./word.csv ... 6
emitting double-array: 100% |###########################################|
reading ./matrix.def ... 1509x1509
emitting matrix      : 100% |###########################################|

done!

cogniti@debian:~/projects/kdic$ mecab -d .
나는 밥을 먹는다
나 대명사,*,*,*,*,*,*,*
는 조사,주격조사,*,*,*,*,*,*
밥 명사,일반명사,*,*,*,*,*,*
을 조사,목적격조사,*,*,*,*,*,*
먹는다 동사,*,*,*,*,*,*,*
EOS

루비 바인딩도 있어서 편하다.

# coding: utf-8
require 'MeCab'
m = MeCab::Tagger.new ("-d .")
print m.parse ("나는 밥을 먹는다")

실험 프로젝트 주소: https://github.com/cogniti/mecab-kdic

국민 세금으로 개발한 21세기 세종 계획의 성과물(말뭉치, 전자사전)은 폐쇄적이다.

비공개 한국어 형태소 분석기들은 대학별로 각개 개발을 하는 것처럼 보이고 폐쇄성은 이루 말할 것도 없다. 언어를 폐쇄적으로 연구하면 연구가 잘 될까? 그에 반하여 영어(스탠포드), 일본어의 경우 기관 또는 대학들에서 소스까지 공개해주고 있다. 품질도 우수하다.

21세기 세종 계획의 일환으로 국민의 세금을 들여서 만든 지능형 형태소 분석기는 소스는 제공되지 않고 중요한 사전 파일은 암호화되어 있는 듯 했다. 이로 미루어볼 때 국민의 세금으로 만든 형태소 분석용 사전을 절대 공개할 수 없다는 입장인 것 같다. 하긴 말뭉치(corpus) 구하는 것도 쉽진 않다. 회원 가입해야 받을 수 있다고 하여 회원 가입을 하였건만 21세기 세종 계획의 성과물 배포 링크는 작동되지 않았고 국립국어원 측에서는 이를 알고도 고쳐주지 않고 있다.

2010-03-21 공지사항: 성과물 배포 시스템의 내려받기 기능 오류 및 대체 방안 현재 21세기 세종계획 성과물 관리 시스템(http://www.korean.go.kr/sejong/)의 내려받기 기능이 제대로 작동하지 않고 있습니다. 불편을 끼쳐 드려서 죄송합니다. 조만간 내려받기 기능이 정상적으로 작동할 수 있도록 노력하겠습니다.

2012-01-02 공지사항: 국립국어원에서는 21세기 세종계획 최종 성과물 수정판(2011년 12월 제작)을 배포하고 있습니다. 21세기 세종계획 성과물이 필요하신 분은 국어원에 내방하시어 약정서 작성 후 직접 받아가시거나 다음과 같이 신청하여 이메일이나 팩스가 아닌 우편으로 주시면 보내드리겠습니다.

약정서를 작성해서 국립국어원으로 보내면 DVD를 보내 준다고는 하는데… 21세기에 가당키나 한 말인가? 그 약정서라는 것이 hwp 파일로 되어 있어서 읽어보지 못했는데 아마 이상한 내용이 있을 것으로 짐작된다. 무슨 말이냐면 형태소 분석기가 돌아가려면 말뭉치를 분석하여 만든 형태소 분석용 사전이 있어야 되는데 형태소 분석기라는 프로그램을 배포하면서 이 사전을 배포하지 못하는 듯하다.

21세기 세종계획 성과물 신청 양식을 보면 이런 조항이 있다.

제3조. 을은 갑으로부터 제공받은 자료가 어떠한 이유에서든지 유출되어 문제가 발생하였을 경우 전적으로 민, 형사상의 모든 법적 책임을 부담한다.

어처구니가 없는 조항이다. 자기들(갑)은 이미 국립국어원 홈페이지 검색과 DVD 로 유출하고 있지 않은가? 유출이 되어서는 안 되는 자료라면 왜 DVD로 보내줄까. 참 이상한 사람들이다.

인터넷에서 쉽게 구할 수 있는 공개된 일본어 말뭉치(corpus)

일본의 경우 형태소 분석용으로 다양한 사전이 존재한다. ipadic, naist-dic, juman-dic, unidic 등이 있는데, 모두 공개되어 있다. 이중 naist-dic 은 BSD 라이선스와 유사하다.
그리고 영어,일본어 말뭉치(corpus)는 공개되어 있어서 통째로 인터넷에서 쉽게 구할 수 있다.

교토 텍스트 코퍼스

Tanaka Corpus http://www.edrdg.org/wiki/index.php/Tanaka_Corpus#Downloads

http://corpus.kanji.zinbun.kyoto-u.ac.jp/cgi-bin/gitweb.cgi?p=corpus/mecab-kanbun.git;a=summary

그에 반하여 한국어 말뭉치는 공개되지 않아서 쉽게 구할 수 없다. 한국어 말뭉치와 사전의 폐쇄성 때문에 한국어 형태소 분석기의 품질이 MeCab에 비하여 크게 떨어지는 것은 아닐까?

결론

사전 제작은 개인이 하기 매우 방대한 분량인 만큼 문화체육관광부와 국립국어원에서 ‘21세기 세종 계획’의 일환인 말뭉치를 BSD 또는 GPL 또는 GFDL 또는 CCL 라이선스 등으로 일반에 전격 개방해준다면 MeCab용 한국어 형태소 분석용 사전 제작이 가능하리라 본다.


익명 2012년 10월 2일 오전 8:40

아, 시원하게 잘 쓰셨습니다.
저도 위와 같이 느끼고 있었습니다.
국민세금으로 일하면서 대체 뭐하자는 것인지…

아마, 사전이나 기타 장래의 영리 목적 사업을 염두에 둔 것 같은데 그런 것은 사 기업체에서나 할 일이지 국가기관에서 할 일은 아니라고 생각합니다.


익명 2012년 12월 5일 오전 5:01

저역시 이쪽으로 알아보던중 이런 행태에 많이 놀랍고 이해가 안되며 답답하더군요.