web-dev-qa-db-fra.com

Ressource u'tokenizers / punkt / english.pickle 'not found

Mon code:

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

Message d'erreur:

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

J'essaie de faire fonctionner ce programme sous Unix:

Conformément au message d'erreur, je me suis connecté à python Shell à partir de ma machine Unix, puis j'ai utilisé les commandes ci-dessous:

import nltk
nltk.download()

et puis j'ai téléchargé toutes les choses disponibles en utilisant les options d-down loader et l-list mais le problème persiste.

J'ai essayé de mon mieux pour trouver la solution sur Internet, mais j'ai obtenu la même solution que celle que j'ai mentionnée dans les étapes ci-dessus.

90
Supreeth Meka

J'ai eu la solution:

import nltk
nltk.download()

une fois que le NLTK Downloader a démarré

d) Télécharger l) Liste u) Mise à jour c) Configuration h) Aide q) Quitter

Téléchargeur> d

Télécharger quel paquet (l = liste; x = annuler)? Identifiant> punkt

30
Supreeth Meka

Pour ajouter à alvas 'answer , vous ne pouvez télécharger que le corpus punkt:

nltk.download('punkt')

Le téléchargement de all me semble excessif. Sauf si c'est ce que tu veux.

163
yprez

Si vous souhaitez uniquement télécharger le modèle punkt:

import nltk
nltk.download('punkt')

Si vous n'êtes pas sûr du type de données ou du modèle dont vous avez besoin, vous pouvez installer les jeux de données, modèles et marqueurs populaires de NLTK:

import nltk
nltk.download('popular')

Avec la commande ci-dessus, il n'est pas nécessaire d'utiliser l'interface graphique pour télécharger les jeux de données.

54
alvas

Depuis le shell, vous pouvez exécuter:

Sudo python -m nltk.downloader punkt 

Si vous souhaitez installer les corpus/modèles NLTK populaires:

Sudo python -m nltk.downloader popular

Si vous voulez installer tous Corpa/modèles NLTK:

Sudo python -m nltk.downloader all

Pour lister les ressources que vous avez téléchargées:

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"))'
24
Franck Dernoncourt

La même chose m'est arrivée récemment, il vous suffit de télécharger le package "punkt" et cela devrait fonctionner.

Quand vous exécutez "list" (l) après avoir "téléchargé toutes les choses disponibles", est-ce que tout est marqué comme la ligne suivante?

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

Si vous voyez cette ligne avec l'étoile, cela signifie que vous l'avez et que nltk devrait pouvoir la charger.

9
eeelnico
import nltk
nltk.download('punkt')

Ouvrez l'invite Python et exécutez les instructions ci-dessus.

La fonction sent_tokenize utilise une instance de PunktSentenceTokenizer du module nltk.tokenize.punkt . Cette instance a déjà été formée et fonctionne bien pour de nombreuses langues européennes. Donc, il sait quels signes de ponctuation et de caractères marquent la fin d'une phrase et le début d'une nouvelle phrase.

8
Ramineni Ravi Teja

Accédez à la console python en tapant

$ python

dans votre terminal. Ensuite, tapez les 2 commandes suivantes dans votre shell python pour installer les packages respectifs:

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

Cela a résolu le problème pour moi.

5
Dharani Manne
  1. Exécutez le code suivant:

    import nltk
    nltk.download()
    
  2. Après cela, le téléchargeur NLTK apparaîtra.

  3. Sélectionnez Tous les forfaits.
  4. Télécharger punkt.
2
Mayank Kumar

Mon problème était que j'ai appelé nltk.download('all') en tant qu'utilisateur root, mais le processus qui a finalement utilisé nltk était un autre utilisateur qui n'avait pas accès à/root/nltk_data où le contenu a été téléchargé.

J'ai donc simplement copié de manière récursive tout depuis l'emplacement de téléchargement vers l'un des chemins où NLTK cherchait à le trouver comme ceci:

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

Nltk.download () simple 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 votre dossier punkt dans le dossier tokenizers.

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

1
Deepthi Karnam

Pour moi, rien de ce qui précède n'a fonctionné, alors je viens de télécharger tous les fichiers à la main depuis le site Web http://www.nltk.org/nltk_data/ et de les mettre également à la main dans un fichier "tokenizers" à l'intérieur du dossier "nltk_data". Pas une belle solution mais toujours une solution.

1
Camille

Vous devez réorganiser vos dossiers. Déplacez votre dossier tokenizers dans le dossier nltk_data. Cela ne fonctionne pas si vous avez le dossier nltk_data contenant le dossier corpora contenant le dossier tokenizers

1
alily

J'ai fait face au même problème. Après avoir tout téléchargé, l'erreur 'punkt' était toujours là. J'ai cherché le paquet sur ma machine de Windows à C:\Utilisateurs\vaibhav\AppData\Roaming\nltk_data\tokenizers et je peux voir 'punkt.Zip' présent ici. J'ai réalisé que le Zip n'a pas été extrait dans C:\Utilisateurs\vaibhav\AppData\Roaming\nltk_data\tokenizers\punk. Une fois que j'ai extrait le Zip, cela a fonctionné comme de la musique.

0
vaibhav singh