-
형태소 분석기 mecab-ko 설치 + 사전 적용(+우선순위 높이기)python 2021. 2. 3. 12:01반응형
목차
- Mecab 설치
- 사전등록 및 우선순위 적용
# Mecab 설치
Jupyter에서 pip install konlpy을 한 뒤에 mecab를 사용 해보면 다음과 같은 에러가 발생한다.
1 NameError: name 'Tagger' is not defined
그래서 다음과 같이 세가지 mecab 관련 파일을 받고 설치 해야한다.
mecab-ko 설치 mecab-dic 설치 mecab-python 설치
참고 링크 : https://lovablebaby1015.wordpress.com/2018/09/24/mecab-macos-설치-삽질-후기-작성중/
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
2. mecab-ko-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
- 메캅 프로젝트 clone
>> git clone https://bitbucket.org/eunjeon/mecab-python-0.996.git >> cd mecab-python-0.996 >> python setup.py build >> su
이제 Jupyter 에서 정상적으로 Mecab 사용 가능
from konlpy.tag import Mecab mecab = Mecab()
# 사용자 사전 등록 및 우선순위 높이기
참고 : https://kugancity.tistory.com/entry/mecab에-사용자사전기분석-추가하기
- 표층형 : 단어명 - 1785,3543,4267 : 좌문맥ID, 우문맥ID, 단어비용 (자동 생성 처리로 입력) - 품사태그 : 품사 입력 (mecab-ko-dic 품사 태그를 참조하여 입력) - 의미분류 : 인명 또는 지명 또는 * - F : 받침유무 (원 단어의 끝 글자 받침 유무로 T, F 입력) - 읽기 : 발음 (원 단어의 발음을 입력) - 타입 : inflected, compound, Preanalysis, * - 첫번째 품사, 마지막 품사 : 기분석으로 나눠지는 토큰에 대한 각 품사 입력 (mecab-ko-dic 품사 태그를 참조하여 입력) - 원형 : 토큰 들로 나눠지는 부분 +로 입력 ( 각 토큰 : 표층형/품사태그/의미분류 ) - 인덱스표현 : 토큰 들로 나눠지는 부분 +로 입력 ( 각 토큰: 표층형/품사태그/의미부류/PositionIncrementAttribute/PositionLengthAttribute)
1. 사전 등록
- mecab-ko-dic 설치 위치로 가서 nnp.csv에 사용자 사전 입력
>> cd ~/mecab-ko-dic-2.1.1-20180720/user-dic >> vi nnp.csv 다음 형태로 입력 구르미그린달빛,0,0,0,NNP,*,T,구르미그린달빛,*,*,*,* 고프로,0,0,0,NNP,*,F,고프로,*,*,*,* 썸즈업,0,0,0,NNP,*,T,썸즈업,*,*,*,* 썬팍,0,0,0,NNP,*,T,썬팍,*,*,*,*
- 적용 전 테스트
- 사전 적용
tools>> ./add-userdic.sh
mecab-ko-dic-2.1.1-20180720 >> make install
(base) ➜ mecab-ko-dic-2.1.1-20180720 cd tools (base) ➜ tools ./add-userdic.sh (base) ➜ mecab-ko-dic-2.1.1-20180720 make install generating userdic... nnp.csv . . . emitting matrix : 100% |###########################################| done! echo To enable dictionary, rewrite /usr/local/etc/mecabrc as \"dicdir = /usr/local/lib/mecab/dic/mecab-ko-dic\" To enable dictionary, rewrite /usr/local/etc/mecabrc as "dicdir = /usr/local/lib/mecab/dic/mecab-ko-dic" (base) ➜ tools
- 사전 적용 후 테스트
사전은 적용 되었지만 등록한 단어의 우선순위(단어비용)가 낮아서, 원하지 않는 모양으로 분해 되는 것을 확인함. (단어비용을 낮추면 검색 우선순위가 높아짐)
현재 적용된 단어 비용구르미그린달빛의 단어비용 : 2953
구르/미/그린/달빛 단어비용 : 2679/3464/1247/22152. 우선 순위 적용 (단어비용 낮추기)
- mecab-ko-dic-2.1.1-20180720 >> vi user-nnp.csv
- 2953 → 0 변경 후 저장
- 변경 사항 반영
mecab-ko-dic-2.1.1-20180720 >> sudo make clean
mecab-ko-dic-2.1.1-20180720 >> sudo make install- 결과 확인
반응형'python' 카테고리의 다른 글
python 패키지 생성 설치 (0) 2021.07.19 anaconda 프로젝트 별 환경 생성 (0) 2021.07.19