18

我正在尝试学习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

文档,如果代理设置为,None则此功能将尝试检测系统代理。但它不起作用。

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

4

9 回答 9

22

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

错误的行是

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

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

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

这将工作得很好。

于 2012-12-24T17:16:43.393 回答
12

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

nltk.set_proxy('http://user:password@proxy.example.com:3128')
nltk.download()
于 2018-01-16T10:12:15.823 回答
11

我也遇到了同样的错误,但我得到了一个完美的解决方案。您需要手动下载 nltk_data 并将其放入 linux 的 usr/lib/nltk_data 目录中,如果您使用 windows ,则将其放入 c:\nltk_data
以下是您需要遵循的步骤: 1.从这个 Github 链接https://github.com/nltk/nltk_data/tree/gh-pages
下载 nltk_data zip 文件。 2.由于数据是 zip 格式,您需要将其解压缩。 3.特别针对 ubuntu 用户,使用以下命令方便地导航文件系统。sudo nautilus它使复制/粘贴过程变得方便。现在您可以轻松复制到 usr/share 或轻松创建文件夹。




4.现在,如果您是 linux 用户,请在 usr/share 中创建一个名为 nltk_data 的文件夹,如果您使用 windows,请在 c:/ 中创建相同的文件夹。
5.现在将 nltk_data-gh-pages(您刚刚提取的)的所有内容粘贴到您刚刚创建的 nltk_data 文件夹中。
6. 现在形成 nltk_data/packages 文件夹复制所有文件夹并将其粘贴到 nltk_data 文件夹。现在你完成了。

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

于 2015-01-09T23:08:26.573 回答
6

上面建议的选项对我不起作用。这是在我的 Windows 环境中对我有用的方法。试着去掉圆括号。现在可以了!

nltk.set_proxy('http://proxy.example.com:3128', 'USERNAME', 'PASSWORD')
于 2014-10-17T16:37:05.327 回答
2

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

nltk.set_proxy('http://proxy.example.com:3128', 'username', 'password')
于 2014-11-27T05:16:47.217 回答
2

如果你想手动安装 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

于 2017-05-01T14:02:11.577 回答
1

通过更改适当的环境变量也可以在 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/
于 2012-12-17T05:39:54.980 回答
0

老实说,公认的解决方案对我不起作用。而且我也害怕泄露我的密码,因为我们需要明确指定它。

nltk.download()与其在 python 控制台中使用,不如python -m nltk.downloader all在 cmd 中运行(对于 Windows)对我来说非常有用!

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

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

于 2018-11-08T05:39:18.303 回答
-2

我可以让它工作:

nltk.set_proxy('http://user_name:password@proxy_ip_adress:3128')
于 2018-07-26T16:13:33.097 回答