python jenkins nltk

python - Error al cargar english.pickle con nltk.data.load



jenkins (9)

Al intentar cargar el tokenizer punkt ...

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

... se planteó un LookupError :

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


Compruebe si tiene todas las bibliotecas NLTK.


Desde la línea de comando bash, ejecuta:

$ python -c "import nltk; nltk.download(''punkt'')"


En Jenkins, esto puede solucionarse agregando el siguiente código de tipo a Virtualenv Builder en la pestaña Construir :

python -m nltk.downloader punkt


Esto es lo que funcionó para mí en este momento:

# Do this in a separate python interpreter session, since you only have to do it once import nltk nltk.download(''punkt'') # Do this in your ipython notebook or analysis script from nltk.tokenize import word_tokenize sentences = [ "Mr. Green killed Colonel Mustard in the study with the candlestick. Mr. Green is not a very nice fellow.", "Professor Plum has a green plant in his study.", "Miss Scarlett watered Professor Plum''s green plant while he was away from his office last week." ] sentences_tokenized = [] for s in sentences: sentences_tokenized.append(word_tokenize(s))

sentences_tokenized es una lista de una lista de tokens:

[[''Mr.'', ''Green'', ''killed'', ''Colonel'', ''Mustard'', ''in'', ''the'', ''study'', ''with'', ''the'', ''candlestick'', ''.'', ''Mr.'', ''Green'', ''is'', ''not'', ''a'', ''very'', ''nice'', ''fellow'', ''.''], [''Professor'', ''Plum'', ''has'', ''a'', ''green'', ''plant'', ''in'', ''his'', ''study'', ''.''], [''Miss'', ''Scarlett'', ''watered'', ''Professor'', ''Plum'', "''s", ''green'', ''plant'', ''while'', ''he'', ''was'', ''away'', ''from'', ''his'', ''office'', ''last'', ''week'', ''.'']]

Las oraciones fueron tomadas del ejemplo del cuaderno ipython que acompaña el libro "Minería de la red social, 2da edición"


Me encontré con este problema cuando estaba tratando de hacer pos etiquetado en nltk. la forma en que lo obtuve es haciendo un nuevo directorio junto con el directorio corpora llamado "taggers" y copiando max_pos_tagger en los etiquetadores de directorios.
Espero que funcione para usted también. ¡¡¡Buena suerte con eso!!!.


Simple nltk.download() no resolverá este problema. Intenté el siguiente y funcionó para mí:

en la carpeta nltk cree una carpeta tokenizers y copie su carpeta punkt en la carpeta tokenizers .

Esto funcionará.! ¡la estructura de la carpeta debe ser como se muestra en la imagen! 1


Yo tuve el mísmo problema. Entra en un shell de python y escribe:

>>> import nltk >>> nltk.download()

Luego aparece una ventana de instalación. Vaya a la pestaña ''Modelos'' y seleccione ''punkt'' en la columna ''Identificador''. A continuación, haga clic en Descargar e instalará los archivos necesarios. ¡Entonces debería funcionar!


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 a funciones posibles.

Ej. 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 alguna forma de alterar la red 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 " nltk.org/nltk_data " y haga clic en "descargar" en la opción "107. Modelos Tokenizer Punkt"

Paso 2: extraiga el archivo "punkt.zip" descargado y encuentre el archivo "english.pickle" y colóquelo en la unidad C.

Paso 3: copia y pega el código siguiente y ejecútalo.

from nltk.data import load from nltk.tokenize.treebank import TreebankWordTokenizer sentences = [ "Mr. Green killed Colonel Mustard in the study with the candlestick. Mr. Green is not a very nice fellow.", "Professor Plum has a green plant in his study.", "Miss Scarlett watered Professor Plum''s green plant while he was away from his office last week." ] tokenizer = load(''file:C:/english.pickle'') treebank_word_tokenize = TreebankWordTokenizer().tokenize wordToken = [] for sent in sentences: subSentToken = [] for subSent in tokenizer.tokenize(sent): subSentToken.extend([token for token in treebank_word_tokenize(subSent)]) wordToken.append(subSentToken) for token in wordToken: print token

Avísame, si enfrentas algún problema


import nltk nltk.download(''punkt'') from nltk import word_tokenize,sent_tokenize

Usa tokenizers :)