Как настроить каталог данных nltk из кода? - PullRequest
67 голосов
/ 19 августа 2010

Как настроить каталог данных nltk из кода?

Ответы [ 6 ]

61 голосов
/ 11 октября 2010

Просто измените элементы на nltk.data.path, это простой список.

38 голосов
/ 10 апреля 2014

Из кода 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``.

Тогда в коде:

######################################################################
# 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')
    ]

Чтобы изменить путь, просто добавьте к списку возможных путей:

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

Или в окнах:

import nltk
nltk.data.path.append("C:\somewhere\farfar\away\path")
22 голосов
/ 10 апреля 2014

я использую append, пример

nltk.data.path.append('/libs/nltk_data/')
5 голосов
/ 02 апреля 2018

Вместо добавления nltk.data.path.append('your/path/to/nltk_data') к каждому сценарию, NLTK принимает переменную среды NLTK_DATA. ( код ссылки )

Откройте ~/.bashrc (или ~/.profile) в текстовом редакторе (например, nano, vim, gedit) и добавьте следующую строку:

export NLTK_DATA="your/path/to/nltk_data"

Выполнить source для загрузки переменной среды

source ~/.bashrc


Тест

Открыть Python и выполнить следующие строки

import nltk
nltk.data.path

Вы можете видеть ваш путь к данным nltk, уже находящийся там.

Ссылка: @ alvations ответ на nltk / nltk # 1997

1 голос
/ 20 июня 2017

Для тех, кто использует uwsgi:

У меня были проблемы, потому что я хотел, чтобы приложение uwsgi (работающее от имени другого пользователя) имело доступ к данным nltk, которые я ранее скачал. Для меня сработало добавление следующей строки в myapp_uwsgi.ini:

env = NLTK_DATA=/home/myuser/nltk_data/

Устанавливает переменную среды NLTK_DATA, как предлагает @ schemacs.
Вам может потребоваться перезапустить процесс uwsgi после внесения этого изменения.

0 голосов
/ 05 июня 2019

Другое решение - опередить его.

попытка импортировать нлтк nltk.download ()

Когда появляется окно с вопросом, хотите ли вы загрузить корпус, вы можете указать, в какой каталог он должен быть загружен.

...