目前的Mahout 0.8-SNAPSHOT包括用于主题建模的折叠变分贝叶斯(cvb)版本,并删除了潜在Dirichlet分析(lda)方法,因为cvb可以更好地并行化。不幸的是,lda只有关于如何运行示例并生成有意义的输出的文档。
因此,我想:
答案 0 :(得分:12)
所以这是我在Linux shell中调用的后续Mahout命令。 $ MAHOUT_HOME指向我的mahout / bin文件夹。
$MAHOUT_HOME/mahout seqdirectory \
-i path/to/directory/with/texts \
-o out/sequenced
$MAHOUT_HOME/mahout seq2sparse -i out/sequenced \
-o out/sparseVectors \
--namedVector \
-wt tf
$MAHOUT_HOME/mahout rowid \
-i out/sparseVectors/tf-vectors/ \
-o out/matrix
$MAHOUT_HOME/mahout cvb0_local \
-i out/matrix/matrix \
-d out/sparseVectors/dictionary.file-0 \
-a 0.5 \
-top 4 -do out/cvb/do_out \
-to out/cvb/to_out
通过显示每个主题的前10个单词来检查输出:
$MAHOUT_HOME/mahout vectordump \
-i out/cvb/to_out \
--dictionary out/sparseVectors/dictionary.file-0 \
--dictionaryType sequencefile \
--vectorSize 10 \
-sort out/cvb/to_out
答案 1 :(得分:3)
感谢JoKnopp的详细命令。
如果你得到: 线程“main”java.lang.ClassCastException中的异常:java.lang.Integer无法强制转换为java.lang.String
您需要添加命令行选项“maxIterations”: --maxIterations(-m)maxIterations
我使用-m 20并且它可以正常工作