96 votes

Comment configurer le répertoire de données nltk à partir du code ?

Comment configurer le répertoire de données nltk à partir du code ?

78voto

Tim McNamara Points 6478

Il suffit de modifier les éléments de nltk.data.path, c'est une liste simple.

51voto

alvas Points 4333

D'après le code, http://www.nltk.org/_modules/nltk/data.html :

``nltk:path``: Specifies the file stored in the NLTK data
 package at *path*.  NLTK will search for these files in the
 directories specified by ``nltk.data.path``.

Puis dans le code :

######################################################################
# Search Path
######################################################################

path = []
"""A list of directories where the NLTK data package might reside.
   These directories will be checked in order when looking for a
   resource in the data package.  Note that this allows users to
   substitute in their own versions of resources, if they have them
   (e.g., in their home directory under ~/nltk_data)."""

# User-specified locations:
path += [d for d in os.environ.get('NLTK_DATA', str('')).split(os.pathsep) if d]
if os.path.expanduser('~/') != '~/':
    path.append(os.path.expanduser(str('~/nltk_data')))

if sys.platform.startswith('win'):
    # Common locations on Windows:
    path += [
        str(r'C:\nltk_data'), str(r'D:\nltk_data'), str(r'E:\nltk_data'),
        os.path.join(sys.prefix, str('nltk_data')),
        os.path.join(sys.prefix, str('lib'), str('nltk_data')),
        os.path.join(os.environ.get(str('APPDATA'), str('C:\\')), str('nltk_data'))
    ]
else:
    # Common locations on UNIX & OS X:
    path += [
        str('/usr/share/nltk_data'),
        str('/usr/local/share/nltk_data'),
        str('/usr/lib/nltk_data'),
        str('/usr/local/lib/nltk_data')
    ]

Pour modifier le chemin, il suffit d'ajouter à la liste des chemins possibles :

import nltk
nltk.data.path.append("/home/yourusername/whateverpath/")

Ou dans les fenêtres :

import nltk
nltk.data.path.append("C:\somewhere\farfar\away\path")

31voto

gonzalojpv Points 11

J'utilise append, exemple

nltk.data.path.append('/libs/nltk_data/')

1voto

danyamachine Points 1113

Pour ceux qui utilisent uwsgi :

J'avais des problèmes parce que je voulais qu'une application uwsgi (fonctionnant en tant qu'utilisateur différent de moi-même) ait accès aux données nltk que j'avais précédemment téléchargées. Ce qui a fonctionné pour moi, c'est d'ajouter la ligne suivante myapp_uwsgi.ini :

env = NLTK_DATA=/home/myuser/nltk_data/

Cela définit la variable d'environnement NLTK_DATA, comme suggéré par @schemacs.
Vous devrez peut-être redémarrer votre processus uwsgi après avoir effectué cette modification.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X