我正在使用Mahout 0.9(安装在HDP 2.2上)进行主题发现(潜在Drichlet分配算法)。我的文本文件存储在目录中inputraw
并按顺序执行以下命令
命令1:
mahout seqdirectory -i inputraw -o output-directory -c UTF-8
命令2:
mahout seq2sparse -i output-directory -o output-vector-str -wt tf -ng 3 --maxDFPercent 40 -ow -nv
命令3:
mahout rowid -i output-vector-str/tf-vectors/ -o output-vector-int
命令4:
mahout cvb -i output-vector-int/matrix -o output-topics -k 1 -mt output-tmp -x 10 -dict output-vector-str/dictionary.file-0
执行完第二条命令后,按照预期,它会在目录下创建一堆子文件夹和文件。
output-vector-str
(命名为df-count
,dictionary.file-0
,frequency.file-0
,tf-vectors
,tokenized-documents
和wordcount
)。考虑到我的输入文件的大小,这些文件的大小看起来都不错,但是``tf-vectors''下的文件的大小非常小,实际上只有118个字节)。显然作为
`tf-vectors` is the input to the 3rd command, the third command also generates a file of small size. Does anyone know:
`tf-vectors` folder to be that small? There must be something wrong.
最佳答案
您的答案如下:
考虑到您给定的maxdf百分比仅为40%, vector 很小,这意味着仅考虑文档频率(整个文档中出现的术语的百分比频率)小于40%的术语。换句话说,在生成 vector 时,仅考虑出现在40%或更少的文档中的术语。
mahout中有一个称为
mahout seqdumper
的命令,可以将“顺序”格式的文件转储为“人类”可读格式的文件。祝好运!!
关于hadoop - 在Mahout中根据文本创建矢量的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28331161/