Не удалось загрузить english.pickle с помощью nltk.data.load - PullRequest
125 голосов
/ 01 февраля 2011

При попытке загрузить токенизатор punkt ...

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

... a LookupError было поднято:

> LookupError: 
>     *********************************************************************   
> Resource 'tokenizers/punkt/english.pickle' not found.  Please use the NLTK Downloader to obtain the resource: nltk.download().   Searched in:
>         - 'C:\\Users\\Martinos/nltk_data'
>         - 'C:\\nltk_data'
>         - 'D:\\nltk_data'
>         - 'E:\\nltk_data'
>         - 'E:\\Python26\\nltk_data'
>         - 'E:\\Python26\\lib\\nltk_data'
>         - 'C:\\Users\\Martinos\\AppData\\Roaming\\nltk_data'
>     **********************************************************************

Ответы [ 12 ]

241 голосов
/ 01 июня 2012

У меня была такая же проблема. Зайдите в оболочку python и наберите:

>>> import nltk
>>> nltk.download()

Затем появится окно установки. Перейдите на вкладку «Модели» и выберите «пункт» из столбца «Идентификатор». Затем нажмите «Загрузить», и он установит необходимые файлы. Тогда это должно работать!

84 голосов
/ 30 декабря 2014
import nltk
nltk.download('punkt')

from nltk import word_tokenize,sent_tokenize

Используйте токенизаторы:)

25 голосов
/ 17 июля 2015

Вот что у меня сработало только сейчас:

# Do this in a separate python interpreter session, since you only have to do it once
import nltk
nltk.download('punkt')

# Do this in your ipython notebook or analysis script
from nltk.tokenize import word_tokenize

sentences = [
    "Mr. Green killed Colonel Mustard in the study with the candlestick. Mr. Green is not a very nice fellow.",
    "Professor Plum has a green plant in his study.",
    "Miss Scarlett watered Professor Plum's green plant while he was away from his office last week."
]

sentences_tokenized = []
for s in sentences:
    sentences_tokenized.append(word_tokenize(s))

фраз_кокенайзера - это список списка токенов:

[['Mr.', 'Green', 'killed', 'Colonel', 'Mustard', 'in', 'the', 'study', 'with', 'the', 'candlestick', '.', 'Mr.', 'Green', 'is', 'not', 'a', 'very', 'nice', 'fellow', '.'],
['Professor', 'Plum', 'has', 'a', 'green', 'plant', 'in', 'his', 'study', '.'],
['Miss', 'Scarlett', 'watered', 'Professor', 'Plum', "'s", 'green', 'plant', 'while', 'he', 'was', 'away', 'from', 'his', 'office', 'last', 'week', '.']]

Предложения были взяты из примера Записная книжка ipython, сопровождающая книгу "Mining the Social Web, 2nd Edition"

12 голосов
/ 26 мая 2017

Из командной строки bash запустите:

$ python -c "import nltk; nltk.download('punkt')"
8 голосов
/ 16 июня 2018

Это работает для меня:

>>> import nltk
>>> nltk.download()

В окнах вы также получите nltk загрузчик

NLTK Downloader

7 голосов
/ 01 апреля 2015

Простой nltk.download() не решит эту проблему. Я попробовал ниже, и это сработало для меня:

в папке nltk создайте папку tokenizers и скопируйте папку punkt в папку tokenizers.

Это будет работать! структура папок должна быть такой, как показано на рисунке! 1

5 голосов
/ 17 марта 2017

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

например. 1 tokenizer = nltk.data.load ('nltk: токенизаторы / punkt / english.pickle')

например. 2 nltk.download ( 'Punkt')

Если вы вызываете вышеприведенное предложение в своем коде, убедитесь, что у вас есть подключение к Интернету без каких-либо брандмауэров.

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

Пожалуйста, выполните следующие шаги и наслаждайтесь токенизацией английского слова, используя nltk.

Шаг 1. Сначала загрузите модель «english.pickle», следуя веб-пути.

Перейдите по ссылке "http://www.nltk.org/nltk_data/" и нажмите" скачать "в опции" 107. Punkt Tokenizer Models "

Шаг 2. Извлеките загруженный файл «punkt.zip», найдите в нем файл «english.pickle» и поместите его на диск C.

Шаг 3: скопировать вставить следующий код и выполнить.

from nltk.data import load
from nltk.tokenize.treebank import TreebankWordTokenizer

sentences = [
    "Mr. Green killed Colonel Mustard in the study with the candlestick. Mr. Green is not a very nice fellow.",
    "Professor Plum has a green plant in his study.",
    "Miss Scarlett watered Professor Plum's green plant while he was away from his office last week."
]

tokenizer = load('file:C:/english.pickle')
treebank_word_tokenize = TreebankWordTokenizer().tokenize

wordToken = []
for sent in sentences:
    subSentToken = []
    for subSent in tokenizer.tokenize(sent):
        subSentToken.extend([token for token in treebank_word_tokenize(subSent)])

    wordToken.append(subSentToken)

for token in wordToken:
    print token

Дайте мне знать, если у вас возникнут проблемы

4 голосов
/ 29 января 2018

В Jenkins это можно исправить, добавив следующий код в Virtualenv Builder на вкладке Сборка :

python -m nltk.downloader punkt

enter image description here

2 голосов
/ 05 февраля 2013

я сталкивался с этой проблемой, когда пытался сделать pos-тегирование в nltk.способ, которым я получил это правильно, состоит в том, чтобы создать новый каталог вместе с корпоративным каталогом с именем "taggers" и скопировать max_pos_tagger в тегах каталога.
надеюсь, что это работает и для вас.удачи с ним !!!.

0 голосов
/ 29 июня 2019

В Spyder перейдите в свою активную оболочку и загрузите nltk, используя нижеприведенные 2 команды.import nltk nltk.download () Затем вы должны увидеть открытое окно загрузчика NLTK, как показано ниже, перейдите на вкладку «Модели» в этом окне, нажмите «пункт» и загрузите «пункт»

Window

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...