2014-10-25 3 views
0

Я пытаюсь сохранить мой обученный классификатор Naive Bayes в python. Я следовал предыдущим, подобные вопросы безрезультатно. Я новичок в Python и не понимаю, что не так, я создал и обучил мой классификатор в соответствии с книгой NLTK. Как я могу сохранить эту модель для работы над ней позже?Невозможно рассолить классификатор Naive Bayes в Python?

Это ошибка, я застрял с:

picklingError: Can't pickle <class 'generator'>: attribute lookup generator on builtin failed 

В настоящее время у меня есть:

classifier = nltk.NaiveBayesClassifier.train(train_set) 
saveClassifier(classifier) 

def saveClassifier(classifier): 
     with open('cp_model.pkl', 'w') as f: 
      dump(classifier, f) 

Любая помощь на всех была бы оценена, я в буквальном смысле пытался это исправить часами.

Спасибо.

ответ

0

EDITED: Я немного поэкспериментировал с этим, и я пришел к выводу, что ваш код отлично работает при попытке использовать последнюю стабильную версию nltk на действительном наборе данных. Поэтому я предлагаю вам либо обновить/переустановить вашу библиотеку, либо проверить, что ваш набор данных является допустимым. Допустимым набором данных должен быть список кортежей (featureset,label).

+0

«Для пика вы также должны написать в виде двоичного файла« wb »- не обязательно: *« По умолчанию формат данных рассола использует печатное представление ASCII. »* – ThiefMaster

+0

Вы правы, это просто предпочтение – Gioelelm

+0

Спасибо для ответа. Я попытался реализовать ваше исправление, но я использовал только классификаторы, поскольку они используются в книге. Как я могу получить probdist ярлыков/функций перед обучением? –

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