python:使用sklearn在文档聚类中面临内存问题

Posted

技术标签:

【中文标题】python:使用sklearn在文档聚类中面临内存问题【英文标题】:python : facing memory issue in document clustering using sklearn 【发布时间】:2017-03-16 21:23:45 【问题描述】:

我正在使用 sklearn 的 TfIdfVectorizer 进行文档聚类。我有 2000 万条文本,我想为其计算集群。但是计算 TfIdf 矩阵需要花费太多时间并且系统会卡住。

有什么技术可以解决这个问题吗?在任何 python 模块中是否有任何替代方法?

【问题讨论】:

【参考方案1】:

嗯,2000 万 个文本的语料库非常大,没有细致全面的预处理,也没有一些好的计算实例(即大量的内存和好的 CPU ),TF-IDF 计算可能需要很长时间。

你能做什么

将您的文本语料库限制为数十万个样本(比如说 200.000 个文本)。与小得多(但合理)的数据集相比,文本过多可能不会引入更多差异。

尽量预处理您的文本。一个基本的方法是:标记你的文本,使用停用词,词干,小心使用 n_grams。 完成所有这些步骤后,看看你减少了多少词汇量。它应该比原来的小很多。

如果不是太大(谈论您的数据集),这些步骤可能会帮助您更快地计算 TF-IDF。

【讨论】:

【参考方案2】:

从小处着手

第一个集群只有 100.00 个文档。只有当它起作用(因为它可能不会),然后考虑扩大规模。 如果你没有成功地对子集进行聚类(文本聚类通常很糟糕),那么你在大集合上的表现就不会很好。

【讨论】:

以上是关于python:使用sklearn在文档聚类中面临内存问题的主要内容,如果未能解决你的问题,请参考以下文章

在 python 中使用 kmeans sklearn 对数据点进行聚类

python怎么用sklearn包进行聚类

在 python (sklearn) 中使用 Affinity Propagation 对 word2vec 向量进行聚类

常用聚类(K-means,DBSCAN)以及聚类的度量指标:

python sklearn库实现逻辑回归的实例代码

sklearn聚类算法评估方法 之各种系数