자연어 처리에서 형태소 분석을 위해 사용되는 mecab를 설치하는데 겪었던 시행착오를 여기에 정리해둔다.
python jupyter 에서 mecab 를 실행하면 다음과 같은 에러가 발생했다.
from konlpy.tag import Mecab
tagger = Mecab()
---------------------------------------------------------------------------
NameError Traceback (most recent call last)
/usr/local/lib/python3.7/site-packages/konlpy/tag/_mecab.py in __init__(self, dicpath)
106 try:
--> 107 self.tagger = Tagger('-d %s' % dicpath)
108 self.tagset = utils.read_json('%s/data/tagset/mecab.json' % utils.installpath)
NameError: name 'Tagger' is not defined
During handling of the above exception, another exception occurred:
Exception Traceback (most recent call last)
<ipython-input-467-211dfe63a9fb> in <module>
----> 1 tagger = Mecab()
/usr/local/lib/python3.7/site-packages/konlpy/tag/_mecab.py in __init__(self, dicpath)
110 raise Exception('The MeCab dictionary does not exist at "%s". Is the dictionary correctly installed?\nYou can also try entering the dictionary path when initializing the Mecab class: "Mecab(\'/some/dic/path\')"' % dicpath)
111 except NameError:
--> 112 raise Exception('Install MeCab in order to use it: http://konlpy.org/en/latest/install/')
Exception: Install MeCab in order to use it: http://konlpy.org/en/latest/install/
제시하는 홈페이지에 접속해서 설치를 시도해봤다.
http://konlpy.org/ko/latest/install/#id1
그래도 다음의 에러가 발생하면서 진행되지 않았다.
configure: creating ./config.status
config.status: creating Makefile
sudo: ldconfig: command not found
메세지로 보면 ldconfig 를 설치해야 한다는 것인데, 검색해보니 나만 그런거 같진 않았다.
설치하는 명령어를 찾아서 실행해 보았는데 안된다.
sudo update_dyld_shared_cache
...
update_dyld_shared_cache: warning: x86_64h rejected from cached dylibs: /System/Library/PrivateFrameworks/CreateML.framework/Versions/A/CreateML (("Could not find dependency '/System/Library/PrivateFrameworks/TuriCore.framework/Versions/A/TuriCore'"))
update_dyld_shared_cache: warning: x86_64h rejected from cached dylibs: /usr/lib/swift/libswiftCreateML.dylib (("Could not find dependency '/System/Library/PrivateFrameworks/TuriCore.framework/Versions/A/TuriCore'"))
강제로 하라도 하는데 역시나 되지 않았다.
(강제로 하는방법 sudo update_dyld_shared_cache -force)
그러다 누군가 삽질한 글을 찾게 되었는데 여기 도움을 많이 받았다.
https://lovablebaby1015.wordpress.com/2018/09/24/mecab-macos-설치-삽질-후기-작성중/
우선 다운로드 받는다.
wget https://raw.githubusercontent.com/konlpy/konlpy/master/scripts/mecab.sh
압축을 풀고 설치한다.
tar xvfz mecab-ko-dic-2.1.1-20180720.tar.gz
cd mecab-ko-dic-2.1.1-20180720
./configure
make
sudo make install
내 경우 설치하던 마지막줄에 에러가 입력되었다.
$ make
CDPATH="${ZSH_VERSION+.}:" && cd . && /bin/sh /Users/user/Downloads/mecab-ko-dic-2.1.1-20180720/missing --run aclocal-1.11
/Users/user/Downloads/mecab-ko-dic-2.1.1-20180720/missing: line 52: aclocal-1.11: command not found
WARNING: `aclocal-1.11' is missing on your system. You should only need it if
you modified `acinclude.m4' or `configure.ac'. You might want
to install the `Automake' and `Perl' packages. Grab them from
any GNU archive site.
cd . && /bin/sh /Users/user/Downloads/mecab-ko-dic-2.1.1-20180720/missing --run automake-1.11 --gnu
/Users/user/Downloads/mecab-ko-dic-2.1.1-20180720/missing: line 52: automake-1.11: command not found
WARNING: `automake-1.11' is missing on your system. You should only need it if
you modified `Makefile.am', `acinclude.m4' or `configure.ac'.
You might want to install the `Automake' and `Perl' packages.
Grab them from any GNU archive site.
CDPATH="${ZSH_VERSION+.}:" && cd . && /bin/sh /Users/user/Downloads/mecab-ko-dic-2.1.1-20180720/missing --run autoconf
configure.ac:2: error: possibly undefined macro: AM_INIT_AUTOMAKE
If this token and others are legitimate, please use m4_pattern_allow.
See the Autoconf documentation.
make: *** [configure] Error 1
그래서 압축해제한 파일을 삭제하고 다시 압축해제 한 다음 ./configure 전에 autoreconf 를 실행했다.
tar xvfz mecab-ko-dic-2.1.1-20180720.tar.gz
cd mecab-ko-dic-2.1.1-20180720
autoreconf
./configure
make
sudo make install
다음과 같은 메세지가 출력되면 설치완료
make[1]: Nothing to be done for `install-exec-am'.
./install-sh -c -d '/usr/local/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/local/lib/mecab/dic/mecab-ko-dic'
설치확인하는 방법은 터미널에 다음 명령어 실행한 후, 아무 문장이나 써보면 된다
mecab -d /usr/local/lib/mecab/dic/mecab-ko-dic
한글로 문장입력 해보자
력 NNG,*,T,력,*,*,*,*
해 VV+EC,*,F,해,Inflect,VV,EC,하/VV/*+아/EC/*
보 VX,*,F,보,*,*,*,*
자 EC,*,F,자,*,*,*,*
마지막으로 mecab-python 을 설치하자
mac os가 mojave의 경우는 다음으로 된다고 하는데, 그 아랫버전은 다른 방법으로 해야하는거 같다.
pip3 install mecab-python3
끝.
참조:
https://lovablebaby1015.wordpress.com/2018/09/24/mecab-macos-설치-삽질-후기-작성중/
https://bitbucket.org/eunjeon/mecab-ko-dic/issues/4/mecab-ko-dic-150-20140223
'공부 > 데이터' 카테고리의 다른 글
[python-numpy] 차원 수정(reshape) (0) | 2019.11.05 |
---|---|
[python] 공공데이터 API호출 및 pandas 로 변환하기 (4) | 2019.11.03 |
[pandas] loc 와 iloc 차이 (0) | 2019.10.09 |
[pandas] groupby 에 컬럼별로 count, sum, mean 하기 (0) | 2019.10.08 |
[pandas] 날짜 문자열을 datetime 형태로 변경 (0) | 2019.10.06 |
댓글