导入nltk库时找不到语料库/停用词

Fri*_*ten 36 python nltk

我试图在python 2.7中导入nltk包

  import nltk
  stopwords = nltk.corpus.stopwords.words('english')
  print(stopwords[:10])
Run Code Online (Sandbox Code Playgroud)

运行这个给我以下错误:

LookupError: 
**********************************************************************
Resource 'corpora/stopwords' not found.  Please use the NLTK
Downloader to obtain the resource:  >>> nltk.download()
Run Code Online (Sandbox Code Playgroud)

因此,我打开我的python终端并执行以下操作:

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

这给了我:

showing info https://raw.githubusercontent.com/nltk/nltk_data/gh-pages/index.xml
Run Code Online (Sandbox Code Playgroud)

然而,这似乎并没有停止.再次运行它仍然给我同样的错误.有什么想法出错吗?

Kur*_*aki 53

您目前正在尝试下载nltk数据中的每个项目,因此这可能需要很长时间.您可以尝试仅下载所需的停用词:

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


Raf*_*ero 23

如提到的一些在这里库尔特·布尔巴基但在命令行:

python -m nltk.downloader stopwords
Run Code Online (Sandbox Code Playgroud)


小智 12

如果出现 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()
Run Code Online (Sandbox Code Playgroud)


小智 6

您可以在控制台中单独执行此操作。
它会给你结果。

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

遇到此问题时,我使用了jupyter控制台。

  • 此答案与接受的答案有何不同? (3认同)

R K*_*mar 5

如果您的电脑使用代理进行连接,请尝试以下操作:

import nltk

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