Erreur de téléchargement NLTK [nltk_data] Erreur lors du chargement de Reuters : <erreur d'urlopen [Errno 11004] [nltk_data] getaddrinfo

Lors de la réalisation de l'affectation 1 cs224n, vous devez utiliser le corpus Reuters dans la bibliothèque nltk, mais lorsque vous exécutez nltk.download("Reuters") dans le code, en raison de problèmes de réseau, une erreur apparaît et ne peut pas être téléchargée :

[nltk_data] Error loading reuters: <urlopen error [Errno 11004] 
[nltk_data]     getaddrinfo

Après une longue période de lancer selon les tutoriels en ligne, j'ai marché sur beaucoup de pièges pour trouver une solution efficace et minimale. Vous n'avez pas besoin de télécharger l'ensemble du package ntlk (plus de 700 Mo), il vous suffit de télécharger les fichiers correspondants en fonction de vos besoins.

Méthode d'échec 1 : Modifier HOST

Cette méthode nécessite l'ajout d'un proxy, en utilisant la magie globale. L'ajout d'une adresse IP dans HOSTS selon le message de blog NLTK problème anormal199.232.68.133 raw.githubusercontent.com n'est pas valide car cette adresse IP a expiré.
Comme je n'ai que l'échelle du côté du navigateur, il n'y a pas d'échelle globale, donc de cette façon PASS

Méthode d'échec 2 : téléchargez le package NLTK mais ne pouvez pas l'utiliser

La manière habituelle est d'aller sur le lien Gitee pour télécharger le package NLTK, mais la plupart des blogueurs téléchargent directement le package complet (plus de 700 Mo), ce qui consomme beaucoup de mémoire. Voici les façons de demander des fichiers à la demande, et les détails qui nécessitent une attention particulière ! (la fosse a marché dessus)

1. Vérifiez d'abord votre propre répertoire NLTK, sinon, créez-le

Tapez l'interpréteur python

import nltk
nltk.download(".")

Vous verrez le retour suivant,

 Searched in:
    - 'C:\\Users\\YayingLuo/nltk_data'
    - 'C:\\Users\\ghost\\anaconda3\\envs\\cs224n\\nltk_data'
    - 'C:\\Users\\ghost\\anaconda3\\envs\\cs224n\\share\\nltk_data'
    - 'C:\\Users\\ghost\\anaconda3\\envs\\cs224n\\lib\\nltk_data'
    - 'C:\\Users\\YayingLuo\\AppData\\Roaming\\nltk_data'
    - 'C:\\nltk_data'
    - 'D:\\nltk_data'
    - 'E:\\nltk_data'

Ces chemins varient en fonction du nom d'utilisateur respectif. Un tel retour est causé par le fait de ne pas trouver le chemin nltk_data pertinent. Sélectionnez l'un de ces chemins et créez le dossier nltk_data sous celui-ci, par exemple :
C:\Users\ghost\anaconda3\envs\cs224n\nltk_data

2. Téléchargez les fichiers de corpus dont vous avez besoin

Par exemple, ce qui doit être téléchargé dans le code d'origine est le corpus Reuters, un ensemble de données d'informations financières.

nltk.corpus('reuters')

Sous le chemin dans le lien gitee indiqué ci-dessus pacages/corpora, téléchargez reuters.ziple fichier.
Le package Reuters, après téléchargement, est nommé xxx_Reuters.zip
Parce qu'il est téléchargé dans gitee, il existe de nombreux noms de préfixes de chemin dans le package compressé, et le vrai dossier Reuters se trouve toujours sous cette couche ! Il doit être modifié, sinon il ne peut pas être utilisé correctement.

3. [Important] Modifiez le nom du chemin du fichier concerné et placez correctement le fichier téléchargé

  • /nltk_dataCréer un nouveau corporasous-dossier (c'est-à-dire corpus) sous le chemin précédemment créé
  • Renommez le package compressé téléchargé enreuters.zip
  • Recompressez ce reuters.zipdossier et déplacez-le vers le chemin de /nltk_data/corpora`
  • Le test Pro n'a pas besoin de décompresser, il suffit d'utiliser directement zip

De cette façon, il peut être utilisé normalement. Si vous rencontrez toujours des problèmes, veuillez redémarrer le bloc-notes jupyter et vérifier le nom de l'archive et du chemin.

Remarque

Si anaconda crée un nouvel env mais que le notebook jupyter ne peut pas se connecter au noyau,
la solution consiste à activer d'abord anaconda et à entrer dans l'environnement correspondant, puis à ouvrir le notebook jupyter. Au lieu d'ouvrir dans l'environnement (de base).

Guess you like

Origin blog.csdn.net/weixin_43846562/article/details/129663863