package clear.engine; import clear.dep.DepEval; import clear.dep.DepNode; import clear.dep.DepTree; import clear.reader.AbstractReader; import clear.reader.DepReader; import org.kohsuke.args4j.CmdLineException; import org.kohsuke.args4j.CmdLineParser; import org.kohsuke.args4j.Option; public class DepEvaluate { @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; @Option(name = "-b", usage = "1: skip unclassified dependencies (default = 0)", metaVar = "OPTIONAL") private byte b_skip = 0; private DepEval d_eval; public DepEvaluate(String args[]) { CmdLineParser cmd = new CmdLineParser(this); try { cmd.parseArgument(args); AbstractReader<DepNode, DepTree> gReader = new DepReader(s_goldFile, true); AbstractReader<DepNode, DepTree> sReader = new DepReader(s_sysFile, true); DepTree gTree, sTree; d_eval = new DepEval(b_skip); 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.printTotal(); } catch (CmdLineException e) { System.err.println(e.getMessage()); cmd.printUsage(System.err); } } public double getLas() { return d_eval.getLas(); } public double getUas() { return d_eval.getUas(); } public double getLs() { return d_eval.getLs(); } static public void main(String[] args) { DepEvaluate depEvaluate = new DepEvaluate(args); } }