mahout预处理数据的第一步是将文档转化为可以被hadoop处理的sequencefile,第二步是从sequencefile转化为Vector,称为Vectorizer过程,这里剖析的SparseVectorsFromSequenceFiles是其中一个实现。
SparseVectorsFromSequenceFiles.java位置在mahout-distribution-0.6/core/src/main/java/org/apache/mahout/vectorizer
初始化过程
1、创建builder:
DefaultOptionBuilder
ArgumentBuilder
GroupBuilder
2、创建Option:
inputDirOpt
outputDirOpt
minSupportOpt
analyzerNameOpt
chunkSizeOpt
weightOpt
minDFOpt
maxDFPercentOpt
maxDFSigmaOpt
minLLROpt
numReduceTasksOpt
powerOpt
logNormalizeOpt
maxNGramSizeOpt
sequentialAccessVectorOpt
namedVectorOpt
overwriteOutput
helpOpt
3、创建Group
4、创建parser,参数是group
Parser parser = new Parser();
parser.setGroup(group);
parser.setHelpOption(helpOpt);
5、获得CommandLine
CommandLine cmdLine = parser.parse(args);
6、通过CommandLine获得各参数值,例如:
int minDf = 1;
if (cmdLine.hasOption(minDFOpt)) {
minDf = Integer.parseInt(cmdLine.getValue(minDFOpt).toString());
}