} else if (treeFileName != null) {
AddTreesFromFile(treeFileName, encoding, tb);
} else if (sentFileName != null) {
// Load parser by reflection, so that this class doesn't require parser for runtime use
// LexicalizedParser lp = new LexicalizedParser(parserModel);
ViterbiParserWithOptions lp;
try {
Class<?>[] classes = new Class<?>[]{String.class};
Constructor<?> constr = Class.forName("edu.stanford.nlp.parser.lexparser.LexicalizedParser").getConstructor(classes);
String[] opts = {"-retainTmpSubcategories"};
lp = (ViterbiParserWithOptions) constr.newInstance(parserModel);
lp.setOptionFlags(opts);
} catch (Exception cnfe) {
cnfe.printStackTrace();
return;
}
BufferedReader reader = null;
try {
reader = new BufferedReader(new FileReader(sentFileName));
} catch (FileNotFoundException e) {
System.err.println("Cannot find " + sentFileName);
System.exit(1);
}
try {
System.out.println("Processing sentence file " + sentFileName);
String line;
while ((line = reader.readLine()) != null) {
CHTBTokenizer chtb = new CHTBTokenizer(new StringReader(line));
List words = chtb.tokenize();
lp.parse(words);
Tree tree = lp.getBestParse();
tb.add(tree);
}
reader.close();
} catch (Exception e) {
throw new RuntimeException("Exception reading key file " + sentFileName, e);