NLTK:设置代理服务器

ymn*_*ymn 15 python nltk proxy-server

我正在尝试学习用Python编写的NLTK - Natural Language Toolkit,我想安装一个示例数据集来运行一些例子.

我的网络连接使用代理服务器,我正在尝试指定代理地址,如下所示:

>>> nltk.set_proxy('http://proxy.example.com:3128' ('USERNAME', 'PASSWORD'))
>>> nltk.download()
Run Code Online (Sandbox Code Playgroud)

但是我收到一个错误:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: 'str' object is not callable
Run Code Online (Sandbox Code Playgroud)

我决定ProxyBasicAuthHandler先打电话nltk.download():

import urllib2

auth_handler = urllib2.ProxyBasicAuthHandler(urllib2.HTTPPasswordMgrWithDefaultRealm())
auth_handler.add_password(realm=None, uri='http://proxy.example.com:3128/', user='USERNAME', passwd='PASSWORD')
opener = urllib2.build_opener(auth_handler)
urllib2.install_opener(opener)

import nltk
nltk.download()
Run Code Online (Sandbox Code Playgroud)

但现在我明白了HTTP Error 407 - Proxy Autentification Required.

文档如果代理设置为,None则此函数将尝试检测系统代理.但它没有用.

如何为NLTK安装示例数据集?

dem*_*lem 19

您首次尝试获得这些代码行的网站出现错误(我看到同样的错误)

错误的一行是

nltk.set_proxy('http://proxy.example.com:3128' ('USERNAME', 'PASSWORD'))
Run Code Online (Sandbox Code Playgroud)

你需要一个逗号来分隔参数.应该是正确的行

nltk.set_proxy('http://proxy.example.com:3128', ('USERNAME', 'PASSWORD'))
Run Code Online (Sandbox Code Playgroud)

这将工作得很好.


Ank*_*rya 11

我也得到了相同的错误,但我得到了一个完美的解决方案.您需要手动下载nltk_data并将其放在linux中的usr/lib/nltk_data目录中,如果使用windows,则将其放在c:\nltk_data中.
以下是您需要遵循的步骤:
1 .从此Github链接下载nltk_data zip文件
https://github.com/nltk/nltk_data/tree/gh-pages.
2.由于数据是zip格式,您需要提取它.
3. 特别为ubuntu用户,以下命令以方便的方式导航文件系统.
sudo nautilus它使复制/粘贴过程得心应手.现在您可以轻松地复制到usr/share或轻松创建文件夹.
4.如果你是linux用户,那么在usr/share中创建一个名为nltk_data的文件夹,如果使用windows,则在c:/中创建相同的文件.
5.现在将刚刚创建的nltk_data文件夹中的nltk_data-gh-pages(您刚提取的)的所有内容粘贴.
6.现在形成nltk_data/packages文件夹复制所有文件夹并将其粘贴到nltk_data文件夹.现在你完成了.

由于这是我的第一个答案,我可能无法正确解释该过程.因此,如果您在执行这些步骤时遇到问题,请进行评论.


小智 10

我在Windows 10环境下运行NLTK 3.2.5和python 3.6.我用这个脚本:

nltk.set_proxy('http://user:password@proxy.example.com:3128')
nltk.download()
Run Code Online (Sandbox Code Playgroud)


DAC*_*ACW 5

上面建议的选项对我不起作用。这是在Windows环境中对我有用的东西。尝试卸下圆括号。现在可以使用了!

nltk.set_proxy('http://proxy.example.com:3128', 'USERNAME', 'PASSWORD')
Run Code Online (Sandbox Code Playgroud)