テスト目的で、疑似分散 Hadoop インストールで mahout 0.7 を使用しています。
私がやっていることの多くは、0.5 を扱っていることを知っている Mahout in Action に導かれていますが、私が知る限り、seq2sparse で大きな変更はありません。
seq2sparse によって生成された tfidf ベクトルに問題があります。"-x" (ドキュメント頻度の最大パーセンテージ) を何に設定しても、最終的には辞書内の用語の数と同じサイズのベクトルになります。
mahout 0.6 に関する 1 つの投稿を見つけました。ここで -x は、ドキュメントのパーセンテージではなくドキュメントの絶対数として解析されていました。これは 0.7 で修正されているはずでしたが、役立つかどうかを確認するために、その方法でも使用してみました。取得する用語の数に変更はありません。これが私が試した値と、最終的に得られた用語の数です。私のデータセットは、http: //dumps.wikimedia.org/enwiki/20110803/からの 4850 のウィキペディア記事です。
正確なファイルは次のとおりです: 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 |
私が間違っていることについてのアイデアはありますか?