본문 바로가기

관리 메뉴

mecab-ko-dic 커스텀 단어 추가 및 우선순위 높이기 본문

Elastic Stack

mecab-ko-dic 커스텀 단어 추가 및 우선순위 높이기

SaintsP 2019. 7. 26. 15:32


엘라스틱 서치에서 나은 한글 검색을 위해 형태소 분석기를 사용합니다.  

 

한글 형태소 분석기 mecab-ko-dic 커스텀 단어를 추가하고, 해당 단어의 우선순위를 높이는 방법을 포스팅하겠습니다.

  

운영체제는 Centos 7 입니다.

 

  

내려받은 mecab-ko-dic/userdic 디렉토리 안에 csv 확장자로 사전 파일을 추가합니다. (일반 고유명사는 nnp.csv, 인명은 person.csv, 지명은 place.csv 추가)

 

  

커스텀 단어를 추가할 때에 규칙이 있습니다. 해당하는 규칙은 https://docs.google.com/spreadsheets/d/1-9blXKjtjeKZqsf4NzHeYJCrr49-nXeRF6D80udfcwY/edit#gid=1718487366 참조하면 됩니다.

 

   

커스텀 단어를 추가한 쉘스크립트(mecab-ko-dic/tools/add-userdic.sh) 실행하여 사전을 컴파일 해줍니다.

 

  

컴파일 후에는 make install 통해 설치하면 됩니다. (이미 make install 설치가 상황에서 커스텀 단어를 추가하는 경우에는 make install 전에 make clean 한번 실행한 make install 실행합니다.)

 

  

install mecab-ko-dic/tools/mecab-bestn.sh 실행하여 등록한 커스텀 단어를 입력하면 단어 비용과 함께 검색이 되는 것을 확인할 있습니다.

 

  

하지만 커스텀 단어가 우선 검색이 안되는 경우가 많이 있습니다. 이럴때는 커스텀 단어의 단어비용을 임의로 낮게 바꿔주면, 검색 우선순위가 높아지게 됩니다.

 

  

커스텀 단어의 단어비용을 낮추려먼, 해당하는 단어가 들어있는 mecab-ko-dic/user-xxx.csv 파일을 수정해주면 됩니다.

 

  

주의할 점은 mecab-ko-dic/userdic/ 디렉토리 안에 있는 nnp.csv person.csv place.csv 수정하는 것이 아니라, 커스텀 단어 추가 컴파일 하면 생기는 파일인 mecab-ko-dic/user-nnp.csv, mecab-ko-dic/user-person.csv, mecab-ko-dic/user-place.csv 수정해줘야 됩니다.

 

  

해당 파일을 열어보면 단어 옆에 숫자들이 3개가 추가되어있는것을 확인할 있습니다. 첫번째, 두번째 숫자는 문맥 ID이고, 세번째 숫자가 단어 비용인데, mecab 단어비용이 낮은 것을 우선하여 검색하기 때문에, 단어 비용을 임의로 낮추면 해당 커스텀 단어의 검색 우선순위가 높아지게 됩니다.

 

 

커스텀 단어의 단어 비용을 낮추고 make clean; make install 실행해 설치 다음 mecab-ko-dic/tools/mecab-bestn.sh 실행해 커스텀 단어를 입력하면 우선순위가 높아진 것을 있습니다.





출처 1. 은전한닢 프로젝트 : 형태소 분석기 프리젠테이션 자료 

- http://eunjeon.blogspot.com/2014/06/blog-post.html


출처 2. mecab-ko-dic 커스텀 단어 추가 

- https://bitbucket.org/eunjeon/mecab-ko-dic/src/df15a487444d88565ea18f8250330276497cc9b9/final/user-dic/README.md?fileviewer=file-view-default



Comments