【发布时间】:2017-07-08 01:43:26
【问题描述】:
我正在尝试根据他们的情绪对段落进行分类。我有 60 万个文档的训练数据。当我将它们转换为 Tf-Idf 向量空间时,单词作为分析器,ngram 范围为 1-2,几乎有 600 万个特征。所以我必须做奇异值分解(SVD)来减少特征。
我已经尝试过 gensim 和 sklearn 的 SVD 功能。两者都可以很好地减少功能直到 100,但是一旦我尝试 200 个功能,它们就会抛出内存错误。
我还没有使用整个文档(60 万个)作为训练数据,我只取了 50000 个文档。所以基本上我的训练矩阵是: 50000 * 600 万,想减少到 50000 * (100 到 500)
有没有其他方法可以在 python 中实现它,或者我必须实现 sparks mllib SVD(仅为 java 和 scala 编写)?如果是,会快多少?
系统规格:在 ubuntu 14.04 上具有 4 个核心处理器的 32 Gb RAM
【问题讨论】:
标签: python scikit-learn gensim svd