본문 바로가기
공부/데이터

[python3] NLTK 설치하기

by demonic_ 2019. 1. 8.
반응형

여기서는 파이썬3 을 기준으로 작성되었다.


파이썬을 이용한 자연어 처리 툴킷이다. 

이것을 이용해 분류, 토큰, 형태소 분석, 태깅, 구문 분석등에 활용한다.


이것을 설치하려고 하면 문제가 발생한다.

아나콘다 환경일 경우는 바로 설치가 되는데, 직접 설치하려고 하면 CERTIFICATE_VERIFY_FAILED 에러가 발생한다.


import nltk

nltk.download('punkt')


[nltk_data] Error loading punkt: <urlopen error [SSL:

[nltk_data]     CERTIFICATE_VERIFY_FAILED] certificate verify failed:

[nltk_data]     unable to get local issuer certificate (_ssl.c:1045)>


찾아보니 직접 다운로드받아 특정 폴더에 넣어주면 사용이 가능하다.


우선 실행을 해보면 다음과 같은 에러가 발생한다.


LookupError: 

**********************************************************************

  Resource stopwords not found.

  Please use the NLTK Downloader to obtain the resource:


  >>> import nltk

  >>> nltk.download('stopwords')

  

  Attempted to load corpora/stopwords


  Searched in:

    - '/Users/astrology/nltk_data'

    - '/Library/Frameworks/Python.framework/Versions/3.7/nltk_data'

    - '/Library/Frameworks/Python.framework/Versions/3.7/share/nltk_data'

    - '/Library/Frameworks/Python.framework/Versions/3.7/lib/nltk_data'

    - '/usr/share/nltk_data'

    - '/usr/local/share/nltk_data'

    - '/usr/lib/nltk_data'

    - '/usr/local/lib/nltk_data'

**********************************************************************


Searched in: 을 보면 아래 폴더에서 참조함을 알 수 있다.

(여기서 소개되는 것은 OSX 운영체제 기준으로 설명한다)


각 운영체제마다 설치할 수 있는 경로는 다음과 같다.


윈도우: C:\nltk_data  또는  D:\nltk_data


MAC 또는 OSX

/usr/local/share/nltk_data/

/usr/share/nltk_data


그래서 위의 경로에 폴더를 만들었다.



다운로드 URL은 다음과 같다.

아래 링크에 가서 사용하고픈 Tokenizer의 종류를 다운받는다.


http://www.nltk.org/nltk_data


여기서는 stopwords 와 punkt 를 다운로드 받았다.


이제 위에서 지정한 폴더에 넣어주어야 한다. 

그런데 넣어줄때 corpora 이름의 폴더를 더 생성한다

(운영체제에 따라 nltk_data 앞에 경로는 달라질 수 있다.)


/usr/local/share/nltk_data/corpora/


그리고 위의 경로에 다운로드 받은 파일(stopwords, punkt)의 압축을 푼다

corpora 안에 두지 않으면 적용되지 않는다

(인터넷에 설치방법을 찾아보면 tokenizers 폴더안에 넣어야 한다고 봤는데 내가 했을땐 안되었다.)


/usr/local/share/nltk_data/corpora/stopwords

/usr/local/share/nltk_data/corpora/punkt


이제 아래의 기능을 수행해보자


import nltk

from nltk.corpus import stopwords

stopwords.words('english')[:10]


['i', 'me', 'my', 'myself', 'we', 'our', 'ours', 'ourselves', 'you', "you're"]


완료

반응형

댓글