好的,所以我仍然不知道如何输出主题,但是我已经弄清楚了如何获取 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
然后调用 Mahout 的seqdirectory 将文本转成序列文件
$MAHOUT_HOME/bin/mahout seqdirectory --input /user/sgeadmin/text_train --output /user/sgeadmin/text_seq -c UTF-8 -ow
然后调用 Mahout 的seq2parse 将它们变成向量
$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 的条目数来计算(在这种情况下,在 @ 987654334@) 和-x 是迭代次数。
如果有人知道如何从这里获取文档主题概率,我们将不胜感激!