2014-11-01 73 views
35

我試圖啓動一個情感分析項目,我將使用停用詞的方法。我做了一些研究,發現nltk有停用詞,但是當我執行命令時有錯誤。NLTK和停用詞失敗#lookuperror

我要做的是下面的,爲了知道哪些是NLTK使用(就像你可以在這裏找到http://www.nltk.org/book/ch02.html在什麼第4.1節)的話來說:

from nltk.corpus import stopwords 
stopwords.words('english') 

但是,當我按下進入我獲得

--------------------------------------------------------------------------- 
LookupError        Traceback (most recent call last) 
<ipython-input-6-ff9cd17f22b2> in <module>() 
----> 1 stopwords.words('english') 

C:\Users\Usuario\Anaconda\lib\site-packages\nltk\corpus\util.pyc in __getattr__(self, attr) 
66 
67  def __getattr__(self, attr): 
---> 68   self.__load() 
69   # This looks circular, but its not, since __load() changes our 
70   # __class__ to something new: 

C:\Users\Usuario\Anaconda\lib\site-packages\nltk\corpus\util.pyc in __load(self) 
54    except LookupError, e: 
55     try: root = nltk.data.find('corpora/%s' % zip_name) 
---> 56     except LookupError: raise e 
57 
58   # Load the corpus. 

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

而且,因爲這個問題這樣的事情不能正常運行(獲得同樣的錯誤):

>>> from nltk.corpus import stopwords 
>>> stop = stopwords.words('english') 
>>> sentence = "this is a foo bar sentence" 
>>> print [i for i in sentence.split() if i not in stop] 

你知道有什麼問題嗎?我必須用西班牙語的詞語,你推薦另一種方法嗎?我還認爲使用英文數據集Goslate包

感謝您的閱讀!

Pd積:我用Ananconda

回答

94

您似乎沒有在您的計算機上禁用詞語料庫。

您需要啓動NLTK Downloader並下載所需的全部數據。

打開一個Python控制檯並執行以下操作:

>>> import nltk 
>>> nltk.download() 
showing info http://nltk.github.com/nltk_data/ 

在GUI窗口打開只需按下「下載」按鈕,下載全部語料或去「語料庫」選項卡,只下載者你需要/想要。

+49

或者,如果你想避開GUI並知道你想下載什麼:'''nltk.download(「stopwords」)''' – KLDavenport 2016-06-07 04:46:47

-2
import nltk 
nltk.download() 

點擊下載按鈕:

4)現在,你可以導入從nltk.corpos數據導入禁用詞

參考。它爲我工作(nltk.download('stopwords')不適用於我)

3

我試過從ubuntu終端,我不知道爲什麼GUI根據tttthomasssss答案沒有顯示出來。所以我遵循KLDavenport的評論,它的工作。以下是總結:

打開終端/命令行和類型蟒然後

>>> import nltk .>>> nltk.download("stopwords")

這將停止詞語料庫存儲nltk_data下。對於我的情況是/home/myusername/nltk_data/corpora/stopwords

如果你需要另一個語料庫,然後訪問nltk data並找到與他們的ID的語料庫。然後像使用停用詞那樣使用ID進行下載。

+0

這很好用,但我很驚訝,這不是你可以用點子做。相反,您必須編寫腳本才能在每個環境中獲取這些資源。 – timhysniu 2017-12-31 19:17:23