2014-11-01 24 views
35

Bir duygu analizi projesi başlatmaya çalışıyorum ve durma sözcük yöntemini kullanacağım. Biraz araştırma yaptım ve nltk’in stopwords’e sahip olduğunu buldum, ancak komutu çalıştırdığımda bir hata var.NLTK ve Stopwords Fail #lookuperror

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

Ama bastığımda ben elde girin:

Ne yapmam (eğer section4.1 burada http://www.nltk.org/book/ch02.html bulundu neyin benzeri) kullanımını nltk kelimelerdir hangi bilmek için aşağıdakileri olduğunu

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

Ve böyle bu sorunun işler düzgün çalışmaz, çünkü (aynı hatayı elde):

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

Sorunun ne olduğunu biliyor musunuz? İspanyolca kelimeleri kullanmalıyım, başka bir yöntemi tavsiye ediyor musunuz? Ayrıca, bilgi içeren bir paket ile Goslate paketini kullandım.

Okumak için teşekkürler!

P.D .: Ben Bilgisayarınızda engellenecek kelime külliyat var görünmemektedir Ananconda

cevap

94

kullanın.

NLTK Downloader'ı başlatmanız ve ihtiyacınız olan tüm verileri indirmeniz gerekir.

açın bir Python konsolu ve aşağıdakileri yapın: basitçe olanları indirmek yalnızca tüm külliyatınızı indirmek ya da 'Corpora' sekmesine gidin ve 'İndir' butonuna basın açar GUI penceresinde

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

ihtiyacın var. NLTK Corpus'u el ile yüklemek istiyorsanız,

+49

Alternatif olarak, GUI'den kaçınmak ve ne indirmek istediğinizi bilmek istiyorsanız: '' 'nltk.download (" stopwords ")' '' – KLDavenport

-2
import nltk 
nltk.download() 

tıklayın gui istendiğinde. Benim için çalıştı (nltk.download('stopwords') benim için işe yaramıyor)

3

Ubuntu terminalinden denedim ve neden GUI'nin tttthomasssss cevabına göre görünmediğini bilmiyorum. Ben de KLDavenport'un yorumunu takip ettim ve işe yaradı. İşte özetidir:

sizin terminali/komutu satırı ve bu nltk_data altında engellenecek kelime külliyatı saklayacaktır sonra

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

tip piton açın.Benim durumumda için bu /home/myusername/nltk_data/corpora/stopwords oldu. Başka bir külliyat gerekiyorsa

sonra nltk data ziyaret edip onların kimliğine sahip corpus bulabilirsiniz. Sonra engellenecek kelime için yaptığımız gibi indirmek için kimliğini kullanın.

+0

Bu harika çalıştı, ancak bunun bir şey yapamayacağına şaşırdım pip ile yap. Bunun yerine, her ortama bu kaynakları çekmek için komut öyle olmak zorunda. – timhysniu