Ресурс 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, но проблема все еще сохраняется.

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


Ответы:


171

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

nltk.download('punkt')

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


Спасибо за название корпуса 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 должен ее загрузить.


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 ) Из него вам нужно все загрузить.

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


Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.