mecab에서는 사용자가 사전을 구축할 수 있도록 지원한다. 따라서 자연어 처리시 분석 품질을 높일 수 있다. 한국어 임베딩에서 제공하는 코드를 통해 진행해보았다. 추가로 konlpy를 윈도우 환경에서 실행시키다보면 환경 세팅이 까다롭다. 따라서 도커(docker)를 활용하여 리눅스 환경에서 설치해보았다.
1. Docker 컨테이너 빌드
우선 Docker 설치 후 한국어 임베딩 깃허브 사이트에서 제공하는 Dockerfile로부터 도커이미지 생성 및 컨테이너를 띄운다. 노트북이라 CPU 파일로 빌드했으며 아래 코드는 터미널에서 작성했다.
git clone https://github.com/ratsgo/embedding.git
cd embedding
docker build -t ratsgo/embedding-cpu -f docker/Dockerfile-CPU .
docker run -it --rm ratsgo/embedding-cpu bash
# 루트 권한으로 주피터 노트북을 띄운다
jupyter notebook –allow-root
2. 사용자 사전 추가
한국어 임베딩 책에 따르면 mecab-user-dic.csv을 실행시켜 직접 제시된 형식에 맞게 추가하는 방법을 제시한다. 하지만 엑셀을 키지 않고 터미널에서 명령어를 통해 해보았다.
# 해당 파일이 존재하는 디렉토리로 이동
cd /notebooks/embedding/preprocess
# vim 편집기를 통해 파일에 접근
vim mecab-user-dic.csv
# 입력 - i / 저장 후 닫기 - esc + wq
# 만약 vim 명령어가 실행되지 않는다면 설치부터 - sudo apt-get install vim
이 후 저자가 제공한 쉘스크립트 파일을 통해 쉽게 단어를 추가할 수 있다. 아래 명령어를 실행하면 입력한 "오리전자"라는 단어가 사용자 사전에 추가된다.
bash preprocess.sh mecab-user-dic
책의 설명과 별개로 본인이 직접해도 된다. mecab 설치 후 mecab-ko-dic 디렉토리 내에 mecab-user-dic.csv와 같은 형식으로 사용자 사전을 추가하고 아래 명령어를 실행하면 된다.
tools/add-user-dic.sh
3. 결과 확인
from konlpy.tag import Mecab
tokenizer = Mecab()
tokenizer.morphs('오리전자 텔레비전 정말 좋네요')
몇몇 단어의 경우, 사용자 사전에 추가해도 여전히 인식이 안되는 경우가 발생했다. 이는 우선순위를 조정해주면 된다.
* Reference - ratsgo.github.io/embedding/environment.html
'study' 카테고리의 다른 글
Mecab 사용자 사전 추가하기 (0) | 2021.02.10 |
---|---|
슬랙봇(Slack bot) 만들기 (0) | 2020.12.31 |
추천 시스템에 대하여 (0) | 2020.06.23 |
Mapbox를 활용한 지역별 코로나 감염자 시각화 (9) | 2020.05.16 |
[Python 문법] 정규 표현식 (0) | 2020.05.14 |
Interactive Widget 활용한 시각화 (0) | 2020.05.13 |
댓글0