我在python中使用scikit sklearn。当我使用countvectorizer
或HashingVectorizer
中的所有文字数据时,它会报告内存错误。所以我试图通过在线学习大文本数据来TF-IDF
使用HashingVectorizer
。代码是:
chunk_size = 1000
vectorizer = HashingVectorizer()
transformer = TfidfTransformer()
train_data_text = []
tfidf = None
for i in range(0,df.shape[0]):
file_word = convert_doc_to_wordlist(str(df.iloc[i,1]), cut_all=False)
sentencestr = " ".join(word for word in file_word)
train_data_text.append(sentencestr)
if (i+1)%chunk_size == 0:
Wordfrequency = vectorizer.transform(train_data_text)
tfidfchunk = transformer.fit_transform(Wordfrequency)
if tfidf == None:
tfidf = tfidfchunk
else:
tfidf = np.vstack((tfidf, tfidfchunk))
train_data_text =[]
sys.stdout.flush()
sys.stdout.write("%.3f" %(float(i)/float(df.shape[0])))
sys.stdout.write( ' ')
我看到HashingVectorizer
有方法partial_fit。我还看到the example如何通过HashingVectorizer
从不适合主内存的数据中学习。但我没有看到partial_fit
方法而是某些分类器的partial_fit
方法。
partial_fit
的{{1}}方法或仅使用HashingVectorizer
方法
我的代码使用transform
?TF-IDF
计算HashingVectorizer
,是
与HashingVectorizer
或完成后进行
HashingVectorizer
?TF-IDF
?怎么办?
它?