[英]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.