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.

Supreeth Meka
la source

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.

yprez
la source
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.

alvas
la source
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

Supreeth Meka
la source
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"))'
Franck Dernoncourt
la source
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.

Ramineni Ravi Teja
la source
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.

eeelnico
la source
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.

Dharani Manne
la source
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
Raj
la source
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.
Mayank Kumar
la source
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')"
Kripalu Sar
la source
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

allié
la source
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.

Camille
la source
1

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

nltk.download('punkt')
Ankit Rai
la source
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.

vaibhav singh
la source
0

Assurez-vous simplement que vous utilisez JupyterNotebook et que dans un notebook, procédez comme suit:

import nltk

nltk.download()

Ensuite, une fenêtre contextuelle apparaîtra (montrant des informations https://raw.githubusercontent.com/nltk/nltk_data/gh-pages/index.xml ) À partir de là, vous devez tout télécharger.

Puis réexécutez votre code.

Divyanshu Parkhe
la source