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:UsersUsuarioAnacondalibsite-packagesnltkcorpusutil.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:UsersUsuarioAnacondalibsite-packagesnltkcorpusutil.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:UsersMeru/nltk_data'
- 'C:nltk_data'
- 'D:nltk_data'
- 'E:nltk_data'
- 'C:UsersMeruAnacondanltk_data'
- 'C:UsersMeruAnacondalibnltk_data'
- 'C:UsersMeruAppDataRoamingnltk_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 с наборами данных на английском языке

Спасибо за чтение!

Д. П.: Я использую Ananconda

4 ответов


у вас, похоже, нет корпуса стоп-слов на вашем компьютере.

вам нужно запустить загрузчик NLTK и загрузить все необходимые данные.

Откройте консоль Python и выполните следующие действия:

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

В открывшемся окне GUI просто нажмите кнопку "Загрузить", чтобы загрузить все корпорации или перейдите на вкладку "корпорации" и загрузите только те, которые вам нужны/нужны.


я попробовал с терминала ubuntu, и я не знаю, почему GUI не появился в соответствии с ответом tttthomasssss. Поэтому я последовал за комментарием от KLDavenport, и это сработало. Вот резюме:

откройте терминал / командную строку и введите python, затем

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

это сохранит корпус стоп-слов под nltk_data. Для моего случая это было /home/myusername/nltk_data/corpora/stopwords.

Если вам нужен другой корпус, то посетите данные в nltk и найти корпус с их ID. Затем используйте ID для загрузки, как мы делали для стоп-слов.


Если вы хотите вручную установить nltk Corpus.

1) Перейти кhttp://www.nltk.org/nltk_data/ и загрузите желаемый файл nltk Corpus.

2) Теперь в оболочке Python проверьте значение nltk.данные.путь

3) Выберите один из путей, который существует на вашем компьютере, и распакуйте файлы данных в подкаталог corpora внутри.

4) Теперь вы можете импортировать данные в nltk.corpos импорт стоп-слов

ссылка: https://medium.com/@satorulogic/how-to-manually-download-a-nltk-corpus-f01569861da9


import nltk
nltk.download()

нажмите на кнопку загрузки, когда gui предложит. У меня получилось.(nltk.download('stopwords') не работает для меня)