분석하고싶은코코

Mecab Mac 사용하기 + mecab 사용자 사전(user-dic) 추가하기 본문

Python/라이브러리

Mecab Mac 사용하기 + mecab 사용자 사전(user-dic) 추가하기

코코로코코 2023. 6. 15. 15:23
반응형

Python을 통해서 한글 NLP 작업을 하기 위해서 필수로 사용하게 되는게 konlpy 모듈입니다.

 

 이 모듈 안에서도 단어를 분리해주는 모듈들이 다양한데 그 중에서 이번 글에서는 mecab에 대해서 다뤄보겠습니다.

 

 

기본적으로

pip install konlpy

를 실행하면 knolpy관련 모듈이 설치 됩니다. 이후에 

 

from konlpy.tag import Mecab
mecab = Mecab()

을 실행해서 잘되면 다행이지만.... 저는 

 

-> 'NameError: name 'Tagger' is not defined'

 

에러가 발생했습니다. 그래서 mecab을 설치하는 부분부터 다시 찾아보게됐고 그 과정을 작성합니다.

 

순서는 아래와 같습니다.

 

1. mecab-ko 설치
2. mecab-dic 설치
3. mecab-python 설치

4. custom-dic 적용해보기

 

 

+ 단순히 Mecab모듈만 필요하신 분의 경우 아래과정 말고 

pip install python-mecab-ko

를 실행하시면 MeCab이 설치 됩니다. 이후 Python에서

from mecab import MeCab
mecab = MeCab()

을 실행하시면 mecab을 사용하실 수 있습니다.

 

 

 

 

다시 원래 내용으로 돌아와서 처음 언급한 에러를 해결해보겠습니다. 우선 터미널을 킨 직후의 상황에서 작업을 진행합니다.

1. mecab-ko 설치


 - 메캅 홈페이지에서 최신 버전 확인 후 다운로드 

   bitbucket.org/eunjeon/mecab-ko/downloads

 

 - 다운로드

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
>> ./configure
>> make
>> make check
>> sudo make install

터미널 명령어의 순서를 보면

다운로드 -> 압축해제 -> 폴더이동 ->  [configure ~ make install] (설치 작업) 이라고 생각하시면  됩니다.

 configure, make, make install에 대한 내용이 궁금하다면 링크를 통해 자세한 내용을 확인하실 수 있습니다.

(https://thoughtbot.com/blog/the-magic-behind-configure-make-make-install)

 

make install 부분에서 permission denied 라는 문구가 보인다면 아래 명령어를 실행해보세요. 권한을 해제하는 부분입니다.

make install DESTDIR=/tmp/myinst/
sudo cp -va /tmp/myinst/ /

 

이후 mecab- dic, python 설치 방법은 동일합니다.

2. mecab-dic 설치


 - 사전 관리 프로젝트 다운로드

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

 - 압축 해제 및 설치

>> tar xvfz mecab-ko-dic-2.1.1-20180720.tar.gz
>> cd mecab-ko-dic-2.1.1-20180720
>> ./configure
>> make
>> sudo make install

 

3. mecab python


 - mecab 프로젝트 clone

>> git clone https://bitbucket.org/eunjeon/mecab-python-0.996.git
>> cd mecab-python-0.996
>> python setup.py build
>> su

가이드에 적혀 있어서 적어두긴  했지만 가장 마지막 su라는 명령어 자체는 왜 작성 되었는지에 대해서는 잘 모르겟다...

su(root관리자) 접근하는 것이라 패스워드 입력하라고 나올텐데 이를 설정하지 않으신 분들은

(터미널에서 sudo -s -> passwd root를 입력하시면 비밀번호를 설정할 수 있습니다.)

 

 

이제  정상적으로 Mecab 사용 가능

from konlpy.tag import Mecab
mecab = Mecab()

 

4. mecab-user-dic


따로 설치가 필요하지 않고 수정하고 적용해주는 작업까지 해주면 됩니다.

 

mecab-ko-dic-(버전) <- 2번에서 압축 풀어둔 그곳입니다. 그곳으로 가면 user-dic이라는 폴더가 있는데 여기가 사용자 사전에 대한 정보를 입력해줄 곳입니다. 우선 mecab-ko-dic 폴더로 이동합니다.

cd ~/mecab-ko-dic-2.1.1-20180720

 

 

 

user-dic 폴더 안에는 nnp, person, place에 대한 csv파일이 있는데 여기에 정보를 추가로 입력해주시면 됩니다. 방법은 터미널에서 해도 되고 직접 파일을 열어서 수정해주셔도 됩니다. 다만 최종적으로 csv파일이여야 한다는 점만 유의하면 됩니다.

 

원하시는 단어, 품사, 종장 여부 등 기본적인 mecab에 추가해줄 단어의 정보를 추가해주어야 하는데 이는 아래 링크를 참고해주시면 됩니다.

(https://docs.google.com/spreadsheets/d/1-9blXKjtjeKZqsf4NzHeYJCrr49-nXeRF6D80udfcwY/edit#gid=1718487366)

 

이렇게 user-dic 안에 있는 파일에 원하는 단어를 추가했다면 터미널로 돌아와서 

./tools/add-userdic.sh
make install

 순서대로 실행해주시면 사용자 사전까지 정상적이 적용됩니다.

 

이후 python을 통해 mecab을 호출하고 사용자 설정한 단어가 포함된 문장을 분리해보면 정상적으로 분리되는 모습을 보실 수 있습니다.

반응형

'Python > 라이브러리' 카테고리의 다른 글

fbprophet 연습 - 비트코인  (0) 2022.11.10