Данные NLTK устарели — Python 3.4

Я пытаюсь установить NLTK для Python 3.4. Фактический модуль NLTK, похоже, установлен нормально. потом я побежал

import nltk

nltk.download()

и решил скачать все. Однако после того, как это было сделано, окно просто говорит «устарело». Я попытался обновить и загрузить, но он остается «устаревшим», как показано здесь: Окно NLTK 1

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

Я также попытался вручную найти недостающие части, которые оказались «Открытым многоязычным Wordnet» и «Wordnet». Вот как я нашел недостающие части: Открыть многоязычный Wordnet.

Что я должен делать? Должен ли я удалить и переустановить NLTK? Я действительно не нашел способа удалить пакеты (кроме удаления вручную).

РЕДАКТИРОВАТЬ: Что касается решения 2 и решения 3: для получения дополнительных разъяснений по проблеме решения 2:

Если что-то успешно скачалось, это вывод:

>>> nltk.download('subjectivity')
[nltk_data] Downloading package subjectivity to
[nltk_data]     C:\Users\Shane\AppData\Roaming\nltk_data...
[nltk_data]   Package subjectivity is already up-to-date!
True

Однако для «wordnet» и «omw» это происходит, когда я повторно загружаю:

>>> nltk.download('omw')
[nltk_data] Downloading package omw to
[nltk_data]     C:\Users\Shane\AppData\Roaming\nltk_data...
[nltk_data]   Unzipping corpora\omw.zip.
True

person pyman    schedule 17.10.2015    source источник
comment
Какую ОС вы используете?   -  person alvas    schedule 17.10.2015


Ответы (2)


Вкратце:

Не используйте графический интерфейс, добавьте все пакеты в интерпретатор Python.

$ python3
>>> import nltk
>>> nltk.download('all')

Коротко:

Это может быть из-за недавнего добавления Open Multilingual WordNet, и что-то не так работает с графическим интерфейсом загрузки NLTK и индексами.

Решение 1.

Просто используйте nltk.download() GUI и загрузите два пакета, не выбирая все. (Может не сработать, но стоит попробовать)

Решение 2.

Установите пакет отдельно через интерпретатор Python:

>>> import nltk
>>> nltk.download('wordnet')
>>> nltk.download('omw') # Open Multilingual WordNet

Решение 3.

Пусть nltk.download('all') проверит все пакеты в своем индексе и загрузит их, если они недоступны.

>>> import nltk
>>> nltk.downlad('all')

Примечание. Если какие-либо файлы были повреждены, возможно, из-за разрыва подключения к Интернету, просто найдите каталог, в котором хранятся данные NLTK, а затем перейдите к решению 3.

Чтобы найти, где хранится nltk_data, nltk.data.path хранит возможные местоположения:

>>> import nltk
>>> nltk.data.path
['/home/alvas/nltk_data', '/usr/share/nltk_data', '/usr/local/share/nltk_data', '/usr/lib/nltk_data', '/usr/local/lib/nltk_data']

Поскольку смысл загрузки данных заключается в их использовании, чтобы знать, что вы не пропускаете нужные вам компоненты, и если это wordnet и omw, вы можете попробовать это:

>>> from nltk.corpus import wordnet as wn
>>> wn.synsets('bank')[0]
Synset('bank.n.01')
>>> wn.synsets('bank')[0].lemma_names('spa')
['margen', 'orilla', 'vera']
>>> wn.synsets('bank')[0].lemma_names('fre')
['rive', 'banque']

Не беспокойтесь так сильно, как о том, что показано в графическом интерфейсе. Как только nltk.download('all') завершится без ошибок, это означает, что у вас есть все корпуса и модели, которые поддерживает NLTK.

Но рекомендуется поднимать проблему в https://github.com/nltk/nltk_data/issues, чтобы разработчики могут проверить, можно ли воспроизвести проблему. Покажи еще принтскрин ошибки. до и после предложенных решений тоже =)

person alvas    schedule 17.10.2015
comment
Спасибо за ответ. Я уже пробовал Решение 1, но оно не решило проблему. Я также попробовал Решение 2, но когда я перешел к графическому интерфейсу, он все равно сказал «устарело». Кроме того, если бы я попытался повторно загрузить «wordnet» и «omw» с помощью этого метода, он бы повторно загрузил их, как будто их раньше не было (в отличие от того, что xyz уже обновлен). Я только что попробовал Решение 3. Как узнать, правильно ли оно работает? Переходя к графическому интерфейсу, он по-прежнему говорит «устаревший» как для «wordnet», так и для «omw». Если я применяю решение 2 после решения 3, оно повторно загружает его, как будто его там и не было. - person pyman; 17.10.2015
comment
Пожалуйста, смотрите выше для решения проблемы 2 (извините, я не могу правильно ввести код здесь) - person pyman; 17.10.2015
comment
Проверки графического интерфейса и командной строки идентичны — когда это происходит, обычно это происходит потому, что внешний пакет изменился с момента индекса nltk (в github.com/nltk/nltk_data/blob/gh-pages/index.xml) был создан последним... таким образом, индекс устарел, что может означать, что вы не актуален, потому что у вас есть старые версии пакетов ИЛИ потому что у вас есть более новые версии. - person MartyMacGyver; 24.11.2016
comment
Совет против использования графического интерфейса заключается в том, что графический интерфейс содержит ошибки. На самом деле, мои пакеты никогда не обновляются в графическом интерфейсе, потому что независимо от того, как я обновлял все пакеты с последним индексом, он продолжает показывать мне их как удаленные пакеты. Таким образом, избегайте графического интерфейса. А также графический интерфейс портится всякий раз, когда ядро ​​​​убивается, tkinter просто висит там. - person alvas; 24.11.2016

Не беспокойтесь об «устаревших» сообщениях, это пустая трата вашего времени. Просто продолжайте и используйте файл nltk.

Ресурсы данных NLTK почти полностью независимы друг от друга. Возможно, у вас никогда не будет причин использовать какой-либо из пакетов, помеченных как «устаревшие», но даже если вы это сделаете, есть вероятность, что они на самом деле полностью установлены и пригодны для использования.

Тем не менее, это случилось и со мной, и вот что я обнаружил: кажется, что загрузчик будет считать ресурс «устаревшим», если он обнаружит в своей папке загрузки файлы, которых нет в манифесте ресурса. Возможно, это иногда вызвано неправильно сконфигурированными ресурсами, но если вы посетили рассматриваемые ресурсы с помощью браузера каталогов, вы могли вызвать несоответствие из-за случайных файлов, оставленных вашим графическим интерфейсом, вашим редактором или кто знает чем. Например, на Mac Finder оставит файл .DS_Store в каталогах, которые он посещает.

Но, как я уже сказал, «проблему» на самом деле не стоит исправлять. Наслаждайтесь НЛТК!

PS. Насколько я знаю, лучший (и единственный) способ обновить каталог nltk_data — удалить его целиком и загрузить заново.

person alexis    schedule 18.10.2015