web-dev-qa-db-ja.com

NLTKとストップワードが失敗する#lookuperror

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

私がやっていることは、nltkが使用する単語を知るためです(ここで見つけることができるもののように http://www.nltk.org/book/ch02.html セクション4。 1):

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パッケージを使用することも考えました

読んでくれてありがとう!

P.D .:私はアナコンダを使用しています

53
Facundo

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

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

Pythonコンソールを開き、次を実行します。

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

表示されるGUIウィンドウで、[ダウンロード]ボタンを押してすべてのコーパスをダウンロードするか、[コーポラ]タブに移動して必要なもののみをダウンロードします。

130
tttthomasssss

私はubuntu端末から試しましたが、tttthomassssssの回答に従ってGUIが表示されなかった理由はわかりません。だから私はKLDavenportからのコメントに従って、それは働いた。概要は次のとおりです。

ターミナル/コマンドラインを開き、pythonと入力してから

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

これにより、ストップワードコーパスがnltk_dataの下に保存されます。私の場合、それは/home/myusername/nltk_data/corpora/stopwordsでした。

別のコーパスが必要な場合は、 nltk data にアクセスして、IDを持つコーパスを見つけます。次に、ストップワードの場合と同様に、IDを使用してダウンロードします。

11
Abu Shoeb

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

1) http://www.nltk.org/nltk_data/ にアクセスして、目的のNLTK Corpusファイルをダウンロードします。

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

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

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

参照: https://medium.com/@satorulogic/how-to-manually-download-a-nltk-corpus-f01569861da9

2
SVK
import nltk
nltk.download()

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

0
Rohit P