NLTK download error: File is not a zip file

NLTK download error: File is not a zip file

问题原因

NLTK 的 punkt 资源损坏

解决办法

1.用下面的代码先找到nltk资源的存储地址

python 复制代码
import nltk # 尝试加载资源
print(nltk.data.find('corpora/stopwords')) print(nltk.data.find('tokenizers/punkt'))

如果显示了路径表明stopwords 和 punkt 这两个资源已经在默认目录。

2.如果没有则重新下载

python 复制代码
import nltk
nltk.download("punkt")      # 下载分词模型
nltk.download("punkt_tab")  # 有些版本需要这个表

注意:下载成功后,punkt 文件夹里应该是 .pickle 文件而不是 .zip

正确的文件目录是:

C:\Users\用户名\AppData\Roaming\nltk_data\corpora\stopwords

C:\Users\用户名\AppData\Roaming\nltk_data\tokenizers\punkt

C:\Users\用户名\AppData\Roaming\nltk_data\tokenizers\punkt_tab

3.检验

python 复制代码
import nltk
print(nltk.data.find('tokenizers/punkt'))  # 应该能正常打印路径
from nltk.tokenize import word_tokenize, sent_tokenize
print(word_tokenize("Hello world!"))
print(sent_tokenize("Hello world. This is a test."))

输出

python 复制代码
['Hello', 'world', '!']
['Hello world.', 'This is a test.']