MAC OSX에서 NLTK data 설치하기

Mac OSX에서 NLTK Data 설치하기

  • 파이썬을 이용한 자연어 처리 툴깃
  • 분류, 토큰화, 형태소 분석, 태깅, 구문 분석 및 의미 추론을 위한 텍스트 처리 라이브러리, WordNet을 제공
  • 아나콘다를 사용하면 한 번에 다운로드를 받을 수 있으나, 아나콘다 환경이 아닐 때 직접 설치하려고 하면 CERTIFICATE_VERIFY_FAILED로 설치가 되지 않는다.
  • nltk.download() 에서 SSL 오류가 발생해 설치를 못 하고 고생하다 결국 nltk_data를 일일이 내려받았다.
  • 한 번에 받는 방법도 있다. 하지만 그 방법도 SSL 오류가 발생한다.
  • nltk/nltk_data: NLTK Data
  • 일일이 다운받는 게 귀찮다면 위의 깃헙 패키지 폴더를 nltk_data에 한 번에 옮겨놓고 필요한 패키지들의 압축을 해당 위치에서 풀어 사용해도 된다.
  • 일단 nltk부터 설치한다.
import nltk
!pip3 show nltk

Name: nltk
Version: 3.2.5
Summary: Natural Language Toolkit
Home-page: http://nltk.org/
Author: Steven Bird
Author-email: stevenbird1@gmail.com
License: Apache License, Version 2.0
Location: /Users/corazzon/codes/jupyter/lib/python3.6/site-packages
Requires: six

sentence = """At eight o'clock on Thursday morning Arthur didn't feel very good."""
tokens = nltk.word_tokenize(sentence)
tokens 
# nltk.download('punkt')

['At',
'eight',
o'clock,
'on',
'Thursday',
'morning',
'Arthur',
'did',
n't,
'feel',
'very',
'good',
'.']

tagged = nltk.pos_tag(tokens)
tagged

[('At', 'IN'),
('eight', 'CD'),
(o'clock, 'NN'),
('on', 'IN'),
('Thursday', 'NNP'),
('morning', 'NN'),
('Arthur', 'NNP'),
('did', 'VBD'),
(n't, 'RB'),
('feel', 'VB'),
('very', 'RB'),
('good', 'JJ'),
('.', '.')]

# nltk.download('averaged_perceptron_tagger')
# [nltk_data] Error loading wordnet: <urlopen error [SSL:
# [nltk_data]     CERTIFICATE_VERIFY_FAILED] certificate verify failed
# [nltk_data]     (_ssl.c:749)>
# 위와 같은 오류가 나서 스택오버플로우를 검색해 봤더니 SSL 링크가 깨져서 직접 다운로드 받아야 한다고 한다.
# 다음의 폴더에 넣어주면 작동을 한다. 첫 줄에 있는 Resource에 있는 하위 경로도 같이 맞춰주어야 한다.
# **********************************************************************
#   Resource 'corpora/wordnet.zip/wordnet/' not found.  Please use
#   the NLTK Downloader to obtain the resource:  >>> nltk.download()
#   Searched in:
#     - '/usr/share/nltk_data'
#     - '/usr/local/share/nltk_data'
#     - '/usr/lib/nltk_data'
#     - '/usr/local/lib/nltk_data'
# **********************************************************************
#   >>> import nltk
#   >>> nltk.download('averaged_perceptron_tagger')
# 오류 내용을 보니 다음의 경로에서 파일을 찾을 수 없는 것으로 보인다.
# 위의 nltk_data 폴더에 아래 경로의 폴더를 만들어 넣어주어야지 읽어올 수 있다.
# 오류 로그에 나오는 아래의 경로를 확인해서 다운로드 받은 averaged_perceptron_tagger를 nltk_data/taggers 경로에 넣어준다.
#  AP_MODEL_LOC = 'file:'+str(find('taggers/averaged_perceptron_tagger/'+PICKLE))
# 다음의 항목을 추가로 설치해야 했으나 링크가 깨져 직접 다운로드 받음
# from nltk.corpus import brown
# brown.words()
# nltk.download('punkt')
# nltk.download('averaged_perceptron_tagger')

# nltk.download('treebank')
# nltk.download('wordnet')

nltk.download()를 하면 다음과 같은 창과 함께 오류 메시지가 출력되고 다운로드가 되지 않는다.
['image'](nltk_download.png)
터미널로 다운로드를 시도해도 같은 오류가 발생한다.

$ sudo python -m nltk.downloader -d /usr/local/share/nltk_data all

/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/runpy.py:125: RuntimeWarning: 'nltk.downloader' found in sys.modules after import of package 'nltk', but prior to execution of 'nltk.downloader'; this may result in unpredictable behaviour
  warn(RuntimeWarning(msg))
[nltk_data] Error loading all: <urlopen error [SSL:
[nltk_data]     CERTIFICATE_VERIFY_FAILED] certificate verify failed
[nltk_data]     (_ssl.c:749)>
# nltk.download()

결론

  1. 다음의 경로에 nltk_data 폴더를 만든다. /usr/local/share/nltk_data/
  2. 필요한 패키지를 nltk_data에 직접 다운로드 받아 옮겨놔도 동작하는 패키지도 있지만, 위치 정보에 맞게 새로운 폴더를 생성하고 다운로드 받은 패키지를 옮겨야 하기도 한다.
  3. nltk_data에 패키지를 옮겨도 동작하지 않으면 다음의 github 경로를 참고하여 폴더를 만들어 준다. https://github.com/nltk/nltk_data/tree/gh-pages/packages
  4. 아니면 위의 깃헙 패키지 폴더를 nltk_data에 한 번에 옮겨놓고 필요한 패키지들의 압축을 해당 위치에서 풀어 사용해도 된다.