使用nltk.download()下载时出现错误

22
我正在使用Python尝试使用NLTK包,我尝试使用nltk.download()下载NLTK但是出现了错误信息。请问如何解决这个问题?谢谢。
我使用的系统是在VMware下安装的Ubuntu,IDE是Spyder。
使用nltk.download('all')后,它可以下载一些软件包,但是在下载oanc_masc时出现错误信息。

1
为什么不使用apt-get安装python-nltk呢? - Cristian Ciupitu
1
@CristianCiupitu,您可以按照自己的方式安装nltk,但是在安装完成后,您需要使用nltk.download()来下载语料库数据。 - Ffisegydd
@Ffisegydd,你有解决这个问题的方案吗?谢谢。 - user288609
你有修改过任何设置吗? - Ffisegydd
我没有修改任何设置。只是在 VMware 下安装了 Ubuntu。主机系统是 Windows 7。 - user288609
似乎他们的服务器出了些问题。无法下载nltk数据。服务器没有响应。 - randomsurfer_123
8个回答

22

要下载特定的数据集/模型,请使用nltk.download()函数,例如,如果您想要下载punkt句子分词器,请使用:

要下载特定的数据集/模型,请使用nltk.download()函数,例如,如果您想要下载punkt句子分词器,请使用:

$ python3
>>> import nltk
>>> nltk.download('punkt')

如果您不确定需要哪些数据/模型,可以从基本的数据+模型列表开始:

>>> import nltk
>>> nltk.download('popular')

它将下载“热门”资源列表。

确保你已经安装了最新版本的 NLTK,因为它不断改进并持续维护:

$ pip install --upgrade nltk

编辑

如果有人想要避免从nltk下载大型数据集时出现错误,可以参考https://dev59.com/CZjga4cB1Zd3GeqPLYbR#38135306

$ rm /Users/<your_username>/nltk_data/corpora/panlex_lite.zip
$ rm -r /Users/<your_username>/nltk_data/corpora/panlex_lite
$ python

>>> import nltk
>>> dler = nltk.downloader.Downloader()
>>> dler._update_index()
>>> dler._status_cache['panlex_lite'] = 'installed' # Trick the index to treat panlex_lite as it's already installed.
>>> dler.download('popular')

如果有人想找到nltk_data目录,请参考https://dev59.com/Y5Xfa4cB1Zd3GeqPirA5#36383314

如果要配置nltk_data路径,请参考https://dev59.com/63A75IYBdhLWcg3wAUB9#22987374


1
谢谢回复。我尝试了nltk.download('all'),它成功地下载了一些包,但在下载与oasc_masc相关的内容时卡住了,我在原帖中附上了相关的截图。 - user288609
1
你的nltk版本是多少?在终端上运行以下命令,输出是什么:python -c "import nltk; print nltk.__version__" - alvas
嗨,@alvas,我在Ubuntu上使用nltk.download('all')时遇到了类似的问题,无论是在IDLE还是命令行中都出现了HTTP错误404:未找到。我的NLTK版本是2.0b9。你有任何想法吗? - Joansy
@Joansy,请更新你的NLTK。使用sudo pip install nltk或者sudo apt-get install python-nltk命令进行安装。一旦更新完成,问题应该会解决。否则,你可能需要手动设置URL。先尝试更新NLTK,如果还不行,再回来找我 =) - alvas

8

从命令行开始,在导入nltk后尝试:

nltk.download('popular', halt_on_error=False)

当出现错误时,它会要求重试损坏的软件包,请选择拒绝并输入“n”,然后它将继续处理正确的软件包。


我遇到了几个“UnicodeDecodeError”,为了下载所有内容,我不得不多次运行这个命令,但最终它成功了。谢谢! - CoMartel

1
试试用VPN,对我有用。

你的回答可以通过提供更多支持性信息来改进。请[编辑]以添加更多细节,比如引用或文献,以便他人可以确认你的回答是否正确。你可以在帮助中心找到关于如何撰写好回答的更多信息。 - undefined

1

a) 在OSX中运行以下命令:

sudo /Applications/Python\ 3.6/Install\ Certificates.command

b) 切换到管理员用户(您设置了管理员权限的用户)并在命令行中输入:

/Applications/Python\ 3.6/Install\ Certificates.command

注意事项:

  • “\”是必需的,因为它们可以转义文件名中的空格。
  • 如果您安装的是Python 3.6,则此过程有效,否则请更改以匹配您的安装版本... 执行以下操作:

ls /Applications

并查看您那里的python目录名称。


1

解决这个错误的简单(困难)方法是手动执行该过程。只需访问网站https://www.nltk.org/nltk_data/并下载所需的zip文件并提取内容。

在Windows中,转到user/AppData/local/Programs/Python/Python(version)/lib并创建一个名为nltk_data的文件夹。然后创建相应的文件夹。例如,对于'punkt',创建文件夹tokenizers并将提取的文件夹中的文件夹'punkt'添加到其中。大多数情况下,终端本身会提供此信息。

运行您的程序。干杯!

编辑1:当然,下载所有文件可能需要时间,但如果“urlopen error”仍然存在,则这是唯一的选择。

编辑2:如果您无法下载nltk文件,则通常是路由器或网络的问题。尝试更改您的网络,这应该有所帮助。


0
首先从 https://www.nltk.org/nltk_data/ 手动下载它,使用一个 id 并且使用 vpn 下载并保存它,按照错误中显示的路径保存在那里,然后附加 /nltk_data/corpora 文件夹,并将您下载的文件保存为解压格式,然后关闭 VPN 并再次运行相同的代码,它会起作用。

0
我试图在我的Ubuntu机器上通过命令行安装数据。
nlp$ python -m nltk.downloader all
/usr/lib/python3.10/runpy.py:126: RuntimeWarning: 'nltk.downloader' found in sys.modules after import of package 'nltk', but prior to execution of 'nltk.downloader'; this may result in unpredictable behaviour
  warn(RuntimeWarning(msg))
[nltk_data] Error loading all: <urlopen error [Errno 104] Connection
[nltk_data]     reset by peer>
Error installing package. Retry? [n/y/e]

然后尝试了手动安装
  1. mkdir /usr/local/share/nltk_data
  2. cd /usr/local/share/nltk_data
  3. mkdir tokenizers # 其他文件夹:chunkers、grammars、misc、sentiment、taggers、corpora、help、models、stemmers
  4. cd tokenizers # 我想下载一个分词器
  5. wget [http://URL/punkt.zip] # 前往NLTK Corpora并获取所需数据的URL。
  6. unzip punkt.zip
  7. # rm punkt.zip

我遇到了一个错误:无法建立SSL连接,所以我选择了http


-3

我遇到了这个错误:

Resource punkt not found. Please use the NLTK Downloader to obtain the resource: import nltk nltk.download('punkt')

当我尝试通过编写来解决问题时:

import nltk

nltk.download()

我的电脑突然关机,Anaconda也关闭了。每次尝试打开它时都会显示错误。

我通过编写以下内容解决了这个问题:

import nltk

nltk.download('punkt')

这可能没有帮助。他的问题不是无法下载' all',更可能只是无法下载'oanc_masc'. - Jzou

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接