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) 中使用 Affinity Propagation 对 word2vec 向量进行聚类