Cambiar el directorio de la ruta de acceso nltk.download () del valor predeterminado ~ / ntlk_data

Estaba intentando descargar / actualizar paquetes de Python nltk en un servidor informático y devolvió este [Errno 122] Disk quota exceeded: error.

Específicamente:

 [nltk_data] Downloading package stop words to /home/sh2264/nltk_data... [nltk_data] Error downloading u'stopwords' from [nltk_data] : [Errno 122] [nltk_data] Disk quota exceeded: [nltk_data] u'/home/sh2264/nltk_data/corpora/stopwords.zip False 

¿Cómo podría cambiar la ruta nltk paquetes nltk y qué otros cambios debo hacer para garantizar la carga sin errores de nltk ?

Esto se puede configurar tanto por línea de comandos ( nltk.download(..., download_dir=) como por GUI. Bizarrely nltk parece ignorar totalmente su propia variable de entorno NLTK_DATA y predeterminar sus directorios de descarga a un conjunto estándar de cinco rutas, independientemente si se define NLTK_DATA y dónde apunta, e independientemente de si existen cinco direcciones predeterminadas de nltk en la máquina o architecture (!). Parte de eso se documenta en Instalación de datos NLTK , aunque está incompleto y algo enterrado; se reproduce a continuación con un formato mucho más claro :

Instalación de línea de comandos

El descargador buscará un directorio nltk_data existente para instalar los datos NLTK. Si uno no existe, intentará crear uno en una ubicación central (cuando se use una cuenta de administrador) o de otra manera en el espacio de archivos del usuario. Si es necesario, ejecute el comando de descarga desde una cuenta de administrador, o use sudo. La ubicación del sistema recomendada es:

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

Puede usar la marca -d para especificar una ubicación diferente (pero si lo hace, asegúrese de establecer la variable de entorno NLTK_DATA en consecuencia).

  • Ejecute el comando python -m nltk.downloader all

  • Para asegurar la instalación central, ejecute el comando: sudo python -m nltk.downloader -d /usr/local/share/nltk_data all

  • Pero realmente deberían decir: sudo python -m nltk.downloader -d $NLTK_DATA all

Ahora, en cuanto a qué ruta recomendada debe usar NLTK_DATA, nltk realmente no brinda ninguna orientación adecuada, pero debe ser una ruta genérica independiente que no esté en ningún árbol de instalación (por lo tanto, no en /lib/site-packages ) o cualquier usuario dir. Por lo tanto, /usr/local/share , /opt/share o similar. En MacOS 10.7+, /usr y, por lo tanto, /usr/local/ estos días están ocultos por defecto, por lo que /opt/share puede ser una mejor opción. O haga chflags nohidden /usr/local/share .

Según la documentación :

De forma predeterminada, los paquetes se instalan en un directorio de todo el sistema (si Python tiene suficiente acceso para escribir en él); o en el directorio de inicio del usuario actual. Sin embargo, el argumento download_dir se puede usar para especificar un objective de instalación diferente, si se desea.

Para especificar el directorio de descarga, use por ejemplo:

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

NLTK Descargar GUI Screeshot (Windows)

NLTK GUI también se puede iniciar desde la consola Python de PyCharm Community Edition. Solo emite 2 comandos:

1) importación nltk

2) nltk.download_gui ()

pero la GUI nltk no funcionará si está detrás de un servidor proxy para eso en la consola, primero debe establecer la configuración del proxy

SET HTTP_PROXY = proxy.mycompany.com: 8080

y entonces funcionará.

También puede usar nltk.download_shell() y seguir los pasos interactivos que se muestran a continuación.

introduzca la descripción de la imagen aquí

También use nltk.data.path.append('/your/new/data/directory/path') para indicar a nltk que cargue datos de la nueva ruta de datos.