Konlpy Mecab 사용자 단어 사전 추가 방법
자연어처리나 형태소 분석이 필요하거나 경험이 있으신 분이라면, konlpy라는 python 라이브러리를 알고계실겁니다.
konlpy에서 사용가능한 tagging 서브패키지는 Hannanum, Kkma, Komoran, Mecab, Okt(구, Twitter)가 존재합니다.
그 중 konlpy에 속한 MeCab는 사실 정확히는 MeCab-ko로서, 일본의 MeCab라는 형태소 분석기에 한국어 특징을 추가하여 한글 형태소 분석이 가능하게끔 만든 패키지 입니다. C-lang을 기반으로 만들어 다른 서브패키지보다 더 빠른 것이 특징입니다. 위의 이유 때문에 다른 서브패키지와는 다르게 추가적인 설치과정도 동반합니다.
이 mecab를 이용하여 형태소를 분석하면 다른 모든 형태소 분석기와 함께 가지는 단점이 있는데, 그것은 바로 최신의 단어를 형태소 분석기가 알 방법이 없다는 것입니다. 예를들면 사용하시는 형태소분석기의 단어사전이 업데이트 되어있지 않다면 "코로나19"라는 단어를 올바르게 분석하지 못할 것 입니다. 이런 최신의 단어들을 사용자가 목적에 맞게 분석기에 추가할 수 있습니다. Mecab를 기준으로 먼저 온라인에서 다운로드 받아 업데이트할 수 있는 단어사전을 업데이트 하는 방법을 알아본 뒤, 자신의 사전을 추가하는 방법을 알아보겠습니다.
먼저 mecab 한국어 사전을 다운로드 받습니다. https://bitbucket.org/eunjeon/mecab-ko-dic/downloads/ 이곳에서 받 을 수 있습니다.
터미널 혹은 커맨드라인에서 작업합니다.
목록에서 가장 최신의 파일을 다운로드 받고 압축을 해제합니다.
unzip mecab-XX-ko--XX.tar.gz
# or
tar zxfv mecab-XX-ko-XX.tar.gz
압축해제한 폴더의 내부로 이동합니다.
cd mecab-XX-ko-XX
configure을 실행합니다.
./configure
다음의 명령을 실행하여 소스코드를 컴파일합니다.
make
su
make install
위의 명령을 마치면 다운로드 받은 업데이트된 사전을 추가할 수 있습니다.
나만의 단어사전 추가하기
우선 다운로드, 압축해제, 압축해제 폴더로 이동까지의 순서는 같습니다.
내부의 user-dic폴더로 이동합니다.
cd user-dic
자신의 단어가 들어갈 csv 파일을 생성합니다.
touch my-dic.csv
자신이 추가하고싶은 단어를 아래의 규칙을 가지고 추가합니다.
단어,0,0,0,품사태그,의미분류,종성유무,읽기/타입,첫번째 품사,마지막 품사,원형
예)
서울,0,0,0,NNP,지명,T,서울,*,*,*,*
태양,0,0,0,NNG,*,T,태양,*,*,*,*
해수욕장,0,0,0,NNG,,T,해수욕장,Compound,*,*,해수욕+장
불태워졌,0,0,0,VV+EM+VX+EP,,T,불태워졌,Infected,VV,EP,불태우/VV+어/EC+지/VX+었/EP
자세한 내용은 https://bitbucket.org/eunjeon/mecab-ko-dic/src/master/ 에서 확인하실 수 있습니다.
csv파일을 user-dic폴더에 저장하고 다시 한 단계 위 폴더로 이동합니다. tools폴더로 이동합니다.
# csv 파일 저장 후,
cd ..
cd tools
./add-userdic.sh을 수행하여 csv파일의 내용을 컴파일 합니다.
./add-userdic.sh
한 단계 위 폴더로 이동한 후, make install 명령을 통해 Mecab에 적용합니다.
cd ..
make install
'개발과 기술' 카테고리의 다른 글
[NextJS] NextJS, PassportJS, Redis를 이용한 로컬 인증 (ft. serializeUser와 deserializeUser) (0) | 2021.02.15 |
---|---|
[serverless] serverless 프레임워크 AWS 설정하기 2 (1) | 2020.05.15 |
[Docker] 도커 컨테이너 실행유지 방법 및 /dev/null 설명 (0) | 2020.05.15 |
[serverless] serverless 프레임워크 AWS 설정하기 1 (6) | 2020.05.13 |
[NextJS] 마크다운으로 글 작성하는 방법 (8) | 2020.05.11 |
댓글