Невозможно установить wordnet с помощью nltk 3.9.0, поскольку для импорта nltk требуется установленный wordnet

Невозможно импортировать nltk, и решение, данное в выводе, потребовало от меня импортировать nltk:

>>>import nltk
Traceback (most recent call last):  
File "D:\project\Lib\site-packages\nltk\corpus\util.py", line 84, in __load
    root = nltk.data.find(f"{self.subdir}/{zip_name}")
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "D:\project\Lib\site-packages\nltk\data.py", line 579, in find
    raise LookupError(resource_not_found
LookupError:
**********************************************************************
  Resource wordnet not found.
  Please use the NLTK Downloader to obtain the resource:

  >>> import nltk
  >>> nltk.download('wordnet')

  For more information see: https://www.nltk.org/data.html

  Attempted to load corpora/wordnet.zip/wordnet/

  Searched in:
    - 'C:\\Users\\me/nltk_data'
    - 'D:\\project\\nltk_data'
    - 'D:\\project\\share\\nltk_data'
    - 'D:\\project\\lib\\nltk_data'
    - 'C:\\Users\\me\\AppData\\Roaming\\nltk_data'
    - 'C:\\nltk_data'
    - 'D:\\nltk_data'
    - 'E:\\nltk_data'
**********************************************************************

По сути, я не могу импортировать nltk, потому что wordnet отсутствует, но чтобы загрузить wordnet, мне нужно импортировать nltk, чего я не могу, потому что wordnet отсутствует.

Примечательно, что это исключение выдается дважды, но с другой трассировкой -

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "D:\project\Lib\site-packages\nltk\__init__.py", line 156, in <module>
    from nltk.stem import *
  File "D:\project\Lib\site-packages\nltk\stem\__init__.py", line 34, in <module>
    from nltk.stem.wordnet import WordNetLemmatizer
  File "D:\project\Lib\site-packages\nltk\stem\wordnet.py", line 13, in <module>
    class WordNetLemmatizer:
  File "D:project\Lib\site-packages\nltk\stem\wordnet.py", line 48, in WordNetLemmatizer
    morphy = wn.morphy
             ^^^^^^^^^
  File "D:\project\Lib\site-packages\nltk\corpus\util.py", line 120, in __getattr__
    self.__load()
  File "D:\project\Lib\site-packages\nltk\corpus\util.py", line 86, in __load
    raise e
  File "D:\project\Lib\site-packages\nltk\corpus\util.py", line 81, in __load
    root = nltk.data.find(f"{self.subdir}/{self.__name}")
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "D:\project\Lib\site-packages\nltk\data.py", line 579, in find
    raise LookupError(resource_not_found)
LookupError:
**********************************************************************
  Resource wordnet not found.
  Please use the NLTK Downloader to obtain the resource:

  >>> import nltk
  >>> nltk.download('wordnet')

  For more information see: https://www.nltk.org/data.html

  Attempted to load corpora/wordnet

  Searched in:
    - 'C:\\Users\\me/nltk_data'
    - 'D:\\project\\nltk_data'
    - 'D:\\project\\share\\nltk_data'
    - 'D:\\project\\lib\\nltk_data'
    - 'C:\\Users\\me\\AppData\\Roaming\\nltk_data'
    - 'C:\\nltk_data'
    - 'D:\\nltk_data'
    - 'E:\\nltk_data'
**********************************************************************

Какое решение предлагается в этом случае?

Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
1
0
148
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Эта ошибка появилась в nltk 3.9.0 (выпущенной 18 августа 2024 г.) и является известной проблемой . Это было исправлено в версии 3.9.1:

python3 -m pip install nltk~=3.9.1

Последней полной версией до 3.9.x была nltk 3.8.1. Однако имейте в виду, что эта версия уязвима для удаленного выполнения кода.

python3 -m pip install nltk==3.8.1

Другие вопросы по теме