package clear.engine; import clear.dep.DepNode; import clear.dep.DepTree; import clear.dep.srl.SRLEval; import clear.reader.AbstractReader; import clear.reader.SRLReader; import org.kohsuke.args4j.CmdLineException; import org.kohsuke.args4j.CmdLineParser; import org.kohsuke.args4j.Option; public class SRLEvaluate { @Option(name = "-g", usage = "gold-standard file", required = true, metaVar = "REQUIRED") private String s_goldFile; @Option(name = "-s", usage = "system file", required = true, metaVar = "REQUIRED") private String s_sysFile; private SRLEval d_eval; public SRLEvaluate(String args[]) { CmdLineParser cmd = new CmdLineParser(this); try { cmd.parseArgument(args); AbstractReader<DepNode, DepTree> gReader = new SRLReader(s_goldFile, true); AbstractReader<DepNode, DepTree> sReader = new SRLReader(s_sysFile, true); DepTree gTree, sTree; d_eval = new SRLEval(); while ((gTree = gReader.nextTree()) != null) { sTree = sReader.nextTree(); if (sTree == null) { System.err.println("More tree needed in '" + s_sysFile + "'"); System.exit(1); } d_eval.evaluate(gTree, sTree); } d_eval.print(); } catch (CmdLineException e) { System.err.println(e.getMessage()); cmd.printUsage(System.err); } } public double getF1() { return d_eval.getF1(); } static public void main(String[] args) { new SRLEvaluate(args); } }