我在伪分布式hadoop安装上使用mahout 0.7进行测试。
我正在做的很多事情都是由Mahout in Action引导的,我知道处理0.5,但据我所知,seq2sparse没有任何重大变化。
我遇到了seq2sparse生成的tfidf向量问题。无论我将“-x”(最大文档频率百分比)设置为什么,我最终都会在字典中使用相同数量的术语,以及相同大小的矢量。
我找到了一篇关于mahout 0.6的帖子,其中-x被解析为绝对文档数而不是文档的百分比。应该已经修复了0.7,但我也尝试过以这种方式使用它,看它是否会有所帮助。我得到的条款数量没有变化。以下是我尝试过的值,以及我最终使用的术语数量。我的数据集是4850维基百科文章:http://dumps.wikimedia.org/enwiki/20110803/
确切的文件是:pages-articles1.xml.bz2
将xml文件转换为seqfile:
mahout seqwiki -all -i <path to xml file> -o <path to output directory>
我对seq2sparse的调用如下所示:
mahout seq2sparse -i <seq directory> -o <out dir> -ow -wt tfidf -x 4800 -nv
我的结果:
|-x value| #of terms |
|4800 | 256623 |
|4600 | 256623 |
|2500 | 256623 |
|99 | 256623 |
|90 | 256623 |
|25 | 256623 |
|5 | 256623 |
关于我做错的任何想法?
答案 0 :(得分:1)
我最后在mahout用户邮件列表上询问了这个问题并得到了答案。我会在这里为任何想知道我的事情的人重现它:
Dave Byrne - “maxDFPercent实际上不会从字典中删除这些术语,或者减小tfidf向量的大小。它只是将该向量的值设置为0。
换句话说,字典大小和向量长度将保持不变,非零项更少。“