NLTK:设置代理服务器

时间:2012-12-17 05:12:26

标签: python nltk proxy-server

我正在尝试学习NLTK - 用Python编写的自然语言工具包,我想安装一个示例数据集来运行一些示例。

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

>>> nltk.set_proxy('http://proxy.example.com:3128' ('USERNAME', 'PASSWORD'))
>>> nltk.download()

但是我收到了一个错误:

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

我决定在致电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()

但现在我得到HTTP Error 407 - Proxy Autentification Required

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

如何为NLTK安装样本数据集?

9 个答案:

答案 0 :(得分:15)

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

错误的行是

nltk.set_proxy('http://proxy.example.com:3128' ('USERNAME', 'PASSWORD'))

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

nltk.set_proxy('http://proxy.example.com:3128', ('USERNAME', 'PASSWORD'))

这样可以正常使用。

答案 1 :(得分:9)

我也得到了相同的错误,但我得到了一个完美的解决方案。你需要手动下载nltk_data并将其放在linux中的usr / lib / nltk_data目录中,如果使用windows,则将其放在c:\ nltk_data中/ strong>。
以下是您需要遵循的步骤:
1.从此Github链接中下载nltk_data zip文件
https://github.com/nltk/nltk_data/tree/gh-pages 2.由于数据是拉链形式,你需要提取它 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文件夹。 现在你完成了。

由于这是我的第一个答案,我可能无法正确解释该过程。因此,如果您无法完成这些步骤,请进行评论

答案 2 :(得分:8)

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

nltk.set_proxy('http://user:password@proxy.example.com:3128')
nltk.download()

答案 3 :(得分:5)

上面提到的选项对我不起作用。这是我在Windows环境中对我有用的东西。尝试删除圆括号。它现在有效!

nltk.set_proxy('http://proxy.example.com:3128', 'USERNAME', 'PASSWORD')

答案 4 :(得分:2)

我在Windows环境中运行NLTK 3.0和python 3.4 ..如果我删除分支,代理身份验证运行良好.. 所以使用这个脚本

nltk.set_proxy('http://proxy.example.com:3128', 'username', 'password')

答案 5 :(得分:0)

通过更改适当的环境变量,在bash中设置系统的代理。

我保留的一些代理设置是:

http_proxy=http://127.0.0.1:3129/
ftp_proxy=http://127.0.0.1:3129/
all_proxy=socks://127.0.0.1:3129/
https_proxy=http://127.0.0.1:3129/

您可以通过编辑〜/ .bashrc文件使环境变量中的更改永久化。样本编辑:

export http_proxy=http://127.0.0.1:3129/

答案 6 :(得分:0)

如果您想手动安装NLTK Corpus。

1)转到http://www.nltk.org/nltk_data/并下载所需的NLTK语料库文件。

2)现在在Python shell中检查nltk.data.path

的值

3)选择计算机上存在的路径之一,并将数据文件解压缩到里面的corpora子目录中。

4)现在您可以导入数据from nltk.corpos import stopwords

参考:https://medium.com/@satorulogic/how-to-manually-download-a-nltk-corpus-f01569861da9

答案 7 :(得分:0)

说实话,公认的解决方案对我不起作用。而且我还担心泄露密码,因为我们需要明确指定密码。

与其在Python控制台中使用nltk.download(),不如在cmd中运行python -m nltk.downloader all(对于Windows)对我而言超级有用!

ps: 对于Windows用户,请记住在运行命令之前关闭代理服务器。 转到右上方的 Internet Explorer -> 齿轮图标-> Internet选项-> 连接-> < strong> LAN设置-> 取消选中 “用户代理服务器... VPN连接)。” -> 确定

资源也来自官方文件:https://www.nltk.org/data.html#command-line-installation

答案 8 :(得分:-2)

我可以使用它:

nltk.set_proxy('http://user_name:password@proxy_ip_adress:3128')