뒤로가기

Common

IntelliJ와 WSL2로 Mecab-ko 개발환경 셋팅하기

반윤성 2022.12.19.

Mecab-ko ?

이 방식은 WSL에 Mecab을 구성후 Windows에서 분석기를 구동하는 방법입니다

Mecab-ko는 오픈소스 한글 형태소 분석기로, mecab 이라고 하는 일본어 형태소 분석기를 차용하여 한글 특성을 반영한 분석기입니다.

그리고 Elasticsearch에서는 기본 분석기 외에도 커스텀 플러그인 기능을 제공하고 있어서, 원하는 형태의 색인을 위해 다양한 분석기를 사용할 수 있습니다.

그렇다면 다양한 요구사항을 반영해 개선할 수 있도록 Mecab-ko를 로컬 PC에서 셋팅을 해보겠습니다.

Settings

1. Install WSL

우선 Windows에서 WSL 셋팅이 되어 있어야 합니다.

아직 설치가 되지 않았다면, 설치 방법은 아래의 블로그에 자세히 포스팅 되어 있습니다.

  • WSL2를 설치하여 Ubuntu 20.04 사용하는 방법, https://webnautes.tistory.com/1170

/images/2022-12-10-Mecab-Ko/mecab1.png IntelliJ Terminal

2. Download Mecab-ko

이제 차례로 Mecab-ko 실행에 필요한 파일을 받아 셋팅합니다. 은전한닢 프로젝트에서 파일을 모두 공개하고 있으므로 해당 레포지토리에서 자료를 받아 이용하면 됩니다.

우선 분석기와 사전을 차례로 설치합니다.

// 1. Mecab-ko 한국어 형태소 분석기 컴파일 & 설치
wget https://bitbucket.org/eunjeon/mecab-ko/downloads/mecab-0.996-ko-0.9.2.tar.gz
 
tar xvfz mecap-0.996-ko-0.9.2.tar.gz
 
cd mecab-0.996-ko-0.9.2
 
./configure
 
make
 
make install
// 2. Mecab-ko-dic 한국어 사전 파일 설치
wget https://bitbucket.org/eunjeon/mecab-ko-dic/downloads/mecab-ko-dic-2.0.1-20150920.tar.gz
 
tar xvfz mecab-ko-dic-2.0.1-20150920.tar.gz
 
cd mecab-ko-dic-2.0.1-20150920
 
./autogen.sh
 
./configure
 
make
 
make install

이어서 Jar파일을 빌드해서 라이브러리 경로(/usr/local/lib)로 복사합니다.

빌드를 위해 JDK를 설치합니다. 여기서는 11 버전으로 진행하겠습니다.

sudo apt install openjdk-11-jdk

# 3. Mecab Java 다운로드
wget https://bitbucket.org/eunjeon/mecab-java/downloads/mecab-java-0.996.tar.gz

tar xvfz mecab-java-0.996.tar.gz

cd mecab-java-0.996

vi Makefile
# Makefile 수정

TARGET=MeCab

JAVAC=javac

JAVA=java

JAR=jar

CXX=c++

# 원하는 버전으로 JDK 교체합니다
INCLUDE=/usr/lib/jvm/java-1.11.0-openjdk-amd64/include
#INCLUDE=/home/parallels/Programs/jdk1.7.0_75/include

...

컴파일 후 libMeCab.so, MeCab.jar 파일이 생성됩니다. 이후에 해당 경로로 파일을 위치 시켜줍니다.

make

cp libMeCab.so /usr/local/lib
cp MeCab.jar /usr/local/lib
# 4. 기타 환경 설정 수정

<라이브러리 Export>

export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH

export JAVA_HOME=/usr/lib/jvm/java-1.8.0:$JAVA_HOME

export ES_JAVA_OPTS="${ES_JAVA_OPTS} -Djava.library.path=/usr/local/lib"

<적용 확인>

echo $LD_LIBARARY_PATH

-> /usr/local/lib:

echo $JAVA_HOME

-> /usr/lib/jvm/java-1.8.0:

echo $ES_JAVA_OPTS

-> -Djava.library.path=/usr/local/lib

Test

Test & Debug Mecab-Ko

이제 로컬에서 Mecab을 실행하기 위한 준비가 완료되었습니다.

다음과 같은 명령어로 간단하게 테스트 할 수 있습니다.

user:/mnt/c$ mecab
아버지가방에들어가신다
아버지  NNG,*,F,아버지,*,*,*,*
가      JKS,*,F,가,*,*,*,*
방      NNG,장소,T,방,*,*,*,*
에      JKB,*,F,에,*,*,*,*
들어가  VV+EC,*,F,들어가,Inflect,VV,EC,들어가/VV/*+아/EC/*
        SH,*,*,*,*,*,*,*
        SY,*,*,*,*,*,*,*
다      EC,*,F,다,*,*,*,*
EOS

이렇게 정상적으로 설치된 것을 확인한 후에 디버깅 모드로 실행해보겠습니다.

Junit 테스트를 위한 Run/Configuration 설정은 아래를 참고하세요.

/images/2022-12-10-Mecab-Ko/mecab2.png

/images/2022-12-10-Mecab-Ko/mecab3.png

/images/2022-12-10-Mecab-Ko/mecab4.png

Mecab 분석기 로컬 개발을 위한 셋팅이 완료되었습니다.

정리

Mecab-Ko 분석기 수정 및 개선을 위해 선행되어야 할 작업은 로컬에서 테스트 및 디버깅 가능하도록 셋팅하는 것입니다. 관련된 자료가 많았지만 WSL2에서 Mecab-ko를 설치하는 자료가 없어서 진행하며 정리한 내용을 바탕으로 포스팅을 진행했습니다. Nori가 아닌 다른 분석기를 통해 형태소를 분석하고자 할 때 큰 도움이 되었으면 좋겠습니다.

참고 자료

은전한닢 Mecab - ko Git : https://bitbucket.org/eunjeon/