Mac OS – KoNLPy 설치하기

KoNLPy 설치하기 – 맥 OS

## Install KoNLPy
$ python3 -m pip install konlpy        # Python 3.x

## MeCab 설치하기 (선택사항)
$ bash <(curl -s https://raw.githubusercontent.com/konlpy/konlpy/master/scripts/mecab.sh)

KoNLPy 설치 중 gcc 관련 오류 발생시 (아마도 Mac 에서는 십중팔구 오류가 발생할텐데), gcc 의 stdlib 를 libc++ 로 변경하여 다시 수행한다.

관련 이슈 : Mac OS konlpy 설치오류

$ export MACOSX_DEPLOYMENT_TARGET=10.15       ## Catalina version
$ CFLAGS='-stdlib=libc++' pip install konlpy

설치를 완료하면 python 콘솔을 띄워 간단히 테스트를 수행해 본다. (Twitter 말뭉치 사용)

konlpy test with twitter corpus

이번에는 MeCab 말뭉치를 이용해 테스트를 해 보자. (앞에 선택사항 설치 필요)
** Elasticsearch 공식 한글분석기인 nori_analyzer 도 MeCab 기반이다.

NameError: name ‘Tagger’ is not defined” 오류가 발생하면, MeCab 가 Mac OS 에 제대로 빌드&설치 되지 못한 탓이다. 아래 참고문서를 참조해서 ‘/tmp/’ 밑에 다운로드 된 MeCab 파일들을 다시한번 build & install 을 시도한다.

참고 문서 : [처음부터 시작하는 EC2] konlpy, mecab 설치하기(ubuntu)

$ cd /tmp && ls -al
mecab-0.996-ko-0.9.2
mecab-ko-dic-2.1.1-20180720
mecab-python-0.996
...

$ sudo update_dyld_shared_cache   ## sudo ldconfig(리눅스 명령어)
...
$ cd /tmp/mecab-0.996-ko-0.9.2
$ ./configure
$ make
$ make check
$ sudo make install
...
$ cd /tmp/mecab-ko-dic-2.1.1-20180720
$ ./autogen.sh
$ ./configure
$ make
$ sudo make install
...

## anaconda 등의 가상 환경 사용시!!
(myvenv)$ cd /tmp/mecab-python-0.996
(myvenv)$ python setup.py build
(myvenv)$ python setup.py install
...

## OK, let's test!
$ python
> from konlpy.tag import Mecab
> m = Mecab()
> m.pos("안녕 또막아")
[('안녕', 'IC'), ('또', 'MAG'), ('막', 'VV'), ('아', 'EC')]

관련 이슈 : sudo: ldconfig: command not found for C++ installation on Mac OS X, Sierra

KoNLPy 테스트하기

소스 다운로드 : git clone https://github.com/konlpy/konlpy

python3 -m pytest test

만일, “test/test_komoran.py” 단계에서 “java.lang.OutOfMemoryError” 발생하면
<konlpy_source_root>/konlpy/jvm.py 에서 init_jvm 의 max_heap_size = 1024 기본값을 2048 로 변경한 후 실행해 봅니다.

관련 이슈 : 꼬꼬마에서 java.lang.OutOfMemoryError가 뜨네요

참고 문서 : Java in Python, Komoran 3 를 Python package 로 만들기

import jpype

def restartJVM(jvmpath, classpath, max_memory):

    if jpype.isJVMStarted():
        jpype.shutdownJVM()

    try:
        jpype.startJVM(
            jvmpath,
            '-Djava.class.path=%s' % classpath,
            '-Dfile.encoding=UTF8',
            '-ea', '-Xmx{}m'.format(max_memory)
        )
    except Exception as e:
        print(e)

에러 출력 test/test_komoran.py:17 | konlpy/tag/_komoran.py:106 ==>
jpype._jclass.java.lang.OutOfMemoryError: java.lang.OutOfMemoryError: GC overhead limit exceeded

** 참고: 품사 태깅 클래스 간 비교

품사 태깅 클래스 간 성능 비교
  1. pytorch 설치
    1) python3 설치
    2) anaconda 설치
    3) https://anaconda.org/pytorch/pytorch

    좋아요

    응답

  2. 안녕하세요. 관련질문은 아니지만.. 인프런에 강의 보고 답변이 몇달째 없으신거같아서 문의..드려요 ㅜ firebase 메모웹앱 만드는거 하고있는데 uid 관련 json 파일 어떤거 올려야하나요?ㅜ

    좋아요

    응답

답글 남기기

아래 항목을 채우거나 오른쪽 아이콘 중 하나를 클릭하여 로그 인 하세요:

WordPress.com 로고

WordPress.com의 계정을 사용하여 댓글을 남깁니다. 로그아웃 /  변경 )

Google photo

Google의 계정을 사용하여 댓글을 남깁니다. 로그아웃 /  변경 )

Twitter 사진

Twitter의 계정을 사용하여 댓글을 남깁니다. 로그아웃 /  변경 )

Facebook 사진

Facebook의 계정을 사용하여 댓글을 남깁니다. 로그아웃 /  변경 )

%s에 연결하는 중

%d 블로거가 이것을 좋아합니다: