2015-06-18 51 views
2

在IPython中控制檯我輸入from nltk.book import,我得到了幾個LookupErrors。下面顯示了我得到的代碼。LookupError:從nltk.book進口*

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

我可以知道爲什麼我會得到這些錯誤嗎?

+3

嘗試使用'nltk.dowwnload()'這將打開一個面板。在那裏'Corpora'下載'gutenberrg'書/語料庫並再次嘗試你的命令 – Vaulstein

+0

謝謝!有效!下載的錯誤消息中提到的語料庫。我是否需要其他語料庫,以後再不下載? –

回答

2

你缺少Gutenberg語料庫中nltk.book,因此錯誤。 錯誤是自我描述。

您需要使用nltk.download()下載語料庫。 enter image description here

一旦語料庫被下載,重新運行您的命令並檢查錯誤是否再次出現。如果確實如此,那將是另一個語料庫。也下載該語料庫。

from nltk.book import *不是首選的方法,最好是隻導入你會使用在你的代碼的語料庫。 您可以改用from nltk.corpus import gutenberg

見參考文獻上link

+0

謝謝!我只下載了每次出現錯誤的語料庫。我是否還需要其他語料庫? –

+0

這取決於您的應用程序及其使用情況。當你閱讀nltk書時,你會意識到你不需要大部分的語料庫。一些需要的語料庫是'brown,treebank,wordnet,words,conll2000,conll2002,ieer,gutenberg' – Vaulstein

0

由於NLTK書上說的,順便用書工作準備是開拓nltk.download()彈出,打開標籤「集合」,並下載「書「收集。做到這一點,你可以毫不奇怪地閱讀本書的其餘部分。

順便說一句,你可以做從Python控制檯一樣,沒有彈出窗口,通過執行nltk.download("book")

-1

也許你應該下載nltk_data包在以下目錄:

Screenshot 1

+0

問題已經回答 - 請參閱評論。 – Jan

0

似乎它僅在特定位置搜索數據(如錯誤描述中所述)。 嘗試NLTK的內容複製到這些目錄中的一個(或創建一個),如d:\ nltk_data 這解決了這個問題對我來說(因爲錯誤會繼續顯示了即使Guttenber已經因爲下載它沒有在那個地方找到它)

從你的錯誤的摘錄:(這是其中您可以選擇其中的NLTK內容到位,使其可以找到)

  • 目錄'C:\ Users \ 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'