Ресурс u'tokenizers / punkt / english.pickle 'не найден

96

Мой код:

import nltk.data
tokenizer = nltk.data.load('nltk:tokenizers/punkt/english.pickle')

Сообщение об ошибке:

[ec2-user@ip-172-31-31-31 sentiment]$ python mapper_local_v1.0.py
Traceback (most recent call last):
File "mapper_local_v1.0.py", line 16, in <module>

    tokenizer = nltk.data.load('nltk:tokenizers/punkt/english.pickle')

File "/usr/lib/python2.6/site-packages/nltk/data.py", line 774, in load

    opened_resource = _open(resource_url)

File "/usr/lib/python2.6/site-packages/nltk/data.py", line 888, in _open

    return find(path_, path + ['']).open()

File "/usr/lib/python2.6/site-packages/nltk/data.py", line 618, in find

    raise LookupError(resource_not_found)

LookupError:

Resource u'tokenizers/punkt/english.pickle' not found.  Please
use the NLTK Downloader to obtain the resource:

    >>>nltk.download()

Searched in:
- '/home/ec2-user/nltk_data'
- '/usr/share/nltk_data'
- '/usr/local/share/nltk_data'
- '/usr/lib/nltk_data'
- '/usr/local/lib/nltk_data'
- u''

Я пытаюсь запустить эту программу на машине Unix:

В соответствии с сообщением об ошибке я вошел в оболочку python со своей машины unix, затем я использовал следующие команды:

import nltk
nltk.download()

а затем я загрузил все доступные вещи с помощью параметров d-down loader и l-list, но проблема все еще сохраняется.

Я изо всех сил пытался найти решение в Интернете, но у меня было то же решение, что и я, как я уже упоминал в своих предыдущих шагах.

Суприт Мека
источник
1
возможно дубликат Failed загрузки english.pickle с nltk.data.load
Alvas

Ответы:

171

Чтобы добавить к ответу alvas , вы можете скачать только punktкорпус:

nltk.download('punkt')

allДля меня загрузка звучит излишне. Если только вы этого не хотите.

yprez
источник
Спасибо за название корпуса nltk.
Austin A
Мне пришлось обновиться до последней версии nltk 3.2.5, чтобы nltk.download ('punkt') работал.
Карлов Gomes
Вот что я получаю после запуска приведенного выше кода: [nltk_data] Ошибка при загрузке punkt: <urlopen error [Errno 111] Connection [nltk_data] disabled>
Пол
Что касается моей предыдущей проблемы, все, что мне нужно было сделать, это отключить мою VPN.
Пол
59

Если вы хотите скачать только punktмодель:

import nltk
nltk.download('punkt')

Если вы не уверены, какие данные / модель вам нужны, вы можете установить популярные наборы данных, модели и тегеры из NLTK:

import nltk
nltk.download('popular')

С помощью указанной выше команды нет необходимости использовать графический интерфейс для загрузки наборов данных.

альвас
источник
34

У меня есть решение:

import nltk
nltk.download()

после запуска загрузчика NLTK

г) Загрузить l) Список u) Обновить c) Конфигурация h) Справка q) Выйти

Загрузчик> d

Какой пакет загрузить (l = список; x = отменить)? Идентификатор> пункт

Суприт Мека
источник
25

Из оболочки вы можете выполнить:

sudo python -m nltk.downloader punkt 

Если вы хотите установить популярные корпуса / модели NLTK:

sudo python -m nltk.downloader popular

Если вы хотите установить все корпуса / модели NLTK:

sudo python -m nltk.downloader all

Чтобы перечислить загруженные вами ресурсы:

python -c 'import os; import nltk; print os.listdir(nltk.data.find("corpora"))'
python -c 'import os; import nltk; print os.listdir(nltk.data.find("tokenizers"))'
Франк Дернонкур
источник
11
import nltk
nltk.download('punkt')

Откройте командную строку Python и выполните указанные выше операторы.

Функция sent_tokenize использует экземпляр PunktSentenceTokenizer из модуля nltk.tokenize.punkt . Этот экземпляр уже обучен и хорошо работает для многих европейских языков. Таким образом, он знает, какие знаки препинания и символы отмечают конец предложения и начало нового предложения.

Раминени Рави Тежа
источник
9

То же самое случилось со мной недавно, вам просто нужно скачать пакет «punkt», и он должен работать.

Когда вы выполняете «list» (l) после «загрузки всех доступных вещей», все ли помечено как следующая строка ?:

[*] punkt............... Punkt Tokenizer Models

Если вы видите эту строку со звездочкой, это означает, что она у вас есть, и nltk должен ее загрузить.

Eeelnico
источник
1
Привет, @ supreeth-meka, я рад, что ты нашел решение, это то, что я тебе предложил. Вы можете отметить мой ответ как "Принято", пожалуйста?
eeelnico
5

Перейдите в консоль Python, набрав

$ питон

в вашем терминале. Затем введите следующие 2 команды в оболочке python для установки соответствующих пакетов:

>> nltk.download ('punkt') >> nltk.download ('averaged_perceptron_tagger')

Это решило проблему для меня.

Дхарани Манне
источник
2

Моя проблема заключалась в том, что я позвонил nltk.download('all')как пользователь root, но процесс, который в конечном итоге использовал nltk, был другим пользователем, у которого не было доступа к / root / nltk_data, где был загружен контент.

Поэтому я просто рекурсивно скопировал все из места загрузки в один из путей, по которым NLTK искал это, вот так:

cp -R /root/nltk_data/ /home/ubuntu/nltk_data
Радж
источник
2
  1. Выполните следующий код:

    import nltk
    nltk.download()
  2. После этого появится загрузчик NLTK.

  3. Выберите Все пакеты.
  4. Скачать punkt.
Маянк Кумар
источник
2

После добавления этой строки кода проблема будет исправлена:

nltk.download('punkt')
Анкит Рай
источник
2

Я получал сообщение об ошибке, несмотря на импортирование следующего:

import nltk
nltk.download()

но для Google Colab это решило мою проблему.

   !python3 -c "import nltk; nltk.download('all')"
Крипалу Сар
источник
1

Вам необходимо переупорядочить папки. Переместите tokenizersпапку в nltk_dataпапку. Это не работает, если у вас есть nltk_dataпапка, содержащая corporaпапку, содержащую tokenizersпапку

союзник
источник
1

Для меня ничего из вышеперечисленного не сработало, поэтому я просто загрузил все файлы вручную с веб-сайта http://www.nltk.org/nltk_data/ и поместил их также вручную в файл «токенизаторы» внутри «nltk_data». "папка. Не очень хорошее решение, но все же решение.

Камилла
источник
0

Я столкнулся с той же проблемой. После загрузки все еще была ошибка «punkt». Я искал пакет на своей машине с Windows в C: \ Users \ vaibhav \ AppData \ Roaming \ nltk_data \ tokenizers, и я вижу там 'punkt.zip'. Я понял, что почему-то zip не был извлечен в C: \ Users \ vaibhav \ AppData \ Roaming \ nltk_data \ tokenizers \ punk. Как только я извлек молнию, все заработало как музыка.

Вайбхав Сингх
источник
0

Просто убедитесь, что вы используете JupyterБлокнот и в блокноте сделайте следующее:

import nltk

nltk.download()

Затем появится одно всплывающее окно (с информацией https://raw.githubusercontent.com/nltk/nltk_data/gh-pages/index.xml ) Из него вам нужно все загрузить.

Затем перезапустите свой код.

Дивяншу Пархе
источник