Ressources u'tokenizers/punkt/anglais.pickle " introuvable
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 D'exécuter ce programme sur Unix machine:
selon le message d'erreur, je me suis connecté à Python shell depuis ma machine unix, puis j'ai utilisé les commandes suivantes:
import nltk
nltk.download()
et puis j'ai téléchargé toutes les choses disponibles en utilisant D - down loader et l - list options, mais le problème persiste.
I j'ai essayé de mon mieux de trouver la solution sur internet mais j'ai obtenu la même solution que ce que j'ai fait comme je l'ai mentionné dans mes étapes ci-dessus.
13 réponses
pour ajouter à réponse de alvas , vous pouvez télécharger seulement le punkt
corpus:
nltk.download('punkt')
télécharger all
ça me paraît exagéré. À moins que vous le souhaitez.
si vous cherchez à télécharger uniquement le modèle punkt
:
import nltk
nltk.download('punkt')
si vous n'êtes pas certain des données/modèles dont vous avez besoin, vous pouvez installer le populaire ensembles de données, modèles et marqueurs 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.
j'ai la solution:
import nltk
nltk.download()
une fois que le téléchargement NLTK commence
d) Télécharger l) de la Liste u) mise à Jour c) Config h) Aider à q) Quitter
Downloader> d
télécharger quel paquet (l=Liste; x=annuler)? Identificateur > punkt
depuis le shell vous pouvez exécuter:
sudo python -m nltk.downloader punkt
si vous voulez installer les populaires NLTK corpora / models:
sudo python -m nltk.downloader popular
Si vous voulez installer tous NLTK corpus/modèles:
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, vous avez juste besoin de télécharger le paquet" punkt " et ça devrait marcher.
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 nltk devrait pouvoir la charger.
aller à la console python en tapant
$ python
dans votre terminal. Ensuite, tapez les 2 commandes suivantes dans votre shell python pour installer les paquets respectifs:
> > nltk.télécharger('point') > > nltk.download ('averaged_perceptron_tagger')
Cela a résolu le problème pour moi.
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é.
donc j'ai simplement recursivement copié tout du lieu de téléchargement à l'un des chemins où NLTK cherchait à le trouver comme ceci:
cp -R /root/nltk_data/ /home/ubuntu/nltk_data
-
exécutez le code suivant:
import nltk nltk.download()
-
après cela, NLTK downloader sortira.
- sélectionnez Tous les paquets.
- Télécharger punkt.
import nltk
nltk.download('punkt')
ouvrez L'invite Python et lancez les instructions ci-dessus.
la fonction sent_tokenize utilise une instance de PunktSentenceTokenizer de la nltk.marquer.punkt module. Cette instance a déjà été formée et fonctionne bien pour de nombreuses langues Européennes. Il sait donc quelle ponctuation et quels caractères marque la fin d'une phrase et le début d'une nouvelle phrase.
Simple nltk.télécharger() ne permettra pas de résoudre ce problème. J'ai essayé 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.
ça va marcher.! la structure du dossier doit être telle que montrée sur l'image
vous devez réorganiser vos dossiers
Déplacez votre dossier tokenizers
dans le dossier nltk_data
.
Cela ne fonctionne pas si vous avez nltk_data
dossier contenant corpora
dossier contenant tokenizers
dossier
pour moi rien de ce qui précède n'a fonctionné, donc je viens de télécharger tous les fichiers à la main à partir du site web http://www.nltk.org/nltk_data / et je les ai mis aussi à la main dans un fichier" tokenizers "à l'intérieur du dossier" nltk_data". Pas une jolie solution, mais une solution.
j'ai fait face à la même question. Après avoir tout Téléchargé, l'erreur 'punkt' était toujours là. J'ai cherché Paquet sur ma machine windows à C:\Users\vaibhav\AppData\Roaming\nltk_data\tokenizers et je vois 'punkt.zip'. J'ai réalisé que la fermeture éclair n'a pas été extraite C:\Users\vaibhav\AppData\Roaming\nltk_data\tokenizers\punk. Une fois que j'ai extrait la fermeture éclair, ça a marché comme de la musique.