// Copyright 2015 Thomas Müller
// This file is part of MarMoT, which is licensed under GPLv3.
package experimental.analyzer.cmd;
import java.util.Collection;
import marmot.util.FileUtils;
import experimental.analyzer.Analyzer;
import experimental.analyzer.AnalyzerInstance;
import experimental.analyzer.AnalyzerTrainer;
public class TreebankTrainer {
public static void main(String[] args) {
String model_type = args[0];
String options_string = args[1];
String output_file = args[2];
String train_file = args[3];
Analyzer analyzer = train(model_type, options_string, train_file);
for (int i = 3; i < args.length; i += 2) {
String test_file = args[i];
String pred_file = args[i + 1];
System.err.println("File:" + test_file);
TreebankAnnotator.test(analyzer, test_file);
TreebankAnnotator.annotate(analyzer, test_file, pred_file);
}
FileUtils.saveToFile(analyzer, output_file);
}
public static Analyzer train(String model_type, String options_string,
String train_file) {
AnalyzerTrainer trainer;
try {
Class<?> trainer_class = Class.forName(model_type);
trainer = (AnalyzerTrainer) trainer_class.newInstance();
} catch (Exception e) {
throw new RuntimeException(e);
}
trainer.setOptions(options_string);
Collection<AnalyzerInstance> training_instances = AnalyzerInstance
.getTreebankInstances(train_file);
Analyzer analyzer = trainer.train(training_instances);
return analyzer;
}
}