if (complementary){
Preconditions.checkArgument((model.isComplemtary() == complementary),
"Complementary mode in model is different from test mode");
}
AbstractNaiveBayesClassifier classifier;
if (complementary) {
classifier = new ComplementaryNaiveBayesClassifier(model);
} else {
classifier = new StandardNaiveBayesClassifier(model);
}
SequenceFile.Writer writer = SequenceFile.createWriter(fs, getConf(), new Path(getOutputPath(), "part-r-00000"),
Text.class, VectorWritable.class);
try {
SequenceFileDirIterable<Text, VectorWritable> dirIterable =
new SequenceFileDirIterable<Text, VectorWritable>(getInputPath(), PathType.LIST, PathFilters.partFilter(), getConf());
// loop through the part-r-* files in getInputPath() and get classification scores for all entries
for (Pair<Text, VectorWritable> pair : dirIterable) {
writer.append(new Text(SLASH.split(pair.getFirst().toString())[1]),
new VectorWritable(classifier.classifyFull(pair.getSecond().get())));
}
} finally {
Closeables.close(writer, false);
}
}