1

テスト目的で、疑似分散 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   |

私が間違っていることについてのアイデアはありますか?

4

1 に答える 1

1

mahout ユーザーのメーリング リストでこの質問をしたところ、回答がありました。私と同じことを疑問に思っている人のために、ここでそれを再現します。

Dave Byrne - 「maxDFPercent は、実際には用語を辞書から削除したり、tfidf ベクトルのサイズを縮小したりしません。単純に、その用語のベクトルの値を 0 に設定します。

言い換えれば、辞書のサイズとベクトルの長さは同じままで、ゼロ以外の用語が少なくなります。」

于 2012-09-25T20:02:00.610 に答える