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.
J'ai eu la solution:
import nltk
nltk.download()
Téléchargeur> d
Télécharger quel paquet (l = liste; x = annuler)? Identifiant> punkt
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.
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.
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"))'
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.
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.
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.
Exécutez le code suivant:
import nltk
nltk.download()
Après cela, le téléchargeur NLTK apparaîtra.
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
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
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.
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
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.