Al intentar cargar el punkt
tokenizer ...
import nltk.data
tokenizer = nltk.data.load('nltk:tokenizers/punkt/english.pickle')
... a LookupError
se planteó:
> LookupError:
> *********************************************************************
> Resource 'tokenizers/punkt/english.pickle' not found. Please use the NLTK Downloader to obtain the resource: nltk.download(). Searched in:
> - 'C:\\Users\\Martinos/nltk_data'
> - 'C:\\nltk_data'
> - 'D:\\nltk_data'
> - 'E:\\nltk_data'
> - 'E:\\Python26\\nltk_data'
> - 'E:\\Python26\\lib\\nltk_data'
> - 'C:\\Users\\Martinos\\AppData\\Roaming\\nltk_data'
> **********************************************************************
>>> nltk.download()
Respuestas:
Yo tuve el mísmo problema. Entra en un shell de python y escribe:
Luego aparece una ventana de instalación. Vaya a la pestaña 'Modelos' y seleccione 'punkt' debajo de la columna 'Identificador'. Luego haga clic en Descargar e instalará los archivos necesarios. ¡Entonces debería funcionar!
fuente
tokenizer = nltk.data.load('nltk:tokenizers/punkt/english.pickle')
deben entonces el trabajo y se puede utilizar tokenizer este modo:tokenizer.tokenize('The cat. The mat. It Sat.')
. Aquí nltk intenta resolver la ruta relativatokenizers/punkt/english.pickle
en varias ubicaciones. Por ejemplo, en Windows se ve%APPDATA%\nltk_data\tokenizers\punkt\english.pickle
oC:\nltk_data\tokenizers\punkt\english.pickle
(lo mismo para D: y E :). Entonces, si se asegura de que el archivo punkt.zip esté descomprimido de tal manera que exista una de esas ubicaciones, debería poder encontrarlo.NLTK_DATA
variable de entorno para que apunte a la carpeta nltk_data para que%NLTK_DATA%\tokenizers\punkt\english.pickle
exista.ssh
conexión), no habrá una ventana GUI y, por lo tanto, no habrá una pestaña 'Modelos'.Puedes hacer eso así.
Puede descargar los tokenizadores pasando
punkt
como argumento a ladownload
función. Los tokenizadores de palabras y oraciones están disponibles ennltk
.Si quiere descargar todo lo que es decir
chunkers
,grammars
,misc
,sentiment
,taggers
,corpora
,help
,models
,stemmers
,tokenizers
, no pase ningún argumento como éste.Vea esto para obtener más información. https://www.nltk.org/data.html
fuente
python -c "import nltk; nltk.download('punkt')" [nltk_data] Downloading package punkt to /home/my_user/nltk_data... [nltk_data] Error downloading 'punkt' from [nltk_data] <https://raw.githubusercontent.com/nltk/nltk_data/gh- [nltk_data] pages/packages/tokenizers/punkt.zip>: HTTP Error [nltk_data] 503: first byte timeout
Esto es lo que funcionó para mí en este momento:
words_tokenized es una lista de una lista de tokens:
Las oraciones fueron tomadas del ejemplo de cuaderno de notas de ipython que acompaña al libro "Mining the Social Web, 2nd Edition"
fuente
Desde la línea de comando bash, ejecute:
fuente
nltk_data
en mi directorio de inicio y guarda punkt en él. Tengo Fedora 27, Py3.6.Esto funciona para mi:
En Windows también obtendrá el descargador nltk
fuente
Simple
nltk.download()
no resolverá este problema. Intenté lo siguiente y funcionó para mí:en la
nltk
carpeta cree unatokenizers
carpeta y copie supunkt
carpeta en latokenizers
carpeta.¡Esto funcionará! ¡La estructura de carpetas debe ser como se muestra en la imagen! 1
fuente
nltk tiene sus modelos de tokenizadores pre-entrenados. El modelo se descarga desde fuentes web predefinidas internamente y se almacena en la ruta del paquete nltk instalado mientras se ejecutan las siguientes llamadas de función posibles.
Por ejemplo, 1 tokenizer = nltk.data.load ('nltk: tokenizers / punkt / english.pickle')
Por ejemplo, 2 nltk.download ('punkt')
Si llama a la oración anterior en su código, asegúrese de tener conexión a Internet sin ninguna protección de firewall.
Me gustaría compartir una forma alternativa mejor para resolver el problema anterior con una comprensión más profunda.
Siga los siguientes pasos y disfrute de la tokenización de palabras en inglés usando nltk.
Paso 1: Primero descargue el modelo "english.pickle" siguiendo la ruta web.
Vaya al enlace " http://www.nltk.org/nltk_data/ " y haga clic en "descargar" en la opción "107. Modelos de Tokenizer Punkt"
Paso 2: Extraiga el archivo descargado "punkt.zip" y busque el archivo "english.pickle" y colóquelo en la unidad C.
Paso 3: copie y pegue el siguiente código y ejecútelo.
Avísame si tienes algún problema
fuente
En Jenkins, esto se puede solucionar agregando el siguiente código similar a Virtualenv Builder en la pestaña Build :
python -m nltk.downloader punkt
fuente
Me encontré con este problema cuando estaba tratando de etiquetar pos en nltk. La forma en que lo hice correcto es creando un nuevo directorio junto con el directorio de corpus llamado "etiquetadoras" y copiando max_pos_tagger en los etiquetadoras de directorio.
Espero que funcione para usted también. ¡¡¡Buena suerte con eso!!!.
fuente
En Spyder, vaya a su shell activo y descargue nltk usando los siguientes 2 comandos. import nltk nltk.download () Entonces debería ver la ventana del descargador NLTK abierta como se muestra a continuación, vaya a la pestaña 'Modelos' en esta ventana y haga clic en 'punkt' y descargue 'punkt'
fuente
Compruebe si tiene todas las bibliotecas NLTK.
fuente
Los datos de los tokenizadores punkt son bastante grandes con más de 35 MB , esto puede ser un gran problema si, como yo, está ejecutando nltk en un entorno como lambda que tiene recursos limitados.
Si solo necesita uno o quizás algunos tokenizadores de idioma, puede reducir drásticamente el tamaño de los datos al incluir solo esos
.pickle
archivos de idiomas .Si todo lo que necesita es admitir inglés, su tamaño de datos nltk se puede reducir a 407 KB (para la versión de python 3).
Pasos
nltk_data/tokenizers/punkt
si usa Python 3, agregue otra carpetaPY3
para que se vea su nueva estructura de directoriosnltk_data/tokenizers/punkt/PY3
. En mi caso, creé estas carpetas en la raíz de mi proyecto..pickle
archivo zip y mueva los archivos de los idiomas que desea admitir a lapunkt
carpeta que acaba de crear. Nota: Los usuarios de Python 3 deben usar los pepinillos de laPY3
carpeta. Con sus archivos de idioma cargados, debería verse algo así como: ejemplo-carpeta-estucturanltk_data
carpeta a las rutas de búsqueda, suponiendo que sus datos no estén en una de las rutas de búsqueda predefinidas . Puede agregar sus datos utilizando la variable de entornoNLTK_DATA='path/to/your/nltk_data'
. También puede agregar una ruta personalizada en tiempo de ejecución en python haciendo:NOTA: Si no necesita cargar los datos en tiempo de ejecución o agrupar los datos con su código, sería mejor crear sus
nltk_data
carpetas en las ubicaciones integradas que nltk busca .fuente
nltk.download()
No resolverá este problema. Intenté lo siguiente y funcionó para mí:en la
'...AppData\Roaming\nltk_data\tokenizers'
carpeta, extraiga lapunkt.zip
carpeta descargada en la misma ubicación.fuente
En
Python-3.6
puedo ver la sugerencia en el rastreo. Eso es muy útil. Por lo tanto, les diré que presten atención al error que obtuvieron, la mayoría de las veces las respuestas están dentro de ese problema;).Y luego, como lo sugirieron otras personas aquí, ya sea usando la terminal de Python o usando un comando como
python -c "import nltk; nltk.download('wordnet')"
podemos instalarlos sobre la marcha. Solo necesita ejecutar ese comando una vez y luego guardará los datos localmente en su directorio de inicio.fuente
Tuve un problema similar al usar una carpeta asignada para múltiples descargas, y tuve que agregar la ruta de datos manualmente:
descarga única, se puede lograr de la siguiente manera (funciona)
Este código funciona, lo que significa que nltk recuerda la ruta de descarga pasada en la función de descarga. Por otro lado, si descargo un paquete posterior obtengo un error similar al descrito por el usuario:
Las descargas múltiples generan un error:
Error:
Punkt de recursos no encontrado. Utilice el descargador NLTK para obtener el recurso:
import nltk nltk.download ('punkt')
Ahora, si agrego la ruta de datos ntlk con mi ruta de descarga, funciona:
Esto funciona ... No estoy seguro de por qué funciona en un caso pero no en el otro, pero el mensaje de error parece implicar que no se registra en la carpeta de descarga la segunda vez. NB: usando windows8.1 / python3.7 / nltk3.5
fuente