3

私は Apache Mahout を試していますが、LDA を使用してトピック モデルを生成する方法については多くの情報がありますが、新しい CVB lda アルゴリズムを使用して同じことを行う方法についてはほとんど情報がありません。私がやりたいのは、元の と同様に、単語からトピックへの確率を生成することですldatopic

これを行う方法に関する情報や例をいただければ幸いです。

ありがとう!

アップデート:

わかりました、私はこれをかなり解決しましたが、まだ不完全なので、どんな助けも素晴らしいでしょう!

4

3 に答える 3

4

わかりましたので、トピックを出力する方法はまだわかりませんが、cvb を取得する方法と、ドキュメント ベクトルであると思われるものを解決しましたが、それらをダンプする運がなかったので、ここで助けてください。感謝されます!

ああ、次の値を設定することを忘れないでください。

export MAHOUT_HOME=/home/sgeadmin/mahout
export HADOOP_HOME=/usr/lib/hadoop
export JAVA_HOME=/usr/lib/jvm/java-6-openjdk
export HADOOP_CONF_DIR=$HADOOP_HOME/conf

そうでなければ、これは機能しません。

したがって、最初に starclusters put を使用してドキュメントをアップロードします (もちろん、starcluster を使用していない場合は、これをスキップしてください :) ):

starcluster put mycluster text_train /home/sgeadmin/
starcluster put mycluster text_test /home/sgeadmin/

次に、それらを hadoop の hbase ファイルシステムに追加する必要があります (-hadoop スタークラスターを忘れないでください)。

dumbo put /home/sgeadmin/text_train /user/sgeadmin/ -hadoop starcluster

次に、Mahoutseqdirectoryを呼び出して、テキストをシーケンス ファイルに変換します。

$MAHOUT_HOME/bin/mahout seqdirectory --input /user/sgeadmin/text_train --output /user/sgeadmin/text_seq -c UTF-8 -ow

次に、Mahoutseq2parseを呼び出してそれらをベクトルに変換します

$MAHOUT_HOME/bin/mahout seq2sparse -i text_seq -o /user/sgeadmin/text_vec -wt tf -a org.apache.lucene.analysis.WhitespaceAnalyzer -ow

最後に を呼び出しますcvb-dtフラグには、推論されたトピックがどこに行くべきかが示されていると思いますが、まだそれらをダンプできていないため、これを確認できません。

$MAHOUT_HOME/bin/mahout cvb -i /user/sgeadmin/text_vec/tf-vectors -o /user/sgeadmin/text_lda -k 100 -nt 29536 -x 20 -dict /user/sgeadmin/text_vec/dictionary.file-0 -dt /user/sgeadmin/text_cvb_document -mt /user/sgeadmin/text_states

-kフラグはトピックの数、フラグは辞書のサイズです。これは、ベクトル内 (この場合は の下)-ntのエントリ数を数えることで計算でき、反復回数です。dictionary.file-0/user/sgeadmin/text_vec-x

ここからドキュメントのトピックの確率を取得する方法を誰かが知っている場合は、助けていただければ幸いです。

于 2012-07-28T22:29:59.457 に答える
2
After completing aboveprocess,you can obtain an output of the computed topics using another Mahout utility called LDAPrintTopics.java by passing following commands

--dict (-d) dict  --------->Dictionary to read in, in the same
                                           format as one created by
                                           org.apache.mahout.utils.vectors.lucen
                                           e.Driver
  --output (-o) output--------->Output directory to write top words
  --words (-w) words--------->Number of words to print
  --input (-i) input--------->Path to an LDA output (a state)
  --dictionaryType (-dt) dictionaryType--------->The dictionary file type
                                           (text|sequencefile)
于 2013-02-01T13:16:43.363 に答える