2016-03-02 2 views
0

Я использую этот скрипт, чтобы попытаться импортировать twitter_samples из пакета nltk для python. В настоящее время я работаю в python 2.7 в среде Anaconda. Я использую Spyder для запуска кода.Постоянная ошибка импорта для NLTK Corpus Twitter_samples

import nltk 
nltk.download('twitter_samples') 
from nltk.corpus import twitter_samples 
print twitter_samples.fileid() 

И я получаю это как возвращение, когда я запускаю его:

Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
    File "C:\Users\Person\Anaconda3\envs\py27\lib\site-packages\spyderlib\widgets\externalshell\sitecustomize.py", line 685, in runfile 
    execfile(filename, namespace) 
    File "C:\Users\Person\Anaconda3\envs\py27\lib\site-packages\spyderlib\widgets\externalshell\sitecustomize.py", line 71, in execfile 
    exec(compile(scripttext, filename, 'exec'), glob, loc) 
    File "C:/Users/Ben/Anaconda3/attemptNLTK_download.py", line 9, in <module> 
    from nltk.corpus import twitter_samples 
ImportError: cannot import name twitter_samples 

, но когда я импортировать movie_reviews он работает отлично.

from nltk.corpus import movie_reviews 

У меня действительно нет никаких причин, почему это не работает. Я добавил в свою систему переменную окружения для NLTK_DATA как C: \ nltk_data, как это было предложено, но это не исправить. Он живет в местоположении по умолчанию (C: \ nltk_data).

Возможно, есть способ «импортировать» корпус напрямую, не используя импорт ... Данные есть на моем диске C, и я вижу это, я просто не могу получить к нему доступ через функцию импорта.

Я пытаюсь использовать данные для обучения классификатора для положительных/отрицательных утверждений/твитов.

ответ

1

Правило from nltk.corpus import twitter_samples соответствует NNLTK, поэтому наиболее вероятной причиной ошибки импорта является то, что ваша версия nltk устарела.

Плата twitter от nltk довольно новая; он был добавлен в сентябре 2015 года с версией 3.0.5, но с тех пор «улучшен» различными способами. Прямо сейчас nltk находится в версии 3.2, , но текущая дистрибуция Anaconda поставляется с nltk 3.1. Какой у вас есть? Вы можете проверить версию nltk, распечатав nltk.__version__.

Для обновления до последней версии, распространяемой Anaconda, запустите командную строку Анаконды и выполните следующую команду:

% conda update nltk 

Anaconda обновлен до текущей версии NLTK в течение нескольких дней после его выпуска, так что я бы ожидать их продолжать делать это с будущими версиями, если не возникает проблема совместимости.

+0

Я ценю подробный ответ и причины этого. Вы были правы. У меня был 3.0.3. Тем не менее, conda установлен nltk 3.2, это, вероятно, только последнее обновление. Спасибо за правильный диагноз. – bwp8nt

+0

Сразу после того, как я написал этот ответ, я узнал, что NLTK 3.2 был выпущен в тот же день! Хорошо знать, что Anaconda отслеживает текущую версию в течение нескольких дней. – alexis

Смежные вопросы