python - 評判 - NLTKとStopwordsが失敗する#lookuperror




teratail 評判 (3)

NLTKコーパスを手動でインストールする場合。

1) http://www.nltk.org/nltk_data/にアクセスし、必要なNLTKコーパスファイルをダウンロードします。

2)Pythonシェルで、nltk.data.pathの値を確認します。

3)マシン上に存在するパスの1つを選択し、内部のコーパスのサブディレクトリにデータファイルを解凍します。

4)nltk.corposからデータをインポートできるようになりました。

リファレンス: https://medium.com/@satorulogic/how-to-manually-download-a-nltk-corpus-f01569861da9 : https://medium.com/@satorulogic/how-to-manually-download-a-nltk-corpus-f01569861da9

私は感情分析のプロジェクトを開始しようとしています。私はストップワード法を使用します。 私はいくつかの調査を行い、nltkにストップワードがあることがわかりましたが、コマンドを実行するとエラーが発生します。

私がしていることは、nltkが使っている言葉がどれであるかを知るために次のようなことです(セクション4.1のhttp://www.nltk.org/book/ch02.htmlで見つけることができます)。

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

しかし私がenterを押すと、私は

---------------------------------------------------------------------------
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を使用します


あなたのコンピュータにストップワードコーパスがないようです。

NLTK Downloaderを起動し、必要なすべてのデータをダウンロードする必要があります。

Pythonコンソールを開き、次の操作を行います。

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

GUIウィンドウが開くと、ダウンロードボタンを押すだけですべてのコーパスがダウンロードされます。または、「コーパス」タブに移動して、必要なものだけをダウンロードしてください。


import nltk
nltk.download()

guiのプロンプトが表示されたら、ダウンロードボタンをクリックします。 それは私のために働いた( nltk.download('stopwords')は私のために働かない)





stop-words