如何解决NLTK中punkt分词器下载失败(WinError 10060)问题?
解决NLTK punkt资源下载超时及LookupError问题
问题原因
- 调用
sent_tokenize时出现LookupError,是因为缺少NLTK的punkt分词模型 - 执行
nltk.download('punkt')出现WinError 10060,是因为官方数据源连接不稳定
解决方法
方法1:手动下载部署punkt资源
- 先运行以下代码查看本地NLTK数据目录路径:
import nltk print(nltk.data.path) - 选择一个有读写权限的路径(比如
C:\Users\你的用户名\AppData\Roaming\nltk_data),在该路径下创建tokenizers文件夹 - 获取包含
english.pickle等文件的punkt压缩包,解压到tokenizers文件夹内,最终形成nltk_data\tokenizers\punkt目录 - 重启Python环境后重新调用
sent_tokenize即可
方法2:通过代理或国内镜像下载
- 如果有可用代理,先设置代理再执行下载:
import nltk # 替换为你的代理地址和端口 nltk.set_proxy('http://代理地址:端口') nltk.download('punkt') - 或直接使用国内NLTK数据镜像源下载(替换为国内镜像地址):
import nltk nltk.download('punkt', url='国内NLTK数据镜像地址')
方法3:调整网络环境
- 临时关闭防火墙、杀毒软件的网络拦截功能,避免其阻止NLTK的下载请求
- 切换到更稳定的网络环境(如手机热点)后再次尝试下载
内容的提问来源于stack exchange,提问作者Adarsh Agarwal
相关产品推荐
相关产品推荐

