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

Python(Jupyter)运行nltk.corpus触发LookupError报错如何解决

报错原因

触发LookupError的核心原因是本地NLTK环境没有提前下载stopwords对应的语料资源,NLTK的懒加载机制在指定搜索路径下找不到目标语料包时,就会抛出该类资源找不到的错误。

解决步骤

按优先级从高到低尝试以下方案:

  • 代码内直接下载目标语料(最适配Jupyter环境,优先试)
    在原有代码前添加NLTK资源下载语句,不需要下载全量NLTK数据包,仅下载需要的停用词语料即可,速度更快:
    import nltk
    # 下载英文停用词语料
    nltk.download('stopwords')
    
    # 下载完成后执行原有逻辑
    from nltk.corpus import stopwords
    stop = stopwords.words('english')
    
  • 图形界面下载(代码下载超时/无响应时用)
    如果直接调用download方法出现网络超时、无返回的情况,运行以下代码唤起NLTK官方下载器:
    import nltk
    nltk.download()
    
    在弹出的下载窗口中按以下步骤操作:
    • 切换到Corpora分类标签
    • 在资源列表中找到stopwords项并勾选
    • 存储路径保持默认配置即可,不要自定义路径避免NLTK搜索不到
    • 点击Download按钮等待下载完成,关闭窗口后重新运行原有代码即可
  • 路径异常排查(手动放置语料时用)
    如果之前已经手动下载过语料包仍然报错,先运行以下代码查看NLTK默认的资源搜索路径:
    import nltk
    print(nltk.data.path)
    
    将解压后的stopwords语料文件夹,放到上述打印出的任意一个路径下的corpora目录中即可,注意目录层级不要出错:正确结构为corpora/stopwords/english,不要额外嵌套多层文件夹。
验证方法

语料配置完成后,运行以下代码验证是否修复成功,能正常输出停用词列表即说明问题解决:

from nltk.corpus import stopwords
# 打印前10个英文停用词做校验
print(stopwords.words('english')[:10])

正常输出参考:['i', 'me', 'my', 'myself', 'we', 'our', 'ours', 'ourselves', 'you', "you're"]

内容的提问来源于stack exchange,提问作者108_Amit Rathod

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 01:54:24