Risorsa u'tokenizers / punkt / english.pickle 'non trovata


96

Il mio codice:

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

Messaggio di errore:

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

Sto cercando di eseguire questo programma su una macchina Unix:

Come da messaggio di errore, ho effettuato l'accesso alla shell python dalla mia macchina unix, quindi ho usato i seguenti comandi:

import nltk
nltk.download()

e poi ho scaricato tutte le cose disponibili usando d-down loader e le opzioni l-list ma il problema persiste.

Ho fatto del mio meglio per trovare la soluzione in Internet, ma ho ottenuto la stessa soluzione che ho fatto come ho menzionato nei miei passaggi precedenti.


Risposte:


171

Per aggiungere alla risposta di alvas , puoi scaricare solo il punktcorpus:

nltk.download('punkt')

Scaricare allsuona come eccessivo per me. A meno che non sia quello che vuoi.


Grazie per il nome del corpus nltk.
Austin A

Ho dovuto eseguire l'aggiornamento alla versione più recente di nltk 3.2.5 per far funzionare nltk.download ('punkt').
charles gomes

Questo è ciò che ottengo dopo aver eseguito il codice sopra: [nltk_data] Error loading punkt: <urlopen error [Errno 111] Connection [nltk_data] refused>
Paul

Per quanto riguarda il mio problema precedente, tutto quello che dovevo fare era disattivare la mia VPN.
Paul

59

Se stai cercando di scaricare solo il punktmodello:

import nltk
nltk.download('punkt')

Se non sei sicuro di quali dati / modello hai bisogno, puoi installare i popolari set di dati, modelli e tagger da NLTK:

import nltk
nltk.download('popular')

Con il comando precedente, non è necessario utilizzare la GUI per scaricare i set di dati.


34

Ho la soluzione:

import nltk
nltk.download()

una volta avviato NLTK Downloader

d) Scarica l) Elenco u) Aggiorna c) Config h) Aiuto q) Esci

Downloader> d

Scarica quale pacchetto (l = lista; x = annulla)? Identificatore> punkt


25

Dalla shell puoi eseguire:

sudo python -m nltk.downloader punkt 

Se desideri installare i popolari corpora / modelli NLTK:

sudo python -m nltk.downloader popular

Se desideri installare tutti i corpora / modelli NLTK:

sudo python -m nltk.downloader all

Per elencare le risorse che hai scaricato:

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"))'

10
import nltk
nltk.download('punkt')

Apri il prompt di Python ed esegui le istruzioni precedenti.

La funzione sent_tokenize utilizza un'istanza di PunktSentenceTokenizer dal modulo nltk.tokenize.punkt . Questa istanza è già stata addestrata e funziona bene per molte lingue europee. Quindi sa quali segni di punteggiatura e caratteri segnano la fine di una frase e l'inizio di una nuova frase.


9

La stessa cosa è successa a me di recente, devi solo scaricare il pacchetto "punkt" e dovrebbe funzionare.

Quando esegui "list" (l) dopo aver "scaricato tutte le cose disponibili", è tutto contrassegnato come la riga seguente ?:

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

Se vedi questa linea con la stella, significa che ce l'hai e nltk dovrebbe essere in grado di caricarla.


1
Ehi @ supreeth-meka, sono contento che tu abbia trovato la soluzione, è quello che ti ho suggerito, puoi contrassegnare la mia risposta come "Accettata" per favore?
eeelnico

5

Vai alla console Python digitando

$ python

nel tuo terminale. Quindi, digita i seguenti 2 comandi nella tua shell python per installare i rispettivi pacchetti:

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

Questo ha risolto il problema per me.


2

Il mio problema era che ho chiamato nltk.download('all')come utente root, ma il processo che alla fine ha utilizzato nltk era un altro utente che non aveva accesso a / root / nltk_data dove il contenuto è stato scaricato.

Quindi ho semplicemente copiato ricorsivamente tutto dal percorso di download a uno dei percorsi in cui NLTK stava cercando di trovarlo in questo modo:

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

2
  1. Esegui il codice seguente:

    import nltk
    nltk.download()
    
  2. Dopo questo, verrà visualizzato il downloader NLTK.

  3. Seleziona Tutti i pacchetti.
  4. Scarica punkt.

2

Ho ricevuto un errore nonostante l'importazione di quanto segue,

import nltk
nltk.download()

ma per Google Colab questo ha risolto il mio problema.

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


1

È necessario riorganizzare le cartelle Spostare la tokenizerscartella nella nltk_datacartella. Questo non funziona se hai una nltk_datacartella contenente la corporacartella contenente la tokenizerscartella


1

Per me nulla di quanto sopra ha funzionato, quindi ho scaricato tutti i file a mano dal sito web http://www.nltk.org/nltk_data/ e li ho messi anche a mano in un file "tokenizers" all'interno di "nltk_data " cartella. Non una bella soluzione ma comunque una soluzione.


1

Dopo aver aggiunto questa riga di codice, il problema verrà risolto:

nltk.download('punkt')

0

Ho affrontato lo stesso problema. Dopo aver scaricato tutto, c'era ancora l'errore "punkt". Ho cercato il pacchetto sulla mia macchina Windows in C: \ Users \ vaibhav \ AppData \ Roaming \ nltk_data \ tokenizers e posso vedere "punkt.zip" presente lì. Mi sono reso conto che in qualche modo lo zip non è stato estratto in C: \ Users \ vaibhav \ AppData \ Roaming \ nltk_data \ tokenizers \ punk. Una volta estratta la zip, ha funzionato come la musica.



Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.