포스팅 목적
이번 포스팅은 Python 형태소 분석기 중 하나인 Mecab(은전한닢)에서 나오는 에러를 해결하는 방법에 대해 정리합니다.
해당 에러는 Mecab에서 사용자 사전(user dictionary)를 추가할 때 ./tools/add-userdic.sh을 실행 했을 때 나는 오류입니다.
포스팅 본문
Python으로 텍스트 데이터 특히, 자연어 처리를 할 때 형태소 분석기를 많이 사용합니다.
그리고 다양한 형태소 분석기 중 인기 있는 형태소 분석기 Mecab(은전한닢 이라고도 불리웁니다.)이 있습니다.
Mecab은 속도도 빠르고, 다른 konlpy 형태소 분석기보다 정확하여 많이 사용합니다. 또한, 사용자 단어(user dictionary)를 쉽게 추가할 수 있기 때문에 매우 유용합니다.
- Mecab에서 사용자 단어 사전 추가하기 : https://lsjsj92.tistory.com/520
하지만, Mac OS 환경에서 Mecab 사용자 단어 사전 추가할 때 아래와 같은 에러가 나올 수 있습니다.
- Mecab 사용자 사전 추가 시 에러 메세지 : [param.load(DCONF(DICRC))] no such file or directory: /../dicrc
위 사진과 글 처럼 ./tools/add-userdic.sh을 입력 했을 때 [param.load(DCONF(DICRC))] no such file or directory: /../dicrc 라는 에러 문구가 나옵니다.
Mecab에서 [param.load(DCONF(DICRC))] no such file or directory: /../dicrc 라는 에러 문구가 나오는 이유는 다음과 같다고 합니다.
- add-userdic.sh 스크립트 내에서 실행되는 readlink가 Mac OS에서 일반적인 linux와 동작이 다르다
- 따라서, 변수 경로 등이 꼬여서 실패하는 것으로 보임
그러면 이 에러를 어떻게 해결할까요? 생각보다 간단합니다.
일단 혹시 모르니 brew를 이용해서 brew install coreutils를 설치해줍니다.
그러면 위와 같이 쭉쭉 설치가 될 것입니다.
그런 다음 Mecab에 tools/add-userdic.sh 파일을 vi로 열어줍니다.
vi add-userdic.sh으로 파일을 열어주면 아래 사진과 같이
else 절에 readonly PROG_DIR=$(readlink -m $(dirname $0)) 구문이 있을겁니다.
이 문구를 아래와 같이 수정해주면 됩니다.
즉, readlink에서 앞에 g만 붙여서 greadlink로 바꿔주기만 하면 [param.load(DCONF(DICRC))] no such file or directory: /../dicrc 에러는 해결됩니다!
그 다음 tools/add-userdic.sh을 실행시키면
위와 같이 잘 동작하는 것을 볼 수 있을겁니다.
'python' 카테고리의 다른 글
파이썬 대용량 csv 파일 읽는 방법 정리 - Python read large size csv file (2) | 2020.07.04 |
---|---|
파이썬(Python) 라이브러리 소개 - Rich 라이브러리(텍스트 출력을 이쁘게 만들어보자) (0) | 2020.06.03 |
test code coverage(코드 커버리지)란? Python test code coverage 방법 (2) | 2020.02.20 |
Python unittest를 사용해 TDD 맛보기 (0) | 2020.02.12 |
mac os에서 python konlpy 설치 및 gcc 에러 해결하기 (2) | 2019.12.29 |