본문 바로가기
인터넷/모바일

한글 형태소분석기 mecab-ko 설치하기

by blade. 2017. 3. 29.


######################

# mecab-ko 다운로드

1
wget "https://bitbucket.org/eunjeon/mecab-ko/downloads/mecab-0.996-ko-0.9.2.tar.gz"
cs


###

# mecab 설치


1
2
3
4
5
6
tar zxvf mecab-0.996-ko-0.9.2.tar.gz
cd mecab-0.996-ko-0.9.2/
configure --prefix=/home/blade/mecab
make
make install
 
cs


###

# mecab 사전 설치


1
2
3
4
5
6
cd /home/blade/zip
wget "https://bitbucket.org/eunjeon/mecab-ko-dic/downloads/mecab-ko-dic-2.0.1-20150920.tar.gz"
tar zxvf mecab-ko-dic-2.0.1-20150920.tar.gz
configure --prefix=/home/blade/mecab/dic --with-mecab-config=/home/blade/mecab/bin/mecab-config \
--with-dicdir=/home/blade/mecab/dic \
--libexecdir=/home/blade/mecab/libexec/mecab
make
make install
cs


만약, 아래와 같은 에러가 날 때에는


1
2
3
4
5
6
7
8
9
10
 
configure --prefix=/home/blade/mecab/dic
>> checking for a BSD-compatible install... /usr/bin/install -c
>> checking whether build environment is sane... yes
>> checking for a thread-safe mkdir -p... /bin/mkdir -p
>> checking for gawk... gawk
>> checking whether make sets $(MAKE)... yes
>> checking for mecab-config... no
>> configure: error: mecab-config is not found in your system
 
cs


1
2
3
4
./autogen.sh
configure --prefix=/home/blade/mecab/dic
make
make install
cs



라이브러리와 사전을 설치한 후에 사전디렉토리를 다시 변경하고 싶다면?

(없을 것 같지만, 쓰다보면 의외로 생김.. ㅋㅋ)


1
2
vi mecab_home/etc/mecabrc
dicdir = mecab_home/dic ; 원하는 디렉토리로 변경
cs



사용자 사전을 변경할 때에 쓰이는 품사 태그


NNG 일반 명사

NN 명사

NNP 고유 명사



###


EUCKR 인코딩 상태에서는 형태소 분석기가 제대로 동작하지않음.

iconv를 이용해서 utf8로 변환한다.


1
2
3
4
5
6
7
8
9
iconv -f euckr -t utf-8 1.euckr > 1.utf8
mecab 1.utf8 |more
input-buffer overflow. The line is splituse -#SIZE option.
[    SSO,*,*,*,*,*,*,*
건축    NNG,*,T,건축,*,*,*,*
과    JC,*,F,과,*,*,*,*
도시    NNG,*,F,도시,*,*,*,*
-    SY,*,*,*,*,*,*,*
광화문    NNG,*,T,광화문,Compound,*,*,광화/NNG/*+/NNG/*
cs



# 일반명사만 추출하고 싶다면


1
2
3
4
5
6
7
mecab 1.utf8 |grep NNG |awk '{print $1}'|more
input-buffer overflow. The line is split. use -b #SIZE option.
건축
도시
광화문
타워
cs



* 사용자 사전을 추가하려면, 손을 더 봐야함.



* 주의 #1, 프로그램을 인스톨하고 나서, 원본 디렉토리를 지우지않는다. (지우지않고 하는 방법도 있긴한데, 더 귀찮음)


* 주의 #2. 입력 데이터는 utf-8 인코딩으로 준비해놓는다. 포맷은 csv.


1
2
cd /home/blade/zip/mecab-ko-dic-2.0.1/user-dic
ls -alF *csv
cs



   만약, 나처럼 euc-kr 인코딩 환경에서 사용 중이라면, 사용자 사전 추가 작업을 하기 전에 입력용 데이터를 iconv를 이용해서 변환해놓는다.

   

1
iconv -f eurkr -t utf8 blade.euckr.csv > blade.csv
cs



* 주의 #3. 사용자 사전 예제는 인스톨 디렉토리에 있으므로 예제를 보고 잘 만들어놓는다.


  기본으로 제공되는 사전이 잘 만들어져있기 때문에, 대부분의 사용자들은 사용자 사전까지 손댈 일이 없을 것이다.  (이렇게 좋은 자료를 공개해주시다니, 제작자 여러분들께 감사드립니다. 꾸벅)


  복합 명사나 고유 명사를 추가하려면, user-dic 디렉토리에 있는 예제를 참고한다.



주의 사항을 숙지했다면, 사용자 사전을 추가하는 작업자체는 별로 어렵지않음.


사용자 사전 디렉토리에 *csv 포맷으로 데이터를 넣는다. (/home/blade/zip/mecab-ko-dic-2.0.1/user-dic/)


1
2
cd /home/blade/zip.mecab-ko-dic-2.0.1/tools/
add-userdic.sh
cs



끝.



########################

# mecab-ko-dic보다 더 좋다는 NIADic을 설치.

# NIADic 사전 다운로드

wget "https://github.com/haven-jeon/NIADic/archive/master.zip"