Ресурс 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 та l-list, але проблема все ще залишається.

Я намагався з усіх сил знайти рішення в Інтернеті, але отримав таке саме рішення, як і раніше, як я вже згадував у своїх кроках вище.


Відповіді:


171

Щоб додати відповідь alvas , ви можете завантажити лише punktкорпус:

nltk.download('punkt')

Завантаження allмені здається надмірним. Хіба що це те, чого ти хочеш.


Дякую за ім'я корпусу nltk.
Остін А

Мені довелося оновити до останньої версії nltk 3.2.5, щоб зробити роботу nltk.download ('punkt').
Чарльз Гомес

Це те, що я отримую після запуску коду вище: [nltk_data] Помилка завантаження punkt: <помилка urlopen [Errno 111] Підключення [nltk_data] відмовлено>
Павло

Що стосується мого попереднього випуску, мені потрібно було лише вимкнути 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"))'

10
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, набравши

$ python

у своєму терміналі. Потім введіть наступні 2 команди у свою оболонку python, щоб встановити відповідні пакети:

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

Це вирішило проблему для мене.


2

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

Тому я просто рекурсивно скопіював все, від місця завантаження, до одного із шляхів, де NLTK шукав, щоб знайти це так:

cp -R /root/nltk_data/ /home/ubuntu/nltk_data

2
  1. Виконайте такий код:

    import nltk
    nltk.download()
  2. Після цього вискакує завантажувач NLTK.

  3. Виберіть Усі пакети.
  4. Завантажте пункт.

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" "папка. Не гарне рішення, але все ж рішення.


1

Після додавання цього рядка коду проблема буде виправлена:

nltk.download('punkt')

0

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


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.