D'enregistrer et de réutiliser TfidfVectorizer dans scikit learn

Je suis en utilisant TfidfVectorizer dans scikit apprendre à créer une matrice à partir des données de texte. Maintenant, j'ai besoin d'enregistrer cet objet pour la réutiliser plus tard. J'ai essayé d'utiliser cornichon, mais il a donné l'erreur suivante.

loc=open('vectorizer.obj','w')
pickle.dump(self.vectorizer,loc)
*** TypeError: can't pickle instancemethod objects

J'ai essayé d'utiliser joblib dans sklearn.externals, qui a de nouveau donné une erreur semblable. Est-il possible d'enregistrer cet objet afin que je puisse le réutiliser plus tard?

Voici mon objet:

class changeToMatrix(object):
def __init__(self,ngram_range=(1,1),tokenizer=StemTokenizer()):
    from sklearn.feature_extraction.text import TfidfVectorizer
    self.vectorizer = TfidfVectorizer(ngram_range=ngram_range,analyzer='word',lowercase=True,\
                                          token_pattern='[a-zA-Z0-9]+',strip_accents='unicode',tokenizer=tokenizer)

def load_ref_text(self,text_file):
    textfile = open(text_file,'r')
    lines=textfile.readlines()
    textfile.close()
    lines = ' '.join(lines)
    sent_tokenizer = nltk.data.load('tokenizers/punkt/english.pickle')
    sentences = [ sent_tokenizer.tokenize(lines.strip()) ]
    sentences1 = [item.strip().strip('.') for sublist in sentences for item in sublist]      
    chk2=pd.DataFrame(self.vectorizer.fit_transform(sentences1).toarray()) #vectorizer is transformed in this step 
    return sentences1,[chk2]

def get_processed_data(self,data_loc):
    ref_sentences,ref_dataframes=self.load_ref_text(data_loc)
    loc=open("indexedData/vectorizer.obj","w")
    pickle.dump(self.vectorizer,loc) #getting error here
    loc.close()
    return ref_sentences,ref_dataframes

OriginalL'auteur Joswin K J | 2015-06-15