Python 在HashingVectorizer上一个结果的末尾追加HashingVectorizer的结果

Python 在HashingVectorizer上一个结果的末尾追加HashingVectorizer的结果,python,machine-learning,scikit-learn,Python,Machine Learning,Scikit Learn,我想做的是在sklearn中使用hashingvectorier和tfidfTransformer增量学习垃圾邮件过滤器。 这是我的密码- for i in range(0,sz-1): messages_bow = HashingVectorizer(analyzer=split_into_lemmas,non_negative=True,n_features=3000).transform(final[i]['message']) if i==0: temp

我想做的是在sklearn中使用hashingvectorier和tfidfTransformer增量学习垃圾邮件过滤器。 这是我的密码-

for i in range(0,sz-1):

    messages_bow = HashingVectorizer(analyzer=split_into_lemmas,non_negative=True,n_features=3000).transform(final[i]['message'])
    if i==0:
        temparr=messages_bow
    else:
        temparr.append(messages_bow)
    tfidf_transformer = TfidfTransformer().fit(temparr)
    messages_tfidf = tfidf_transformer.transform(messages_bow)
    spam_detector=MB.partial_fit(messages_tfidf,final[i]['label'],classes=['ham','spam'])

    messages_bow = HashingVectorizer(analyzer=split_into_lemmas,non_negative=True,n_features=3000).transform(final[i+1]['message'])
    #tfidf_transformer = TfidfTransformer().fit(messages_bow)
    messages_tfidf = tfidf_transformer.transform(messages_bow)
    predictions=spam_detector.predict(messages_tfidf)
    L=list(np.array(predictions))
    perf_measure(list(np.array(final[i+1]['label'])),L)
    val=val+accuracy_score(final[i+1]['label'],predictions)
最终[i]['message']包含100条消息。我想将hashingVectorizer的结果附加到上一个结果,这样我就可以在tfidfTransformer中使用它,因为hashingVectorizer是无状态的,而tfidfTransformer是有状态的。 但我有以下错误-

 temparr.append(messages_bow)
 File "/home/aditya/anaconda2/lib/python2.7/site-packages/scipy/sparse/base.py", line 525, in __getattr__
raise AttributeError(attr + " not found")
AttributeError: append not found

我应该怎么做呢?

既然
scikit learn HashingVectorizer
返回一个scipy稀疏矩阵,您需要使用
scipy.sparse.vstack
,它看起来像:

temparr = vstack(temparr,essages_bow)

你能解释一下你想在这里实现什么吗?在每次迭代中,我想把hashingVectorizer的新结果附加到以前的结果中,这样在每次迭代中,我就有了包含所有以前迭代结果的矩阵。然后,这个矩阵作为tfidfTransformer的输入,它将矩阵转换为标准化的tf idf表示形式。谢谢,它可以工作,但语法上有细微的修改-
temparr=vstack((temparr,messages_bow))