web-dev-qa-db-fra.com

Échec du chargement de english.pickle avec nltk.data.load

Lorsque vous essayez de charger le tokenizer punkt ...

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

... un LookupError a été soulevé:

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

J'ai eu le même problème. Allez dans un python Shell et tapez:

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

Ensuite, une fenêtre d'installation apparaît. Allez dans l'onglet 'Modèles' et sélectionnez 'punkt' dans la colonne 'Identifiant'. Cliquez ensuite sur Télécharger et les fichiers nécessaires seront installés. Alors ça devrait marcher!

245
richardr
import nltk
nltk.download('punkt')

from nltk import Word_tokenize,sent_tokenize

Utilisez des jetons :)

86
Naren Yellavula

C'est ce qui a fonctionné pour moi tout à l'heure:

# 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))

phrases_tokenized est une liste d'une liste de jetons:

[['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', '.']]

Les phrases ont été tirées de l'exemple cahier ipython accompagnant le livre "Mining the Social Web, 2nd Edition"

26
jjinking

À partir de la ligne de commande bash, exécutez:

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

Cela fonctionne pour moi:

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

Dans Windows, vous aurez également nltk downloader

NLTK Downloader

9
Roshan Bagdiya

Simple nltk.download() ne résoudra pas ce problème. J'ai essayé le ci-dessous et cela a fonctionné pour moi:

dans le dossier nltk, créez un dossier tokenizers et copiez-le dans le dossier punkt dans le dossier tokenizers.

Cela fonctionnera.! la structure du dossier doit être comme dans l'image! 1

7
Deepthi Karnam

nltk a ses modèles de tokenizer pré-formés. Le modèle est en cours de téléchargement à partir de sources Web prédéfinies en interne et est stocké dans le chemin du package nltk installé lors de l'exécution des appels de fonction possibles.

Par exemple. 1 tokenizer = nltk.data.load ('nltk: tokenizers/punkt/english.pickle')

Par exemple. 2 nltk.download ('punkt')

Si vous appelez la phrase ci-dessus dans votre code, assurez-vous de disposer d'une connexion Internet sans aucune protection par pare-feu.

Je voudrais partager un meilleur moyen alternatif de résoudre le problème ci-dessus avec une meilleure compréhension en profondeur.

Suivez les étapes ci-dessous et profitez de la syntaxe Word anglaise avec nltk.

Étape 1: Commencez par télécharger le modèle "english.pickle" en suivant le chemin Web.

Cliquez sur le lien " http://www.nltk.org/nltk_data/ " et cliquez sur "Télécharger" dans l'option "107. Punkt Tokenizer Models".

Étape 2: Extrayez le fichier "punkt.Zip" téléchargé et recherchez-y le fichier "english.pickle", puis placez-le dans le lecteur C.

Étape 3: copier coller le code suivant et exécuter.

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

Faites le moi savoir, si vous rencontrez un problème

5
Jignesh Vasoya

Sur Jenkins, cela peut être corrigé en ajoutant un code similaire à Virtualenv Builder sous Construire onglet:

python -m nltk.downloader punkt

enter image description here

4
Abhijeet

je suis tombé sur ce problème quand j'essayais de faire du marquage pos dans nltk. La façon dont je me suis bien fait est de créer un nouveau répertoire avec un répertoire de corpus nommé "tagueurs" et de copier max_pos_tagger dans les marqueurs de répertoire.
J'espère que ça marchera pour toi aussi. Bonne chance avec ça!!!.

2
Ashish Singh

nltk.download() ne résoudra pas ce problème. J'ai essayé le ci-dessous et cela a fonctionné pour moi:

dans le dossier '...AppData\Roaming\nltk_data\tokenizers', extrayez le dossier téléchargé punkt.Zip au même emplacement.

0
Narender Bishnoi

Les données des tokteurs punkt sont assez volumineuses 35 Mo , cela peut poser problème si, comme moi, vous utilisez nltk dans un environnement tel que lambda a des ressources limitées.

Si vous n'avez besoin que d'un ou de quelques tokenizer de langue, vous pouvez réduire considérablement la taille des données en n'incluant que les fichiers de cette langue .pickle.

Si vous n'avez besoin que de l'anglais, alors la taille de vos données nltk peut être réduite à 407 Ko (pour le python Version 3).

Pas

  1. Téléchargez les données nltk punkt: https://raw.githubusercontent.com/nltk/nltk_data/gh-pages/packages/tokenizers/punkt.Zip
  2. Quelque part dans votre environnement, créez les dossiers: nltk_data/tokenizers/punkt, Si vous utilisez python 3 ajoutez un autre dossier PY3 Afin que votre nouvelle structure de répertoires ressemble à nltk_data/tokenizers/punkt/PY3. Dans mon cas, j'ai créé ces dossiers à la racine de mon projet.
  3. Extrayez le fichier Zip et déplacez les fichiers .pickle Des langues que vous souhaitez prendre en charge dans le dossier punkt que vous venez de créer. Remarque: Python 3 utilisateurs doivent utiliser les pickles du dossier PY3. avec vos fichiers de langue chargé il devrait ressembler à quelque chose comme: exemple-folder-stucture
  4. Vous devez maintenant ajouter votre dossier nltk_data Aux chemins de recherche, en supposant que vos données ne se trouvent pas dans l'un des chemins de recherche prédéfinis . Vous pouvez ajouter vos données à l'aide de la variable d'environnement NLTK_DATA='path/to/your/nltk_data'. Vous pouvez également ajouter un chemin personnalisé au moment de l'exécution dans python en effectuant:
from nltk import data
data.path += ['/path/to/your/nltk_data']

REMARQUE: Si vous n'avez pas besoin de charger les données au moment de l'exécution ni de regrouper les données avec votre code, il serait préférable de créer vos dossiers nltk_data À la - emplacements intégrés que nltk recherche .

0
Trent Holliday

Dans Spyder, accédez à votre shell actif et téléchargez nltk en utilisant les 2 commandes ci-dessous. importer nltk nltk.download () Ensuite, vous devriez voir la fenêtre du téléchargeur NLTK s'ouvrir comme ci-dessous, allez dans l'onglet "Modèles" dans cette fenêtre et cliquez sur "punkt" et téléchargez "punkt"

Window

0
Krish

Vérifiez si vous avez toutes les bibliothèques NLTK.

0
Torrtuga