我正在使用SciKit學習對大數據集(+ - 34.000文件)執行一些分析。現在我在想。 HashingVectorizer旨在減少內存使用量。是否有可能首先將一堆文件轉換爲HashingVectorizer對象(使用pickle.dump),然後將所有這些文件一起加載並將它們轉換爲TfIdf特性?這些功能可以通過HashingVectorizer進行計算,因爲存儲了計數並且可以推導出文檔的數量。我現在有以下幾點:scikit-learn-Tfidf on HashingVectorizer
for text in texts:
vectorizer = HashingVectorizer(norm=None, non_negative=True)
features = vectorizer.fit_transform([text])
with open(path, 'wb') as handle:
pickle.dump(features, handle)
然後,加載文件很簡單:
data = []
for path in paths:
with open(path, 'rb') as handle:
data.append(pickle.load(handle))
tfidf = TfidfVectorizer()
tfidf.fit_transform(data)
但是,魔術不會發生。我怎樣才能讓魔法發生?
功能散列的想法是您不存儲詞彙表。矢量化器應該是無狀態的。 –