Не удалось загрузить 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 ]

0 голосов
/ 16 мая 2019

Данные токенайзеров punkt довольно велики и превышают 35 МБ , это может быть очень важно, если, как и я, вы используете nltk в среде, такой как lambda, с ограниченными ресурсами.

Если вам нужен только один или несколько языковых токенизаторов, вы можете резко уменьшить размер данных, включив только эти языки .pickle файлы.

Если все, что вам нужно только для поддержки английского языка, тогда ваш размер данных nltk может быть уменьшен до 407 КБ (для версии Python 3).

Steps

  1. Загрузить данные nltk punkt: https://raw.githubusercontent.com/nltk/nltk_data/gh-pages/packages/tokenizers/punkt.zip
  2. Где-то в вашей среде создайте папки: nltk_data/tokenizers/punkt, при использовании python 3 добавьте еще одну папку PY3, чтобы ваша новая структура каталогов выглядела как nltk_data/tokenizers/punkt/PY3. В моем случае я создал эти папки в корне моего проекта.
  3. Извлеките zip и переместите файлы .pickle для языков, которые вы хотите поддерживать, в папку punkt, которую вы только что создали. Примечание: пользователи Python 3 должны использовать соленья из папки PY3. После загрузки языковых файлов это должно выглядеть примерно так: example-folder-stucture
  4. Теперь вам просто нужно добавить папку nltk_data в пути поиска, при условии, что ваши данные не находятся в одном из предопределенных путей поиска . Вы можете добавить свои данные, используя любую переменную среды NLTK_DATA='path/to/your/nltk_data'. Вы также можете добавить собственный путь во время выполнения в python, выполнив:
from nltk import data
data.path += ['/path/to/your/nltk_data']

ПРИМЕЧАНИЕ. Если вам не нужно загружать данные во время выполнения или связывать данные с вашим кодом, лучше всего создать папки nltk_data во встроенных местах , которые nltk ищет .

0 голосов
/ 11 сентября 2016

Проверьте, есть ли у вас все библиотеки NLTK.

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