У меня возникли проблемы с трассировкой векторизатора после того, как я его настроил.как рассортировать индивидуальный векторизатор?
from sklearn.feature_extraction.text import TfidfVectorizer
import pickle
tfidf_vectorizer = TfidfVectorizer(analyzer=str.split)
pickle.dump(tfidf_vectorizer, open('test.pkl', "wb"))
это приводит к «TypeError: не солить method_descriptor объекты»
Однако, если я не настроить анализатор, это соленья хорошо. Любые идеи о том, как я могу обойти эту проблему? Мне нужно сохранить векторизатор, если я собираюсь использовать его более широко.
Кстати, я обнаружил, что использование простой строки для анализатора и предварительной обработки корпуса для удаления нелегированных слов и стоп-слов необходимо для достойной скорости работы. В противном случае большая часть времени выполнения вектора вектора тратится на «text.py:114(_word_ngrams» ». То же самое относится и к HashingVectorizer
это связано с Persisting data in sklearn и http://scikit-learn.org/0.10/tutorial.html#model-persistence (кстати, sklearn.externals.joblib.dump не помогает)
спасибо!
ли это дало мне ошибку: Traceback (самый последний вызов последнего): Файл "", строка 1, в Файл "C: \ python27 \ Lib \ pickle.py", строка 1374, в отвалах Pic kler (файл, протокол) .dump (obj) Файл «C: \ Python27 \ lib \ pickle.py», строка 224, в дампе self.save (obj) Файл «C: \ Python27 \ lib \ pickle. py ", строка 286, в save f (self, obj) # Вызов метода unbound с явным явлением Файл« C: \ Python27 \ lib \ pickle.py », строка 748, в save_global (obj, module, name)) PicklingError: Невозможно рассортировать <функция split на 0x000000000D5C1908>: она не найдена как __main __. Split –
Что это значит? – David
Вы можете установить vectorizer.stop_words_ = Нет, потому что для сериализации требуется много времени, а также не требуется для использования в будущем, поэтому опорожнение его покупает некоторое время. http://scikit-learn.org/stable/modules/generated/sklearn.feature_extraction.text.CountVectorizer.html – Ash