본문 바로가기
IT/NLP

Mecab 오류 (NameError: name 'Tagger' is not defined) 처리 방법

by 소소메모 2020. 1. 6.
반응형

 

 

 

KoNLPy https://konlpy-ko.readthedocs.io/ko/v0.4.3/

Mecab 이 참 괜찮은데, 설치 때문에 사람들을 힘들고 어렵게 한다.

심지어 윈도우에서는 설치도 안된다. (찾아 보면 있을지도?)

 

몇번 설치해본 경험이 나름 있어서 이번에 새로 도커로 우분투를 올려서 처음부터 설치해보려고 했는데,

덜컥 하고 오류가 나서 여러가지로 찾아보면 고생을 좀 했다.

 

sudo pip3 install konlpy

보통 위와 같이 설치하고,

 

 

파이썬을 실행시켜 Mecab 을 사용해보면

> python3
Python 3.6.9 (default, Nov 7 2019, 10:44:02) 
[GCC 8.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.

> from konlpy.tag import Mecab
> mecab = Mecab()

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

NameError: name 'Tagger' is not defined

 

이런식으로 오류가 난다...

 

혹시나 해서 KoNLPy 공식홈 가이드처럼 https://konlpy-ko.readthedocs.io/ko/v0.4.3/install/

아래 내용을 입력해봤으나

bash <(curl -s https://raw.githubusercontent.com/konlpy/konlpy/master/scripts/mecab.sh)

 

그러나 이것을 입력해도 여전히 오류가 났다.

..........

 

구글링을 통해 몇가지를 시도해보다가 다음 방법으로 오류를 해결하였다.

 

결론은 수동으로 Mecab 설치.

총 3개를 직접 설치해주면 된다.

 

mecab-ko 설치

mecab-dic 설치

mecab-python 설치

 

은전 빗버킷에 설명이 상세히 있긴 하지만 다시

https://bitbucket.org/eunjeon/mecab-ko-dic/src/master/

 

 

상세히 적어보면

 

1. mecab-ko 설치

cd /tmp
sudo wget https://bitbucket.org/eunjeon/mecab-ko/downloads/mecab-0.996-ko-0.9.2.tar.gz
sudo tar xvf mecab-0.996-ko-0.9.2.tar.gz

cd /tmp/mecab-0.996-ko-0.9.2
sudo ./configure
sudo make check
sudo make install

 

 

2. mecab-dic 설치

cd /tmp
wget https://bitbucket.org/eunjeon/mecab-ko-dic/downloads/mecab-ko-dic-2.1.1-20180720.tar.gz
tar zxvf mecab-ko-dic-2.1.1-20180720.tar.gz

cd /tmp/mecab-ko-dic-2.1.1-20180720
sudo ./autogen.sh
sudo ./configure
sudo make
sudo make install

 

 

3. mecab-python 설치

cd /tmp
git clone https://bitbucket.org/eunjeon/mecab-python-0.996.git
cd mecab-python-0.996
python3 setup.py build
python3 setup.py install

 

 

설치후 정상 동작 확인

python3
Python 3.6.9 (default, Nov  7 2019, 10:44:02)
[GCC 8.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> from konlpy.tag import Mecab
>>> mecab = Mecab()
>>> print(mecab.pos("아버지가방에들어가신다"))
[('아버지', 'NNG'), ('가', 'JKS'), ('방', 'NNG'), ('에', 'JKB'), ('들어가', 'VV'), ('신다', 'EP+EC')]

 

 

반응형

'IT > NLP' 카테고리의 다른 글

Colab 에 Mecab name 'Tagger' is not defined 오류 없이 설치하는 방법  (0) 2020.01.06
한국어 dataset 모음  (0) 2020.01.02

댓글