You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

NLTK WordNetLemmatizer运行报LookupError的解决求助

修复NLTK WordNet词形还原的LookupError问题

问题描述

我编写了一段Python代码用于字符串词形还原:

from nltk.stem.wordnet import WordNetLemmatizer
lemmatizer = WordNetLemmatizer()
print("better :", lemmatizer.lemmatize("better", pos ="a"))

运行时抛出LookupError,提示找不到wordnet资源,错误信息如下:

Traceback (most recent call last):
  File "C:\Users\user1\AppData\Local\Programs\Python\Python310\lib\site-packages\nltk\corpus\util.py", line 80, in __load
    try: root = nltk.data.find('{}/{}\'.format(self.subdir, zip_name))
  File "C:\Users\user1\AppData\Local\Programs\Python\Python310\lib\site-packages\nltk\data.py", line 675, in find
    raise LookupError(resource_not_found)
LookupError:
**********************************************************************
  Resource ←[93mwordnet←[0m not found.
  Please use the NLTK Downloader to obtain the resource:

  ←[31m>>> import nltk
  >>> nltk.download('wordnet')
  ←[0m
  Searched in:
    - 'C:\\Users\\user1/nltk_data'
    - 'C:\\nltk_data'
    - 'D:\\nltk_data'
    - 'E:\\nltk_data'
    - 'C:\\Users\\user1\\AppData\\Local\\Programs\\Python\\Python310\\nltk_data'
    - 'C:\\Users\\user1\\AppData\\Local\\Programs\\Python\\Python310\\share\\nltk_data'
    - 'C:\\Users\\user1\\AppData\\Local\\Programs\\Python\\Python310\\lib\\nltk_data'
    - 'C:\\Users\\user1\\AppData\\Roaming\\nltk_data'
**********************************************************************

During handling of the above exception, another exception occurred:
Traceback (most recent call last):
  File "C:\Users\user1\Desktop\Tor Browser\sort.py", line 3, in <module>
    print("better :", lemmatizer.lemmatize("better", pos ="a"))
  File "C:\Users\user1\AppData\Local\Programs\Python\Python310\lib\site-packages\nltk\stem\wordnet.py", line 40, in lemmatize
    lemmas = wordnet._morphy(word, pos)
  File "C:\Users\user1\AppData\Local\Programs\Python\Python310\lib\site-packages\nltk\corpus\util.py", line 116, in __getattr__
    self.__load()
  File "C:\Users\user1\AppData\Local\Programs\Python\Python310\lib\site-packages\nltk\corpus\util.py", line 81, in __load
    except LookupError: raise e
  File "C:\Users\user1\AppData\Local\Programs\Python\Python310\lib\site-packages\nltk\corpus\util.py", line 78, in __load
    root = nltk.data.find('{}/{}\'.format(self.subdir, self.__name))
  File "C:\Users\user1\AppData\Local\Programs\Python\Python310\lib\site-packages\nltk\data.py", line 675, in find
    raise LookupError(resource_not_found)
LookupError:
**********************************************************************
  Resource ←[93mwordnet←[0m not found.
  Please use the NLTK Downloader to obtain the resource:

  ←[31m>>> import nltk
  >>> nltk.download('wordnet')
  ←[0m
  Searched in:
    - 'C:\\Users\\user1/nltk_data'
    - 'C:\\nltk_data'
    - 'D:\\nltk_data'
    - 'E:\\nltk_data'
    - 'C:\\Users\\user1\\AppData\\Local\\Programs\\Python\\Python310\\nltk_data'
    - 'C:\\Users\\user1\\AppData\\Local\\Programs\\Python\\Python310\\share\\nltk_data'
    - 'C:\\Users\\user1\\AppData\\Local\\Programs\\Python\\Python310\\lib\\nltk_data'
    - 'C:\\Users\\user1\\AppData\\Roaming\\nltk_data'
**********************************************************************

我已经执行过import nltk; nltk.download()安装NLTK包,但问题依然存在,如何修复才能让代码正常运行?

解决方案

1. 单独下载WordNet资源

执行以下代码直接指定下载wordnet:

import nltk
nltk.download('wordnet')

或者在终端使用命令行下载:

python -m nltk.downloader wordnet

这会确保WordNet语料库被正确安装到NLTK的默认数据路径中。

2. 验证资源路径(可选)

如果仍报错,检查NLTK的默认数据存储路径,确认WordNet是否存在:

import nltk
print(nltk.data.path)

查看输出的路径列表,确保wordnet文件夹存在于其中某一个路径下。

3. 替代方案:使用Spacy进行词形还原

如果不想依赖NLTK的WordNet,可以使用Spacy库,它自带词形还原功能:
首先安装依赖:

pip install spacy
python -m spacy download en_core_web_sm

然后使用以下代码:

import spacy
nlp = spacy.load("en_core_web_sm")
doc = nlp("better")
print("better :", doc[0].lemma_)

内容的提问来源于stack exchange,提问作者Mostafa Heydar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.10 05:25:52