Recurso u'tokenizers / punkt / english.pickle 'no encontrado

96

Mi código:

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

Mensaje de error:

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

Estoy tratando de ejecutar este programa en una máquina Unix:

Según el mensaje de error, inicié sesión en el shell de Python desde mi máquina Unix y luego utilicé los siguientes comandos:

import nltk
nltk.download()

y luego descargué todas las cosas disponibles usando las opciones d-down loader y l- list, pero el problema persiste.

Hice todo lo posible para encontrar la solución en Internet, pero obtuve la misma solución que hice como mencioné en los pasos anteriores.

Supreeth Meka
fuente

Respuestas:

171

Para agregar a la respuesta de alvas , puede descargar solo el punktcorpus:

nltk.download('punkt')

Descargar allsuena como una exageración para mí. A menos que eso sea lo que quieras.

yprez
fuente
Gracias por el nombre del corpus nltk.
Austin A
Tuve que actualizar a la última versión 3.2.5 de nltk para que nltk.download ('punkt') funcione.
charles gomes
Esto es lo que me pasa después de ejecutar el código anterior: [nltk_data] Punkt carga de error: <error urlopen [Errno 111] Conexión [nltk_data] negado>
Paul
Con respecto a mi problema anterior, todo lo que tenía que hacer era apagar mi VPN.
Paul
59

Si solo desea descargar el punktmodelo:

import nltk
nltk.download('punkt')

Si no está seguro de qué datos / modelo necesita, puede instalar los populares conjuntos de datos, modelos y etiquetadores de NLTK:

import nltk
nltk.download('popular')

Con el comando anterior, no es necesario utilizar la GUI para descargar los conjuntos de datos.

alvas
fuente
34

Tengo la solucion:

import nltk
nltk.download()

una vez que se inicia NLTK Downloader

d) Descargar l) Listar u) Actualizar c) Configurar h) Ayuda q) Salir

Descargador> d

¿Descargar qué paquete (l = lista; x = cancelar)? Identificador> punkt

Supreeth Meka
fuente
25

Desde el shell puede ejecutar:

sudo python -m nltk.downloader punkt 

Si desea instalar los populares modelos / corpora NLTK:

sudo python -m nltk.downloader popular

Si desea instalar todos los corpora / modelos NLTK:

sudo python -m nltk.downloader all

Para enumerar los recursos que ha descargado:

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
fuente
10
import nltk
nltk.download('punkt')

Abra el indicador de Python y ejecute las declaraciones anteriores.

La función sent_tokenize usa una instancia de PunktSentenceTokenizer del módulo nltk.tokenize.punkt . Esta instancia ya ha sido entrenada y funciona bien para muchos idiomas europeos. Entonces sabe qué puntuación y caracteres marcan el final de una oración y el comienzo de una nueva oración.

Ramineni Ravi Teja
fuente
9

Lo mismo me pasó a mí recientemente, solo necesitas descargar el paquete "punkt" y debería funcionar.

Cuando ejecuta "list" (l) después de haber "descargado todas las cosas disponibles", ¿está todo marcado como la siguiente línea ?:

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

Si ve esta línea con la estrella, significa que la tiene y nltk debería poder cargarla.

eeelnico
fuente
1
Hola @ supreeth-meka, me alegra que hayas encontrado la solución, es lo que te sugerí, ¿puedes marcar mi respuesta como "Aceptada" por favor?
eeelnico
5

Vaya a la consola de Python escribiendo

$ python

en tu terminal. Luego, escriba los siguientes 2 comandos en su shell de Python para instalar los paquetes respectivos:

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

Esto me resolvió el problema.

Dharani Manne
fuente
2

Mi problema fue que llamé nltk.download('all') como usuario root, pero el proceso que finalmente usó nltk fue otro usuario que no tenía acceso a / root / nltk_data donde se descargó el contenido.

Así que simplemente copié de forma recursiva todo, desde la ubicación de descarga a una de las rutas donde NLTK buscaba encontrarlo así:

cp -R /root/nltk_data/ /home/ubuntu/nltk_data
Raj
fuente
2
  1. Ejecute el siguiente código:

    import nltk
    nltk.download()
  2. Después de esto, aparecerá el descargador NLTK.

  3. Seleccione Todos los paquetes.
  4. Descarga el siguiente punkt.
Mayank Kumar
fuente
2

Recibí un error a pesar de importar lo siguiente,

import nltk
nltk.download()

pero para google colab esto resolvió mi problema.

   !python3 -c "import nltk; nltk.download('all')"
Kripalu Sar
fuente
1

Necesita reorganizar sus carpetas Mueva su tokenizerscarpeta a la nltk_datacarpeta. Esto no funciona si tiene una nltk_datacarpeta que contiene la corporacarpeta que contiene la tokenizerscarpeta

aliado
fuente
1

Para mí, nada de lo anterior funcionó, así que descargué todos los archivos a mano desde el sitio web http://www.nltk.org/nltk_data/ y los puse también a mano en un archivo "tokenizadores" dentro de "nltk_data". "carpeta. No es una solución bonita, pero sigue siendo una solución.

Camille
fuente
1

Después de agregar esta línea de código, se solucionará el problema:

nltk.download('punkt')
Ankit Rai
fuente
0

Me enfrenté al mismo problema. Después de descargar todo, todavía estaba allí el error 'punkt'. Busqué el paquete en mi máquina con Windows en C: \ Users \ vaibhav \ AppData \ Roaming \ nltk_data \ tokenizers y puedo ver 'punkt.zip' presente allí. Me di cuenta de que de alguna manera el zip no se ha extraído en C: \ Users \ vaibhav \ AppData \ Roaming \ nltk_data \ tokenizers \ punk. Una vez que extraje el zip, funcionó como música.

vaibhav singh
fuente