LookupError:来自nltk.book import *

时间:2015-06-18 07:20:22

标签: python import ipython nltk anaconda

在iPython控制台中,我输入了from nltk.book import,我得到了几个LookupErrors。下面显示了我得到的代码。

*** Introductory Examples for the NLTK Book ***
Loading text1, ..., text9 and sent1, ..., sent9
Type the name of the text or sentence to view it.
Type: 'texts()' or 'sents()' to list the materials.
---------------------------------------------------------------------------
LookupError Traceback (most recent call last)
<ipython-input-3-8446809acbd4> in <module>()
 ----> 1 from nltk.book import*

C:\Users\dell\Anaconda\lib\site-packages\nltk-3.0.3-py2.7.egg\nltk\book.py in <module>()
 20 print("Type: 'texts()' or 'sents()' to list the materials.")
 21 
---> 22 text1 = Text(gutenberg.words('melville-moby_dick.txt'))
 23 print("text1:", text1.name)
 24 

 C:\Users\dell\Anaconda\lib\site-packages\nltk-3.0.3-py2.7.egg\nltk\corpus\util.pyc in __getattr__(self, attr)
 97             raise AttributeError("LazyCorpusLoader object has no attribute '__bases__'")
 98 
 ---> 99         self.__load()
100         # This looks circular, but its not, since __load() changes our
101         # __class__ to something new:

 C:\Users\dell\Anaconda\lib\site-packages\nltk-3.0.3-py2.7.egg\nltk\corpus\util.pyc in __load(self)
 62             except LookupError as e:
 63                 try: root = nltk.data.find('corpora/%s' % zip_name)
 ---> 64                 except LookupError: raise e
 65 
 66         # Load the corpus.

 LookupError: 
 **********************************************************************
 Resource u'corpora/gutenberg' not found.  Please use the NLTK
 Downloader to obtain the resource:  >>> nltk.download()
 Searched in:
- 'C:\\Users\\dell/nltk_data'
- 'C:\\nltk_data'
- 'D:\\nltk_data'
- 'E:\\nltk_data'
- 'C:\\Users\\dell\\Anaconda\\nltk_data'
- 'C:\\Users\\dell\\Anaconda\\lib\\nltk_data'
- 'C:\\Users\\dell\\AppData\\Roaming\\nltk_data'
**********************************************************************

In [4]: 

我能知道为什么会收到这些错误吗?

4 个答案:

答案 0 :(得分:2)

您错过了Gutenberg中的nltk.book语料库,因此错误。 该错误是自我描述性的。

您需要使用nltk.download()下载语料库。 enter image description here

下载语料库后,重新运行命令并检查错误是否再次出现。如果确实如此,那将是另一个语料库。也下载该语料库。

from nltk.book import *不是首选方法,建议仅导入您将在代码中使用的语料库。 您可以改为使用from nltk.corpus import gutenberg

请参阅link

上的参考资料

答案 1 :(得分:2)

正如NLTK书中所说,准备使用本书的方法是打开nltk.download()弹出窗口,转到“收藏夹”选项卡,然后下载“书籍”集。这样做,你可以毫不惊讶地阅读本书的其余部分。

顺便说一句,你可以通过执行nltk.download("book")

从python控制台执行相同操作,而不需要弹出窗口

答案 2 :(得分:0)

似乎它仅在特定位置搜索数据(如错误描述中所述)。 尝试将nltk的内容复制到其中一个目录中(或创建一个目录),例如D:\ nltk_data 这解决了我的问题(因为即使已经下载了Guttenber,因为它没有在那个地方找到它,错误仍将继续显示)

您收到错误的摘录:(这些是您可以选择放置nltk内容的位置以便找到它的目录)

  • 'C:\用户\ DELL / nltk_data'
  • 'C:\ nltk_data'
  • 'd:\ nltk_data'
  • 'E:\ nltk_data'
  • 'C:\用户\ DELL \阿纳康达\ nltk_data'
  • 'C:\用户\ DELL \阿纳康达\ lib中\ nltk_data'
  • 'C:\用户\ DELL \应用程序数据\漫游\ nltk_data'

答案 3 :(得分:-1)

也许您应该在以下目录中下载nltk_data包:

Screenshot 1