[英]text classification with SciKit-learn and a large dataset
首先,我昨天開始使用python。 我正在嘗試使用SciKit和大型數據集(250.000條推文)進行文本分類。 對於算法,每個推文將表示為4000 x 1向量,因此這意味着輸入為250.000行和4000列。 當我嘗試在python中構造它時,我在8500條推文之后耗盡內存(當使用列表並附加它時)當我預先分配內存時我只得到錯誤: MemoryError
(np.zeros(4000,2500000)) 。 SciKit無法使用這些大型數據集嗎? 我做錯了什么(因為這是我第二天用python)? 是否有另一種表示功能的方式,以便它可以適合我的記憶?
編輯 :我想要伯努利NB
edit2 :也許有可能通過在線學習? 閱讀推文,讓模特使用推文,將其從內存中刪除,閱讀另一個,讓模型學習......但我不認為伯努利NB允許在scikit-learn中進行在線學習
如果您使用scikits的矢量化器( CountVectorizer
或TfidfVectorizer
作為第一次嘗試是好的),您將獲得稀疏矩陣表示。 從文檔:
vectorizer = TfidfVectorizer(sublinear_tf=True, max_df=0.5, stop_words='english')
X_train = vectorizer.fit_transform(data_train.data)
#initialize your classifier
clf.fit(X_train, y_train)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.