【问题标题】:Corpora/stopwords not found when import nltk library导入 nltk 库时未找到语料库/停用词
【发布时间】:2017-05-27 09:42:57
【问题描述】:

我尝试在 python 2.7 中导入 nltk 包

  import nltk
  stopwords = nltk.corpus.stopwords.words('english')
  print(stopwords[:10])

运行它会给我以下错误:

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

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

import nltk  
nltk.download()

这给了我:

showing info https://raw.githubusercontent.com/nltk/nltk_data/gh-pages/index.xml

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

【问题讨论】:

    标签: python nltk


    【解决方案1】:

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

    import nltk
    nltk.download('stopwords')
    

    或者从命令行(感谢Rafael Valero's answer):

    python -m nltk.downloader stopwords
    

    参考:

    【讨论】:

      【解决方案2】:

      Kurt Bourbaki 提到的一些 here 但在命令行中:

      python -m nltk.downloader stopwords
      

      【讨论】:

        【解决方案3】:

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

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

        【讨论】:

          【解决方案4】:

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

          import nltk
          nltk.download('stopwords')
          

          当我遇到这个问题时,我使用了 jupyter 控制台。

          【讨论】:

          • 这个答案与接受的答案有何不同?
          【解决方案5】:

          您可以在 Python 3 的命令行中输入:

          python3 -m nltk.downloader stopwords
          

          【讨论】:

          • Rafael 提前 6 个月回答了所有 python 版本的问题。
          【解决方案6】:
          showing info https://raw.githubusercontent.com/nltk/nltk_data/gh-pages/index.xml
          

          如果您在 jupyter notebook 中运行此命令,它会打开另一个名为“NLTK Downloader”的窗口。进入该窗口后,您可以选择要下载的主题,然后单击下载按钮开始下载。

          在您关闭 NLTK 下载器窗口之前,Jupyter 中的单元会继续运行。

          【讨论】:

            【解决方案7】:

            如果您收到 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()
            

            【讨论】:

              【解决方案8】:

              我知道评论已经很晚了,但如果有帮助的话:

              虽然nltk.download('stopwords') 可以完成这项工作,但如果您的组织已阻止它,有时它可能会由于代理问题而无法工作。

              我发现this github link 非常方便,我可以从中获取单词列表并将其手动集成到我的项目中,作为一种解决方法。

              【讨论】:

                【解决方案9】:

                从命令行运行以下命令:

                python -m nltk.downloader stopwords
                

                注意:VPN断开时运行命令。

                【讨论】:

                  【解决方案10】:

                  使用GPU运行时,它不会给你任何错误。

                  相同的代码可以工作,你正在使用

                  import nltk
                  stopwords = nltk.corpus.stopwords.words('english')
                  print(stopwords[:10])
                  

                  【讨论】:

                    猜你喜欢
                    • 2014-11-23
                    • 2016-06-19
                    • 2014-07-29
                    • 1970-01-01
                    • 2017-07-26
                    • 1970-01-01
                    • 2016-06-14
                    • 2022-01-21
                    • 2021-11-01
                    相关资源
                    最近更新 更多