我试图根据他们的情绪对段落进行分类。我有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
答案 0 :(得分:0)
我真的不明白为什么使用spark mllib SVD可以提高性能或避免内存错误。您只需超过RAM的大小。你有一些选择来解决这个问题:
此外,您应该显示您的代码示例,您可能在您的python代码中做错了。