Ressource u'tokenizers / punkt / english.pickle 'introuvable


96

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'essaye d'exécuter ce programme sur une machine Unix:

Selon le message d'erreur, je me suis connecté au shell python depuis ma machine unix puis j'ai utilisé les commandes ci-dessous:

import nltk
nltk.download()

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 fait 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.


Réponses:


171

Pour compléter la réponse d' alvas , vous ne pouvez télécharger que le punktcorpus:

nltk.download('punkt')

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


Merci pour le nom du corpus nltk.
Austin A

J'ai dû mettre à niveau vers la dernière version 3.2.5 de nltk pour que nltk.download ('punkt') fonctionne.
charles gomes

Voici ce que j'obtiens après avoir exécuté le code ci-dessus: [nltk_data] Erreur lors du chargement de punkt: <urlopen error [Errno 111] Connexion [nltk_data] refusée>
Paul

En ce qui concerne mon problème précédent, tout ce que j'avais à faire était de désactiver mon VPN.
Paul

59

Si vous souhaitez télécharger uniquement le punktmodèle:

import nltk
nltk.download('punkt')

Si vous ne savez pas quelles données / modèle que vous avez besoin, vous pouvez installer les populaires jeux de données, des modèles et des tagueurs 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 ensembles de données.


34

J'ai la solution:

import nltk
nltk.download()

une fois que le NLTK Downloader démarre

d) Télécharger l) Liste u) Mettre à jour c) Config h) Aide q) Quitter

Téléchargeur> d

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


25

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 souhaitez installer tous les corpus / modèles NLTK:

sudo python -m nltk.downloader all

Pour répertorier 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"))'

10
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. Ainsi, il sait quelle ponctuation et quels caractères marquent la fin d'une phrase et le début d'une nouvelle phrase.


9

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

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

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

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


1
Hey @ supreeth-meka, je suis content que vous ayez trouvé la solution, c'est ce que je vous ai suggéré, pouvez-vous marquer ma réponse comme "Acceptée" s'il vous plaît?
eeelnico

5

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 ('moyenné_perceptron_tagger')

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


2

Mon problème était que j'ai appelé en nltk.download('all')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é récursivement tout de 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
  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 packages.
  4. Téléchargez punkt.

2

J'obtenais une erreur malgré l'importation de ce qui suit,

import nltk
nltk.download()

mais pour google colab, cela a résolu mon problème.

   !python3 -c "import nltk; nltk.download('all')"


1

Vous devez réorganiser vos dossiers Déplacez votre tokenizersdossier dans un nltk_datadossier. Cela ne fonctionne pas si vous avez un nltk_datadossier contenant un corporadossier contenant un tokenizersdossier


1

Pour moi, rien de ce qui précède n'a fonctionné, alors j'ai juste téléchargé tous les fichiers à la main à partir du site Web http://www.nltk.org/nltk_data/ et je les ai également mis à la main dans un fichier "tokenizers" à l'intérieur de "nltk_data "dossier. Pas une jolie solution mais toujours une solution.


1

Après avoir ajouté cette ligne de code, le problème sera résolu:

nltk.download('punkt')

0

J'ai fait face au même problème. Après avoir tout téléchargé, l'erreur «punkt» était toujours là. J'ai recherché le package sur ma machine Windows à C: \ Users \ vaibhav \ AppData \ Roaming \ nltk_data \ tokenizers et je peux voir 'punkt.zip' présent. J'ai réalisé que d'une manière ou d'une autre, le zip n'a pas été extrait dans C: \ Users \ vaibhav \ AppData \ Roaming \ nltk_data \ tokenizers \ punk. Une fois que j'ai extrait le zip, cela fonctionnait comme de la musique.



En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.