package edu.stanford.nlp.parser.lexparser;
import java.io.IOException;
import edu.stanford.nlp.tagger.maxent.MaxentTagger;
/**
* A simple tool to add a tagger to the parser for reranking purposes.
*
* @author John Bauer
*/
public class AddTaggerToParser {
public static void main(String[] args) throws IOException, ClassNotFoundException {
String taggerFile = null;
String inputFile = null;
String outputFile = null;
double weight = 1.0;
for (int argIndex = 0; argIndex < args.length; ) {
if (args[argIndex].equalsIgnoreCase("-tagger")) {
taggerFile = args[argIndex + 1];
argIndex += 2;
} else if (args[argIndex].equalsIgnoreCase("-input")) {
inputFile = args[argIndex + 1];
argIndex += 2;
} else if (args[argIndex].equalsIgnoreCase("-output")) {
outputFile = args[argIndex + 1];
argIndex += 2;
} else if (args[argIndex].equalsIgnoreCase("-weight")) {
weight = Double.valueOf(args[argIndex + 1]);
argIndex += 2;
} else {
throw new IllegalArgumentException("Unknown argument: " + args[argIndex]);
}
}
LexicalizedParser parser = LexicalizedParser.loadModel(inputFile);
MaxentTagger tagger = new MaxentTagger(taggerFile);
parser.reranker = new TaggerReranker(tagger, parser.getOp());
parser.saveParserToSerialized(outputFile);
}
}