Mecab 한글 형태소 분석기
은전한닢 오픈소스 프로젝트: http://eunjeon.blogspot.kr/2013/02/blog-post.html
Mecab-ko-dic Bitbucket: https://bitbucket.org/eunjeon/mecab-ko-dic
Ubuntu에서 Mecab 설치
Mac:
brew install mecab
Linux(Ubuntu):
sudo apt-get install libmecab-dev sudo apt-get install mecab mecab-ipadic-utf8
Linux(Fedora):
yum install mecab mecab-devel
Mecab-ko-dic 설치
다운로드
https://bitbucket.org/eunjeon/mecab-ko-dic/downloads
최신 버전을 다운받는다.
$ wget https://bitbucket.org/eunjeon/mecab-ko-dic/downloads/mecab-ko-dic-1.6.1-20140515.tar.gz
다운로드 위치에서 압축을 푼다.
$ tar xzvf mecab-ko-dic-1.6.1-20140515.tar.gz
컴파일
아래와 같이 컴파일을 수행한다.
$ cd mecab-ko-dic-1.6.1-20140515/ $ ./configure $ make
제대로 설치되었는지 아래와 같이 확인한다:
$ mecab -d .(Enter) 안녕하세요. 저는 홍길동입니다. 무엇을 도와 드릴까요?(Enter) 안녕 NNG,*,T,안녕,*,*,*,*,* 하 XSV,*,F,하,*,*,*,*,* 세요 EP+EF,*,F,세요,Inflect,EP,EF,시/EP+어요/EF,* . SF,*,*,*,*,*,*,*,* 저 NP,*,F,저,Inflect,NP,NP,제/NP,* 는 JX,*,T,는,*,*,*,*,* 홍길동 NNG,*,T,홍길동,Compound,*,*,홍+길동,홍/NNG/*/1/1+홍길동/Compound/*/0/2+길동/NNG/*/1/1 입니다 VCP+EF,*,F,입니다,Inflect,VCP,EF,이/VCP+ᄇ니다/EF,* . SF,*,*,*,*,*,*,*,* 무엇 NP,*,T,무엇,*,*,*,*,* 을 JKO,*,T,을,*,*,*,*,* 도와 VV+EC,*,F,도와,Inflect,VV,EC,돕/VV+아/EC,* 드릴까요 VX+EF,*,F,드릴까요,Inflect,VX,EF,드리/VX+ᆯ까요/EF,* ? SF,*,*,*,*,*,*,*,* EOS 그럼 이건 무슨 뜻인줄 아세요?(Enter) 그럼 MAJ,*,T,그럼,*,*,*,*,* 이건 NP+JX,*,T,이건,Inflect,NP,JX,이거/NP+ㄴ/JX,* 무슨 MM,~비인성명사,T,무슨,*,*,*,*,* 뜻 NNG,*,T,뜻,*,*,*,*,* 인 VCP+ETM,*,T,인,Inflect,VCP,ETM,이/VCP+ᆫ/ETM,* 줄 NNB,*,T,줄,*,*,*,*,* 아세요 VV+EP+EF,*,F,아세요,Inflect,VV,EF,알/VV+시/EP+어요/EF,* ? SF,*,*,*,*,*,*,*,* EOS (Ctrl + D) #
설치하기
제대로 작동하는 것을 확인하면 다음과 같이 설치를 마무리한다. 만약 우분투에 root 계정과 암호를 만들지 않았다면 sudo passwd root 명령어로 만들면 된다.
$ su - # make install (설치 과정 진행) reading ./matrix.def ... 3819x2694 emitting matrix : 100% |###########################################| done! echo To enable dictionary, rewrite /usr/local/etc/mecabrc as \"dicdir = /usr/local/lib/mecab/dic/mecab-ko-dic\" To enable dictionary, rewrite /usr/local/etc/mecabrc as "dicdir = /usr/local/lib/mecab/dic/mecab-ko-dic" #
Mecab 설치 경로: /usr/local/lib/mecab/dic/mecab-ko-dic
Mecab 파이썬 바인딩 설치
관련 웹사이트: https://pypi.python.org/pypi/mecab-python3
$ sudo pip install mecab-python3
만약 파이썬3에서 import MeCab가 되지 않는다면, 다음과 같이 pip3를 통해 설치하면 된다:
$ sudo apt-get install python3-pip $ sudo pip3 install mecab-python3
Mecab-python을 이용한 형태소 분석
mecab-ko-dic 설치 경로로 이동해서 아래와 같은 파이썬 코드를 실행한다.
$ cd /usr/local/lib/mecab/dic/mecab-ko-dic
>>> import MeCab >>> m = MeCab.Tagger('-d .') >>> print m.parse(u'파이썬에서 형태소 분석하기.'.encode('utf-8')) 파이썬 NN,T,파이썬,*,*,*,*,* 에서 JKB,F,에서,*,*,*,*,* 형태소 NN,F,형태소,Compound,*,*,형태+소,형태/NN/1/1+형태소/Compound/0/2+소/NN/1/1 분석 NN,T,분석,*,*,*,*,* 하 XSV,F,하,*,*,*,*,* 기 ETN,F,기,*,*,*,*,* . SF,*,*,*,*,*,*,* EOS
mecab-ko-dic 설치 경로로 이동하는게 불편하다면 다음의 파이썬 코드를 이용하면 된다:
m = MeCab.Tagger('-d /usr/local/lib/mecab/dic/mecab-ko-dic')
mecab-ko-dic 품사 태그 설명
https://docs.google.com/spreadsheet/ccc?key=0ApcJghR6UMXxdEdURGY2YzIwb3dSZ290RFpSaUkzZ0E&usp=sharing
대분류 | 세종 품사 태그 | mecab-ko-dic 품사 태그 | ||
태그 | 설명 | 태그 | 설명 | |
체언 | NNG | 일반 명사 | NNG | 일반 명사 |
NNP | 고유 명사 | NNP | 고유 명사 | |
NNB | 의존 명사 | NNB | 의존 명사 | |
NNBC | 단위를 나타내는 명사 | |||
NR | 수사 | NR | 수사 | |
NP | 대명사 | NP | 대명사 | |
용언 | VV | 동사 | VV | 동사 |
VA | 형용사 | VA | 형용사 | |
VX | 보조 용언 | VX | 보조 용언 | |
VCP | 긍정 지정사 | VCP | 긍정 지정사 | |
VCN | 부정 지정사 | VCN | 부정 지정사 | |
관형사 | MM | 관형사 | MM | 관형사 |
부사 | MAG | 일반 부사 | MAG | 일반 부사 |
MAJ | 접속 부사 | MAJ | 접속 부사 | |
감탄사 | IC | 감탄사 | IC | 감탄사 |
조사 | JKS | 주격 조사 | JKS | 주격 조사 |
JKC | 보격 조사 | JKC | 보격 조사 | |
JKG | 관형격 조사 | JKG | 관형격 조사 | |
JKO | 목적격 조사 | JKO | 목적격 조사 | |
JKB | 부사격 조사 | JKB | 부사격 조사 | |
JKV | 호격 조사 | JKV | 호격 조사 | |
JKQ | 인용격 조사 | JKQ | 인용격 조사 | |
JX | 보조사 | JX | 보조사 | |
JC | 접속 조사 | JC | 접속 조사 | |
선어말 어미 | EP | 선어말 어미 | EP | 선어말 어미 |
어말 어미 | EF | 종결 어미 | EF | 종결 어미 |
EC | 연결 어미 | EC | 연결 어미 | |
ETN | 명사형 전성 어미 | ETN | 명사형 전성 어미 | |
ETM | 관형형 전성 어미 | ETM | 관형형 전성 어미 | |
접두사 | XPN | 체언 접두사 | XPN | 체언 접두사 |
접미사 | XSN | 명사 파생 접미사 | XSN | 명사 파생 접미사 |
XSV | 동사 파생 접미사 | XSV | 동사 파생 접미사 | |
XSA | 형용사 파생 접미사 | XSA | 형용사 파생 접미사 | |
어근 | XR | 어근 | XR | 어근 |
부호 | SF | 마침표, 물음표, 느낌표 | SF | 마침표, 물음표, 느낌표 |
SE | 줄임표 | SE | 줄임표 … | |
SS | 따옴표,괄호표,줄표 | SSO | 여는 괄호 (, [ | |
SSC | 닫는 괄호 ), ] | |||
SP | 쉼표,가운뎃점,콜론,빗금 | SC | 구분자 , · / : | |
SO | 붙임표(물결,숨김,빠짐) | SY | ||
SW | 기타기호 (논리수학기호,화폐기호) | |||
한글 이외 | SL | 외국어 | SL | 외국어 |
SH | 한자 | SH | 한자 | |
SN | 숫자 | SN | 숫자 |
References
- 공식사이트: https://bitbucket.org/eunjeon/mecab-ko-dic
- 다운로드: https://bitbucket.org/eunjeon/mecab-ko-dic/downloads
- mecab에서 한국어 사전 설치해 형태소 분석하기
- 은전한닢 프로젝트 설치
- 형태소 분석기 mecab와 은전한닢 프로젝트
- Mecab 한글 형태소 분석기 (파이썬 바인딩까지)
- KoNLPy
- [Slideshare] 자바, 미안하다! 파이썬 한국어 NLP