codememo

리소스 u'tokenizers/punkt/english.pickle'을(를) 찾을 수 없습니다.

tipmemo 2023. 9. 5. 20:32
반응형

리소스 u'tokenizers/punkt/english.pickle'을(를) 찾을 수 없습니다.

내 코드:

import nltk.data
tokenizer = nltk.data.load('nltk:tokenizers/punkt/english.pickle')

오류 메시지:

[ec2-user@ip-172-31-31-31 sentiment]$ python mapper_local_v1.0.py
Traceback (most recent call last):
File "mapper_local_v1.0.py", line 16, in <module>

    tokenizer = nltk.data.load('nltk:tokenizers/punkt/english.pickle')

File "/usr/lib/python2.6/site-packages/nltk/data.py", line 774, in load

    opened_resource = _open(resource_url)

File "/usr/lib/python2.6/site-packages/nltk/data.py", line 888, in _open

    return find(path_, path + ['']).open()

File "/usr/lib/python2.6/site-packages/nltk/data.py", line 618, in find

    raise LookupError(resource_not_found)

LookupError:

Resource u'tokenizers/punkt/english.pickle' not found.  Please
use the NLTK Downloader to obtain the resource:

    >>>nltk.download()

Searched in:
- '/home/ec2-user/nltk_data'
- '/usr/share/nltk_data'
- '/usr/local/share/nltk_data'
- '/usr/lib/nltk_data'
- '/usr/local/lib/nltk_data'
- u''

유닉스 머신에서 이 프로그램을 실행하려고 합니다.

오류 메시지에 따라 유닉스 머신에서 파이썬 셸에 로그인한 다음 다음 명령을 사용했습니다.

import nltk
nltk.download()

그런 다음 d-down loader와 l-list 옵션을 사용하여 사용 가능한 모든 것을 다운로드했지만 여전히 문제가 남아 있습니다.

저는 인터넷에서 해결책을 찾기 위해 최선을 다했지만 위의 단계에서 언급한 것과 같은 해결책을 얻었습니다.

앨바스의 답변에 추가하기 위해, 당신은 오직 다운로드할 수 있습니다.punkt코퍼스:

nltk.download('punkt')

다운로드 중all제게는 과잉 살상으로 들리네요.그게 당신이 원하는 게 아니라면요

다운로드만 원하는 경우punkt측정 결과:

import nltk
nltk.download('punkt')

필요한 데이터/모델이 확실하지 않은 경우 NLTK에서 널리 사용되는 데이터셋, 모델 및 태그를 설치할 수 있습니다.

import nltk
nltk.download('popular')

위 명령을 사용하면 GUI를 사용하여 데이터 세트를 다운로드할 필요가 없습니다.

해결책을 찾았습니다.

import nltk
nltk.download()

일단 NLTK Downloader가 시작되면

l) 목록 다운로드 u) 업데이트 c) 구성) 도움말 q) 종료

Downloader > d

어떤 패키지(l=list; x=dll)를 다운로드하시겠습니까?식별자 > 펑크

셸에서 다음을 실행할 수 있습니다.

sudo python -m nltk.downloader punkt 

널리 사용되는 NLTK corpora/모델을 설치하려는 경우:

sudo python -m nltk.downloader popular

모든 NLTK corpora/모델을 설치하려는 경우:

sudo python -m nltk.downloader all

다운로드한 리소스를 나열하는 방법

python -c 'import os; import nltk; print os.listdir(nltk.data.find("corpora"))'
python -c 'import os; import nltk; print os.listdir(nltk.data.find("tokenizers"))'
import nltk
nltk.download('punkt')

Python 프롬프트를 열고 위의 문을 실행합니다.

sent_tokenize 함수는 PunktSentence 인스턴스를 사용합니다.nltk의 토큰화기입니다.증표로 삼다펑크 모듈.이 인스턴스는 이미 교육을 받았으며 많은 유럽 언어에서 잘 작동합니다.그래서 그것은 문장의 끝과 새로운 문장의 시작을 나타내는 문장 부호와 문자를 알고 있습니다.

최근에 저도 같은 일이 있었는데, "펑크트" 패키지를 다운로드하면 작동할 것입니다.

"사용 가능한 모든 것을 다운로드"한 후 "목록"(l)을 실행하면 모든 것이 다음 행과 같이 표시됩니까?

[*] punkt............... Punkt Tokenizer Models

만약 당신이 별과 이 선을 본다면, 그것은 당신이 그것을 가지고 있다는 것을 의미하며, nltk는 그것을 로드할 수 있어야 합니다.

입력하여 파이썬 콘솔로 이동

비단뱀

당신의 터미널에서.그런 다음 python 셸에 다음 2개의 명령을 입력하여 각 패키지를 설치합니다.

>> nltk.download('kt') >> nltk.download('_percepttron_tagger')

이것으로 저는 그 문제를 해결되었습니다.

다음 항목을 가져왔는데 오류가 발생했습니다.

import nltk
nltk.download()

하지만 구글 콜라브의 경우 이것이 제 문제를 해결했습니다.

   !python3 -c "import nltk; nltk.download('all')"

이 코드 라인을 추가하면 문제가 해결됩니다.

nltk.download('punkt')

제 문제는 제가 전화를 했다는 것입니다.nltk.download('all')루트 사용자로, 그러나 결국 nltk를 사용한 프로세스는 콘텐츠가 다운로드된 /root/nltk_data에 액세스할 수 없는 다른 사용자였습니다.

그래서 저는 다운로드 위치에서 NLTK가 찾는 경로 중 하나로 모든 것을 다음과 같이 재귀적으로 복사했습니다.

cp -R /root/nltk_data/ /home/ubuntu/nltk_data

단순한 nltk.download()로는 이 문제가 해결되지 않습니다.저는 아래와 같은 방법을 시도해 보았는데 효과가 있었습니다.

nltk 폴더에서 토큰화 폴더를 만들고 punkt 폴더를 토큰화 폴더에 복사합니다.

효과가 있을 겁니다!폴더 구조는 그림과 같아야 합니다.

저는 위의 어떤 것도 작동하지 않았기 때문에 웹사이트 http://www.nltk.org/nltk_data/ 에서 모든 파일을 손으로 다운로드했고 "nltk_data" 폴더 안에 있는 "duplizer" 파일에도 손으로 넣었습니다.좋은 해결책은 아니지만 여전히 해결책입니다.

  1. 다음 코드를 실행합니다.

    import nltk
    nltk.download()
    
  2. 이 후 NLTK 다운로드 프로그램이 나타납니다.

  3. 모든 패키지를 선택합니다.
  4. Punkt 다운로드.

의 폴더를 할 . 당신의 폴더를 이동하세요.tokenizers를 에접으로 접습니다.nltk_data폴더를 누릅니다.만약 당신이 가지고 있다면 이것은 작동하지 않습니다.nltk_datacorporatokenizersfolder

사용 중인지 확인하십시오.Jupyter노트북 및 노트북에서 다음을 수행합니다.

import nltk

nltk.download()

그러면 하나의 팝업 창이 나타날 것입니다. (http info https://raw.githubusercontent.com/nltk/nltk_data/gh-pages/index.xml) 모든 것을 다운로드해야 합니다.

그런 다음 코드를 다시 실행합니다.

저도 같은 문제에 직면했습니다.모든 것을 다운로드한 후에도 여전히 '펑크트' 오류가 있었습니다.C:에서 윈도우 기계에서 패키지를 검색했습니다.\Users\vaibhav\AppData\Roaming\nltk_data\tokenizers에 'punkt.zip'이 있습니다.저는 어떻게든 Zip이 C:로 추출되지 않았다는 것을 깨달았습니다.\Users\vaibhav\AppData\Roaming\nltk_data\tokenizers\punk입니다.일단 지퍼를 열면 음악처럼 작동합니다.

저는 "nltk:"를 사용하여 해결했습니다.

http://www.nltk.org/howto/data.html

nltk.data.load로 english.pickle을 로드하지 못했습니다.

sent_tokenizer=nltk.data.load('nltk:tokenizers/punkt/english.pickle')

다음 행을 스크립트에 추가합니다.그러면 펑크 데이터가 자동으로 다운로드됩니다.

import nltk
nltk.download('punkt')

이 명령은 사용할 수 없습니다.

    import nltk
    nltk.download()

하지만 저는 여전히 이 문제에 대한 해결책을 가지고 있습니다, 하지만 그것은 저에게 효과가 있었습니다.

당신이 직접 punkt 파일을 수동으로 다운로드해야 하지만 이를 작성하는 동안 사이트가 작동하지 않습니다.archive.org 에서 다운로드할 수 있습니다.

https://web.archive.org/web/20230206063107/https ://raw.githubusercontent.com/nltk/nltk_data/gh-pages/packages/tokenizers/punkt.zip

파일을 다운로드한 후 이동해야 합니다.

C:\Users\LEMOVO\AppData\Roaming\

만약에nltk_data폴더가 존재하지 않습니다. 폴더를 만들고 폴더 안으로 들어갑니다.그런 다음 이름을 가진 다른 폴더를 만듭니다.tokenizers그리고 내부의 punkt.zip 파일을 추출합니다.tokenizers폴더를 누릅니다.

이것이 도움이 되길 바랍니다.

언급URL : https://stackoverflow.com/questions/26570944/resource-utokenizers-punkt-english-pickle-not-found

반응형