Recent Posts
Recent Comments
Archives
반응형
250x250
«   2024/03   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31
Today
Yesterday

Total
03-30 00:01
관리 메뉴

Hey Tech

[NLP] KoNLPy Mecab 고유명사 등록 방법 본문

AI & 빅데이터/자연어처리(NLP)

[NLP] KoNLPy Mecab 고유명사 등록 방법

Tony Park 2021. 1. 24. 17:31
728x90
반응형

본 포스팅에서는 KoNLPy 라이브러리 내 Mecab 형태소 분석기의 고유명사 추가 방법을 알아봅니다.

목차

1.  Mecab 고유명사 사전 접근
2.  고유명사 사전 등록하기
3.  고유명사 사전 업데이트
4.  (Optional) 고유명사 사전 등록여부 확인

1.  Mecab 고유명사 사전 접근

Mecab 폴더 접근

cd /Users/[USER_NAME]/mecab-ko-dic-2.1.1-20180720

먼저, 터미널/커맨드라인을 통해 mecab 설치 위치에 접근해 줍니다. mecab 설치 시에 파일 경로를 바꾸시지 않았다면 위와 같이 PC 사용자 ID 폴더에 위치해 있습니다. 저와 mecab 버전이 달라 폴더 이름이 다를 수 있으니 참고만 하시길 바랍니다.

고유명사 사전 접근

cd user-dic
vi nnp.csv

터미널을 통해 고유명사 사전이 있는 user-dic 폴더에 접근하신 후, 텍스트 편집기를 통해 고유명사 사전을 열어줍니다.

고유명사 업데이트 이력이 없으시다면 저와는 다르게 등록되어 있는 고유명사가 많지는 않을 것입니다.

터미널 입력모드 변경

터미널 창에서는 일반 메모장 등과는 다르게 바로 어떤 텍스트도 입력이 안됩니다. 키보드 i 버튼을 누르시면 터미널 입력모드로 변경됩니다.

2.  고유명사 사전 등록하기

이제 고유명사를 직접 등록해 보겠습니다. 저는 "알람"이라는 단어를 고유명사로 처리해 보겠습니다.

고유명사 등록

* 고유명사 등록하는 방법
[단어],,,,,NNP,*,F/T,[단어],*,*,*,*,*

* 예시: "알람"이라는 종성에 받침이 있는 단어를 등록하는 경우
알람,,,,NNP,*,T,알람,*,*,*,*,*

등록방법은 위와 같은 패턴으로 똑같이 텍스트 편집기에서 입력해 주시면 됩니다. [단어] 부분에 고유명사 처리하고 싶으신 단어를 입력해 주세요.

종성 구분

중간에 T와 F에 차이는 입력하는 단어의 종성(맨 마지막 글자)의 받침 유무입니다. 즉, 종성에 받침이 있을 경우 T를, 받침이 없는 경우에는 F를 입력해 줍니다.

변경내용 저장

1) 사전 등록이 완료 시 ESC 버튼을 눌러 편집모드 해제

2) :wq 를 입력하신 후 Enter 버튼을 눌러 저장 후 텍스트 편집기 나가기

3.  고유명사 사전 업데이트

tools 폴더 접근

cd ..
cd tools

변경내용 업데이트

sh add-userdic.sh
cd ..
make install

셋째 줄인 "make install" 입력 단계에서 "permission denied" 에러를 마주한다면, 아래 코드를 실행하여 "make install"의 권한을 해제해 주면 됩니다.

(optional) permission 에러 해결책

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

(Optional) 4.  고유명사 사전 등록여부 확인

이제 정상적으로 고유명사 사전이 등록되었는지 확인해 보겠습니다.

from konlpy.tag import Mecab #Mecab 형태소 분석기
mecab = Mecab()
mecab.nouns('갯수가 10번 이상인 경우일 경우 알람')

파이썬에서 konlpy에 있는 Mecab을 import 해줍니다.

mecab 형태소 분석기 내 nouns를 통해 예시 문장에서 명사에 해당하는 단어만 추출해 보겠습니다.

위의 스크린샷과 같이, "알람"이라는 단어가 고유명사 처리가 정상적으로 되어 mecab 명사 추출 시에도 올바르게 출력되는 것을 확인하실 수 있습니다.


 

포스팅 내용에 오류가 있거나 보완할 점이 있다면 아래에 👇👇👇 댓글 남겨주시면 감사드리겠습니다 :)

그럼 오늘도 즐겁고 건강한 하루 보내시길 바랍니다.

고맙습니다😊

728x90
반응형
Comments