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

调用nltk.word_tokenize报LookupError找不到punkt资源如何解决

问题原因

抛出LookupError并非NLTK库本身存在安装故障,核心是nltk.word_tokenize()分词功能依赖的预训练模型资源punkt没有随pip安装的nltk主包默认内置。程序运行时会遍历所有预设的NLTK数据检索路径查找tokenizers/punkt/english.pickle模型文件,所有路径都找不到目标文件时就会触发该报错。另外你贴的代码最后一行nltk.word_tokenize()没有传入待分词的文本参数,属于无效调用,运行时也会触发参数缺失错误,需要删除或补全参数。

修复方案

按以下步骤操作即可解决:

  • 下载缺失的punkt资源:在Python脚本开头或者交互环境中执行一次下载命令即可,无需每次运行脚本都重复执行:
import nltk
nltk.download('punkt')

如果网络环境不佳导致下载失败,可以手动下载对应版本的punkt资源包,解压后放到NLTK的资源检索目录下即可。

  • 修正代码中的无效调用:删除无参数的nltk.word_tokenize()行,确保传入分词函数的参数是字符串类型,参考正确代码:
import nltk
# 资源下载完成后再执行业务逻辑
example = df['Text'][50]
print(example)
# 校验类型避免非字符串输入报错
if isinstance(example, str):
    word_tokens = nltk.word_tokenize(example)
    print(word_tokens)
  • 下载后仍提示找不到资源的排查方法:执行以下代码打印NLTK所有默认的资源检索路径,确认你存放punkt资源的目录在路径列表中即可:
import nltk
print(nltk.data.path)

将下载好的punkt文件夹放到上述任意路径下的tokenizers子目录中,程序即可正常加载模型完成分词。

内容的提问来源于stack exchange,提问作者Sudhanshu Pawar

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.27 00:48:25