尝试为nltk安装Punkt时出现以下错误:
nltk.download('punkt')
[nltk_data] Error loading Punkt: <urlopen error [SSL:
[nltk_data] CERTIFICATE_VERIFY_FAILED] certificate verify failed
[nltk_data] (_ssl.c:590)>
False
下载程序脚本已损坏。作为临时解决方法,可以从here手动下载punkt tokenizer,然后将解压缩的文件夹放在相应的位置。每个操作系统的默认文件夹是:
C:\nltk_data\tokenizers
/usr/local/share/nltk_data/tokenizers
/usr/share/nltk_data/tokenizers
TLDR:这是一个更好的解决方案:https://github.com/gunthercox/ChatterBot/issues/930#issuecomment-322111087
请注意,当您运行nltk.download()
时,会弹出一个窗口,让您选择要下载的软件包(下载不会立即自动启动)。
为了补充已接受的答案,以下是将在Mac上搜索的目录的完整列表(不限于在接受的答案中提到的目录):
- '/Users/YOUR_USERNAME/nltk_data'
- '/usr/share/nltk_data'
- '/usr/local/share/nltk_data'
- '/usr/lib/nltk_data'
- '/usr/local/lib/nltk_data'
- '/Users/YOUR_USERNAME/YOUR_VIRTUAL_ENV_DIRECTORY/nltk_data'
- '/Users/YOUR_USERNAME/YOUR_VIRTUAL_ENV_DIRECTORY/share/nltk_data'
- '/Users/YOUR_USERNAME/YOUR_VIRTUAL_ENV_DIRECTORY/lib/nltk_data'
如果上面的链接死掉,这里是完整粘贴的解决方案:
import nltk
import ssl
try:
_create_unverified_https_context = ssl._create_unverified_context
except AttributeError:
pass
else:
ssl._create_default_https_context = _create_unverified_https_context
nltk.download()
在您喜欢的Python IDE中或通过命令行运行上面的代码。
运行Python解释器并键入命令:
import nltk
nltk.download()
从这里:http://www.nltk.org/data.html
如果出现SSL /证书错误,请运行以下命令
bash /Applications/Python 3.6/Install Certificates.command
从这里:ssl.SSLError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:749)
这意味着您没有使用HTTPS与Python等的其他运行时依赖项一致地工作。
如果您使用的是Linux(Ubuntu)
~$ sudo apt-get install ca-certificates
应该解决这个问题。
如果您在带有docker文件的脚本中使用它,则必须确保已在docker文件中安装ca-certificates模块。
我的解决方案是:
首先转到路径/ Applications / Python 3.6 /并运行Install Certificates.command
您将获得相同的管理员权限。
如果您无法下载,那么其他答案建议您可以直接下载并放置它。您需要将它们放在以下目录结构中。
> nltk_data
> corpora
> brown
> conll2000
> movie_reviews
> wordnet
> taggers
> averaged_perceptron_tagger
> tokenizers
> punkt
无解之后我的解决方案。我通过GUI导航到Python 3.7文件夹,在终端中打开了“Certificates.command”文件,SSL问题立即得到解决。
这可以通过禁用SSL检查来实现!
import nltk
import ssl
try:
_create_unverified_https_context = ssl._create_unverified_context
except AttributeError:
pass
else:
ssl._create_default_https_context = _create_unverified_https_context
nltk.download()