У меня была похожая проблема при использовании назначенной папки для нескольких загрузок, и мне пришлось добавить путь к данным вручную:
однократная загрузка, может быть достигнута следующим образом (работает)
import os as _os
from nltk.corpus import stopwords
from nltk import download as nltk_download
nltk_download('stopwords', download_dir=_os.path.join(get_project_root_path(), 'temp'), raise_on_error=True)
stop_words: list = stopwords.words('english')
Этот код работает, это означает, что nltk запоминает путь загрузки, переданный в функции загрузки. С другой стороны, если я загружаю последующий пакет, я получаю ошибку, описанную пользователем:
Несколько загрузок вызывают ошибку:
import os as _os
from nltk.corpus import stopwords
from nltk.tokenize import word_tokenize
from nltk import download as nltk_download
nltk_download(['stopwords', 'punkt'], download_dir=_os.path.join(get_project_root_path(), 'temp'), raise_on_error=True)
print(stopwords.words('english'))
print(word_tokenize("I am trying to find the download path 99."))
Ошибка:
Ресурсный пункт не найден. Пожалуйста, используйте NLTK Downloader для получения ресурса:
import nltk nltk.download ('пункт')
Теперь, если я добавляю путь данных ntlk к моему пути загрузки, он работает:
import os as _os
from nltk.corpus import stopwords
from nltk.tokenize import word_tokenize
from nltk import download as nltk_download
from nltk.data import path as nltk_path
nltk_path.append( _os.path.join(get_project_root_path(), 'temp'))
nltk_download(['stopwords', 'punkt'], download_dir=_os.path.join(get_project_root_path(), 'temp'), raise_on_error=True)
print(stopwords.words('english'))
print(word_tokenize("I am trying to find the download path 99."))
Это работает ... Не знаю, почему работает в одном случае, но не в другом, но сообщение об ошибке, похоже, подразумевает, что оно не регистрируется в папке загрузки во второй раз. Примечание: использование windows8.1 / python3.7 / nltk3.5
>>> nltk.download()