LookupError: from nltk.book import*

LookupError: from nltk.book import*

在 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]: 

我能知道为什么会出现这些错误吗?

您在 nltk.book 中缺少 Gutenberg 语料库,因此出现错误。 该错误是自我描述的。

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

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

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

参见 link

上的参考

正如 NLTK 书中所说,准备使用本书的方法是打开 nltk.download() 弹出窗口,转到选项卡 "Collections",然后下载 "Book" 集合。做到这一点,您就可以毫无意外地阅读本书的其余部分。

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

从 python 控制台执行相同的操作,而不会出现弹出窗口

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

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

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

  • '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'