Nie znaleziono zasobu u'tokenizers / punkt / english.pickle '

96

Mój kod:

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

Komunikat o błędzie:

[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''

Próbuję uruchomić ten program na komputerze z systemem Unix:

Zgodnie z komunikatem o błędzie zalogowałem się do powłoki Pythona z mojego komputera z systemem UNIX, a następnie użyłem poniższych poleceń:

import nltk
nltk.download()

a następnie pobrałem wszystkie dostępne rzeczy za pomocą opcji d-down loader i l-list, ale problem nadal występuje.

Starałem się znaleźć rozwiązanie w Internecie, ale otrzymałem to samo rozwiązanie, które zrobiłem, jak wspomniałem w powyższych krokach.

Supreeth Meka
źródło

Odpowiedzi:

171

Aby dodać do odpowiedzi alvas , możesz pobrać tylko punktkorpus:

nltk.download('punkt')

Pobieranie allbrzmi dla mnie jak przesada. Chyba że tego chcesz.

yprez
źródło
Dzięki za nazwę korpusu nltk.
Austin A
Musiałem zaktualizować do najnowszej wersji nltk 3.2.5, aby nltk.download ('punkt') działał.
Charles Gomes
Oto, co otrzymuję po uruchomieniu powyższego kodu: [nltk_data] Błąd podczas ładowania punktu: <błąd urlopen [Errno 111] Odmowa połączenia [nltk_data]>
Paul
Jeśli chodzi o mój poprzedni problem, wszystko, co musiałem zrobić, to wyłączyć VPN.
Paweł
59

Jeśli chcesz tylko pobrać punktmodel:

import nltk
nltk.download('punkt')

Jeśli nie masz pewności, których danych / modelu potrzebujesz, możesz zainstalować popularne zestawy danych, modele i taggery od NLTK:

import nltk
nltk.download('popular')

Dzięki powyższemu poleceniu nie ma potrzeby korzystania z GUI do pobierania zestawów danych.

alvas
źródło
34

Mam rozwiązanie:

import nltk
nltk.download()

po uruchomieniu NLTK Downloader

d) Pobierz l) Lista u) Aktualizacja c) Konfiguracja h) Pomoc q) Zakończ

Downloader> d

Pobierz który pakiet (l = lista; x = anuluj)? Identyfikator> punkt

Supreeth Meka
źródło
25

Z poziomu powłoki możesz wykonać:

sudo python -m nltk.downloader punkt 

Jeśli chcesz zainstalować popularne korpusy / modele NLTK:

sudo python -m nltk.downloader popular

Jeśli chcesz zainstalować wszystkie korpusy / modele NLTK:

sudo python -m nltk.downloader all

Aby wyświetlić listę pobranych zasobów:

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"))'
Franck Dernoncourt
źródło
11
import nltk
nltk.download('punkt')

Otwórz monit Pythona i uruchom powyższe instrukcje.

Funkcja sent_tokenize używa instancji PunktSentenceTokenizer z modułu nltk.tokenize.punkt . Ta instancja została już przeszkolona i działa dobrze w wielu językach europejskich. Dzięki temu wie, jakie znaki interpunkcyjne i znaki oznaczają koniec zdania i początek nowego zdania.

Ramineni Ravi Teja
źródło
9

To samo przytrafiło mi się ostatnio, wystarczy pobrać paczkę "punkt" i powinno działać.

Czy po wykonaniu polecenia „list” (l) po „pobraniu wszystkich dostępnych rzeczy” wszystko jest zaznaczone w następujący sposób ?:

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

Jeśli widzisz tę linię z gwiazdą, oznacza to, że ją masz i nltk powinien być w stanie ją załadować.

eeelnico
źródło
1
Hej @ supreeth-meka, cieszę się, że znalazłeś rozwiązanie, właśnie to ci zasugerowałem, czy możesz oznaczyć moją odpowiedź jako „zaakceptowana”?
eeelnico
5

Przejdź do konsoli Pythona, wpisując

$ python

w terminalu. Następnie wpisz następujące 2 polecenia w powłoce Pythona, aby zainstalować odpowiednie pakiety:

>> nltk.download ('punkt') >> nltk.download ('averaged_perceptron_tagger')

To rozwiązało problem.

Dharani Manne
źródło
2

Mój problem polegał na tym, że zadzwoniłem nltk.download('all')jako użytkownik root, ale proces, który ostatecznie użył nltk, był innym użytkownikiem, który nie miał dostępu do / root / nltk_data, z którego pobrano zawartość.

Więc po prostu rekurencyjnie skopiowałem wszystko z lokalizacji pobierania do jednej ze ścieżek, w których NLTK szukało tego w następujący sposób:

cp -R /root/nltk_data/ /home/ubuntu/nltk_data
Raj
źródło
2
  1. Wykonaj następujący kod:

    import nltk
    nltk.download()
  2. Następnie pojawi się narzędzie do pobierania NLTK.

  3. Wybierz wszystkie pakiety.
  4. Pobierz punkt.
Mayank Kumar
źródło
2

Po dodaniu tej linii kodu problem zostanie rozwiązany:

nltk.download('punkt')
Ankit Rai
źródło
2

Wystąpił błąd pomimo importowania następujących danych,

import nltk
nltk.download()

ale w przypadku Google Colab rozwiązało to mój problem.

   !python3 -c "import nltk; nltk.download('all')"
Kripalu Sar
źródło
1

Prosta metoda nltk.download () nie rozwiąże tego problemu. Wypróbowałem poniżej i zadziałało:

w folderze nltk utwórz folder tokenizers i skopiuj folder punkt do folderu tokenizers.

To zadziała.! struktura folderów musi być taka, jak pokazano na rysunku

Deepthi Karnam
źródło
1

Musisz zmienić układ folderów Przenieś swój tokenizersfolder do nltk_datafolderu. To nie działa, jeśli masz nltk_datafolder zawierający corporafolder zawierający tokenizersfolder

Alily
źródło
1

Dla mnie nic z powyższego nie działało, więc po prostu pobrałem wszystkie pliki ręcznie ze strony http://www.nltk.org/nltk_data/ i umieściłem je również ręcznie w pliku "tokenizers" wewnątrz "nltk_data " teczka. Niezbyt ładne rozwiązanie, ale wciąż rozwiązanie.

Camille
źródło
0

Napotkałem ten sam problem. Po ściągnięciu wszystkiego nadal był błąd „punkt”. Szukałem pakietu na moim komputerze z systemem Windows w C: \ Users \ vaibhav \ AppData \ Roaming \ nltk_data \ tokenizers i widzę tam obecny „punkt.zip”. Zdałem sobie sprawę, że w jakiś sposób plik zip nie został rozpakowany do C: \ Users \ vaibhav \ AppData \ Roaming \ nltk_data \ tokenizers \ punk. Kiedy rozpakowałem zip, działało jak muzyka.

vaibhav singh
źródło
0

Po prostu upewnij się, że używasz JupyterNotatnika, aw notebooku wykonaj następujące czynności:

import nltk

nltk.download()

Następnie pojawi się jedno wyskakujące okienko (pokazujące informacje https://raw.githubusercontent.com/nltk/nltk_data/gh-pages/index.xml ) Z tego musisz pobrać wszystko.

Następnie ponownie uruchom kod.

Divyanshu Parkhe
źródło