2011-03-29 73 views
1

我计算TFIdf(术语频率,逆文档频率),我已经看到在这一步之后,有必要使用像LSI,chi-square检验等方法来减少My Matrix的维数。矩阵的维数减少TFIDF

我还没有任何想法如何我可以在java中实现卡方检验矩阵TFIDF的维度减少,如果有一些库来做到这一点或教程,他们解释了我可以做到这一点,告诉我请

+0

您是否正在使用稀疏矩阵表示? – 2011-03-29 22:55:20

+0

hi, 是larsmans,我计算了文档中每个项的权重,为了简化,我使用了文档频率的方法,并删除了所有项:如果文档频率<阈值但此方法不效率,现在我有一个稀疏矩阵。 请问我该如何在java中实现卡方检验和潜在语义索引。 谢谢 – WOW 2011-03-31 16:55:32

回答

0

我不认为你想做卡方;这不是降维的技术。

你想要做的是SVD或奇异值分解。这是LSI/LSA用于降维的技术。

维基百科建议在Java中使用名为'S-Space Pacakage'的LSA库。我自己并没有使用过它,但你可能想看看它。

http://code.google.com/p/airhead-research/

3

使用LSA,LDA的gensims库。 它实际上可以为任何大型数据集执行LSA。它不会一次将整个语料库加载到内存中,而是进行懒读。

+0

Gensim非常棒,但我相信OP正在寻找一个Java解决方案。 Gensim适用于Python。 – Jeff 2011-05-29 05:35:35