web-dev-qa-db-fra.com

Changer le répertoire de chemin nltk.download () de la valeur par défaut ~/ntlk_data

J'essayais de télécharger/mettre à jour les paquets nltk de python sur un serveur informatique et cette erreur [Errno 122] Disk quota exceeded: a été renvoyée.

Plus précisément:

[nltk_data] Downloading package stop words to /home/sh2264/nltk_data...
[nltk_data] Error downloading u'stopwords' from
[nltk_data] <https://raw.githubusercontent.com/nltk/nltk_data/gh-
[nltk_data] pages/packages/corpora/stopwords.Zip>: [Errno 122]
[nltk_data] Disk quota exceeded:
[nltk_data] u'/home/sh2264/nltk_data/corpora/stopwords.Zip
False

Comment puis-je modifier le chemin d'accès complet des packages nltk et quels autres changements dois-je effectuer pour garantir un chargement sans erreur de nltk?

6
shenglih

Cela peut être configuré à la fois en ligne de commande (nltk.download(..., download_dir=) ou par interface graphique. Bizarrely nltk semble ignorer totalement sa propre variable d’environnement NLTK_DATA et ses répertoires de téléchargement par défaut selon un ensemble standard de cinq chemins, que NLTK_DATA soit défini et où il pointe, et Peu importe que les cinq répertoires par défaut de nltk existent sur la machine ou sur l'architecture (!). Une partie de cela est documentée dans Installation de NLTK Data , bien qu'il soit incomplet et un peu enterré; reproduit ci-dessous avec un formatage beaucoup plus clair:

Installation en ligne de commande

Le téléchargeur recherchera un répertoire nltk_data existant dans installer les données NLTK. S'il n'en existe pas, il tentera d'en créer un dans un emplacement central (lors de l'utilisation d'un compte administrateur) ou sinon dans l’espace fichiers de l’utilisateur. Si nécessaire, lancez le téléchargement commande depuis un compte administrateur, ou en utilisant Sudo. Le recommandé l'emplacement du système est:

  • C:\nltk_data (Windows);
  • /usr/local/share/nltk_data (Mac) et
  • /usr/share/nltk_data (Unix).

Vous pouvez utiliser l'indicateur -d pour spécifier un emplacement différent (mais si vous procédez ainsi, veillez à définir la variable d'environnement NLTK_DATA en conséquence).

  • Exécutez la commande python -m nltk.downloader all

  • Pour assurer une installation centralisée, exécutez la commande suivante: Sudo python -m nltk.downloader -d /usr/local/share/nltk_data all

  • Mais en réalité, ils devraient dire: Sudo python -m nltk.downloader -d $NLTK_DATA all

Maintenant, en ce qui concerne quel chemin recommandé par NLTK_DATA devrait utiliser, nltk ne donne pas vraiment de conseils, mais il devrait s'agir d'un chemin autonome générique qui ne se trouve pas dans aucune arborescence d'installation (donc pas dans <python-install-directory>/lib/site-packages) ni dans aucun répertoire utilisateur. Par conséquent, /usr/local/share, /opt/share ou similaire. Sur MacOS 10.7+, /usr et donc /usr/local/, ces jours sont masqués par défaut, donc /opt/share pourrait bien être un meilleur choix. Ou faire chflags nohidden /usr/local/share.

5
smci

Selon la documentation :

Par défaut, les packages sont installés dans un répertoire du système (si Python dispose d'un accès suffisant pour y écrire). ou dans le répertoire de base de l'utilisateur actuel. Cependant, l'argument download_dir peut être utilisé pour spécifier une cible d'installation différente, si vous le souhaitez.

Pour spécifier le répertoire de téléchargement, utilisez par exemple:

nltk.download('treebank', download_dir='/mnt/data/treebank')
12
Ortomala Lokni

Vous pouvez également utiliser nltk.download_Shell() et suivre les étapes interactives décrites ci-dessous.

 enter image description here

Utilisez également nltk.data.path.append('/your/new/data/directory/path') pour indiquer à nltk de charger les données à partir du nouveau chemin de données.

0
webstruck

 NLTK Download GUI Screeshot (Windows)

L’interface graphique NLTK peut également être lancée à partir de la console Python de PyCharm Community Edition. Il suffit d’émettre 2 commandes:

1) importer nltk 

2) nltk.download_gui ()

mais l'interface graphique nltk ne fonctionnera pas si vous êtes derrière un serveur proxy pour cela sur la console, vous devez d'abord définir les paramètres du proxy

SET HTTP_PROXY = proxy.mycompany.com: 8080

et puis ça va marcher.

0
Rahul Saini