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.']