Подтвердить что ты не робот

NLTK и Stopwords Fail #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.: Я использую Ananconda

4b9b3361

Ответ 1

Кажется, что у вас нет компьютера с секундомерами на вашем компьютере.

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

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

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

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

Ответ 2

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

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

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

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

4) Теперь вы можете импортировать данные из nltk.corpos import stopwords

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

Ответ 3

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

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

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

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

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

Ответ 4

import nltk
nltk.download()

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