챗봇 프로젝트를 진행하던 중, 형태소 라이브러리를 사용하기 위해 Konlpy.tag 패키지의 Mecab을 사용한 적이 있었습니다. ( 링크 )

한국어에 맞게 형태소를 분석하려면 은전한닢 프로젝트링크 )인 mecab-ko 라이브러리를 사용해야 하는데,

리눅스 환경에서는 어찌어찌 구글링을 열심히 해서 해결 했지만, Windows 상에서는 Tagger를 찾을 수 없다는 오류가 발생해서 실행이 되질 않았습니다.


File "/usr/local/lib/python3.6/site-packages/konlpy/tag/_mecab.py", line 102, in __init__
    self.tagger = Tagger('-d %s' % dicpath)
NameError: name 'Tagger' is not defined


위와 같은 오류를 해결하는 방법은 konlpy.tag 라이브러리가 아닌 eunjeon 라이브러리를 설치하면 됩니다.

즉, from konlpy.tag import Mecab 이 아니라

from eunjeon import Mecab 모듈을 호출하면 되고,

Mecab 인스턴스를 생성할 때 인자로 아무 것도 넘겨주지 않으면 됩니다.

from eunjeon import Mecab
mecab = Mecab()

# from konlpy.tag import Mecab
# mecab = Mecab('/usr/local/lib/mecab/dic/mecab-ko-dic')





참고로 CentOS 7 환경에서 오류를 해결한 방법도 소개하겠습니다.

리눅스에서는 eunjeon 패키지가 아닌, konlpy.tag 패키지 사용을 기준으로 작성했습니다.


1. 기본 라이브러리 설치

# yum install -y wget

# yum install -y gcc-c++

# yum install -y curl

# yum install -y libtool

# yum install -y cmake


2. JDK, Jpype1, konlpy 설치

# yum install -y java-1.7.0-openjdk-devel

# pip3.6 install Jpype1

# pip3.6 install konlpy


3. mecab-ko 설치

# cd

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

# tar xvfz mecab-0.996-ko-0.9.2.tar.gz

# cd mecab-0.996-ko-0.9.2

# autoreconf -i             => AM_ICONV 에러 무시

# ./configure

# automake --add-missing

# ./test-driver

# make

# make install


4. mecab-ko-dic 설치

# cd

# wget https://bitbucket.org/eunjeon/mecab-ko-dic/downloads/mecab-ko-dic-2.0.3-20170922.tar.gz

# tar xvfz mecab-ko-dic-2.0.3-20170922.tar.gz

# cd mecab-ko-dic-2.0.3-20170922

# ./configure

# aclocal

# make

# make install


5. Tagger is not defined 에러 해결

# cd

# git clone https://bitbucket.org/eunjeon/mecab-python-0.996.git

# cd mecab-python-0.996/

# python3.6 setup.py build

# python3.6 setup.py install

 

# vi /etc/ld.so.conf

/usr/local/lib


# ldconfig

Tagger 에러를 해결하기 위해 구글링을 해보셨다면 이 페이지를 보셨을 것입니다. ( 링크 )

그럼에도 해결이 되질 않았는데, 따로 기록을 해두진 않았지만 어떤 so 파일을 찾을 수 없다는 내용이었습니다.


이 문제를 해결하기 위해 구글링을 하던 중, so 파일과 관련하여 좋은 글이 있었고 덕분에 해결할 수 있었습니다. ( 링크 )




이상으로 형태소 분석기 라이브러리인 Mecab-ko를 설치할 때 발생한 Tagger is not defined 에러를 해결하는 방법에 대해 알아보았습니다.