Как настроить каталог данных nltk из кода?Как настроить каталог данных nltk из кода?
ответ
Просто сменить пункты nltk.data.path
, это простой список.
или установить переменную среды NLTK_DATA. – schemacs
My nltk.data.path имеет '/ home/aankney/nltk_data'' как первый элемент списка, но я на сервере и хочу, чтобы' nltk_data' были доступны другим пользователям с использованием сервера. Как предотвратить использование nltk в качестве одного из путей загрузки? –
Я использую добавить, например,
nltk.data.path.append('/libs/nltk_data/')
Из кода, 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')
]
Чтобы изменить путь, просто добавить d в список возможных путей:
import nltk
nltk.data.path.append("/home/yourusername/whateverpath/")
Или в окнах:
import nltk
nltk.data.path.append("C:\somewhere\farfar\away\path")
В какой каталог будет входить этот файл? – hlin117
он находится в исходном исходном коде NLTK. Перейдите в каталог, в котором вы сохраните исходный код, затем перейдите в 'nltk/nltk/data' – alvas
, посмотрите на' magically_find_nltk_data() 'из http://stackoverflow.com/questions/36382937/nltk-doesnt-add-nltk -data к пути поиска/36383314 # 36383314 – alvas
Для тех, кто использует uwsgi:
У меня были проблемы, потому что я хотел приложение uwsgi (работает как другой пользователь, чем я), чтобы иметь доступ к данным nltk, которые я ранее загружал. То, что сработало для меня, добавив следующую строку в myapp_uwsgi.ini
:
env = NLTK_DATA=/home/myuser/nltk_data/
Это устанавливает переменную окружения NLTK_DATA
, как это было предложено @schemacs.
Возможно, вам потребуется перезапустить процесс uwsgi после внесения изменений.
Связанный: [Изменить каталог пути nltk.download() по умолчанию ~/ntlk_data] (https://stackoverflow.com/questions/44857382/change-nltk-download-path-directory-from-default-ntlk-data) – smci