public static EvaluateDiscrete structuredCVal(StructuredCommaClassifier model, Parser parser, boolean useGoldFeatures, boolean testOnTrain) throws Exception { Comma.useGoldFeatures(useGoldFeatures); int k = 5; parser.reset(); FoldParser foldParser = new FoldParser(parser, k, SplitPolicy.sequential, 0, false); EvaluateDiscrete cvalResult = new EvaluateDiscrete(); for (int i = 0; i < k; foldParser.setPivot(++i)) { foldParser.setFromPivot(false); foldParser.reset(); LinkedHashSet<CommaSRLSentence> trainSentences = new LinkedHashSet<>(); for (Object comma = foldParser.next(); comma != null; comma = foldParser.next()) { trainSentences.add(((Comma) comma).getSentence()); } model.train(new ArrayList<>(trainSentences), null); if (!testOnTrain) foldParser.setFromPivot(true); foldParser.reset(); LinkedHashSet<CommaSRLSentence> testSentences = new LinkedHashSet<>(); for (Object comma = foldParser.next(); comma != null; comma = foldParser.next()) { testSentences.add(((Comma) comma).getSentence()); } EvaluateDiscrete evaluator = model.test(new ArrayList<>(testSentences), null); cvalResult.reportAll(evaluator); } cvalResult.printPerformance(System.out); return cvalResult; }
Parser originalParser = foldParser.getParser(); foldParser.setFromPivot(true); foldParser.reset(); foldParser.setFromPivot(false); if (metric instanceof Accuracy) result *= 100; double printResult = Math.round(result * 100000) / 100000.0; System.out.print(" " + learner.name + ": " + messageIndent + "Subset " + foldParser.getPivot() + " " + metric.getName() + ": " + printResult); if (metric instanceof Accuracy) System.out.print("%");
foldParser = new FoldParser(parser, k, splitPolicy, 0, false, examples); else foldParser = new FoldParser(parser, k, splitPolicy, 0, false); parser = foldParser; k = foldParser.getK(); for (int i = 0; i < k; foldParser.setPivot(++i)) { if (statusMessages || progressOutput > 0) System.out.println(" " + learner.name + ": " + messageIndent parser = foldParser.getParser();
/** * Sets the pivot fold, which also causes {@link #parser} to be reset. * * @param p The index of the new pivot fold. **/ public void setPivot(int p) { pivot = p; if (p < K) reset(); }
public static EvaluateDiscrete structuredCVal(StructuredCommaClassifier model, Parser parser, boolean useGoldFeatures, boolean testOnTrain) throws Exception { Comma.useGoldFeatures(useGoldFeatures); int k = 5; parser.reset(); FoldParser foldParser = new FoldParser(parser, k, SplitPolicy.sequential, 0, false); EvaluateDiscrete cvalResult = new EvaluateDiscrete(); for (int i = 0; i < k; foldParser.setPivot(++i)) { foldParser.setFromPivot(false); foldParser.reset(); LinkedHashSet<CommaSRLSentence> trainSentences = new LinkedHashSet<>(); for (Object comma = foldParser.next(); comma != null; comma = foldParser.next()) { trainSentences.add(((Comma) comma).getSentence()); } model.train(new ArrayList<>(trainSentences), null); if (!testOnTrain) foldParser.setFromPivot(true); foldParser.reset(); LinkedHashSet<CommaSRLSentence> testSentences = new LinkedHashSet<>(); for (Object comma = foldParser.next(); comma != null; comma = foldParser.next()) { testSentences.add(((Comma) comma).getSentence()); } EvaluateDiscrete evaluator = model.test(new ArrayList<>(testSentences), null); cvalResult.reportAll(evaluator); } cvalResult.printPerformance(System.out); return cvalResult; }
learner.setLTU(new SparseAveragedPerceptron(learningRate, threshold, thickness)); parser.reset(); final FoldParser foldParser = new FoldParser(parser, k, SplitPolicy.sequential, 0, false); EvaluateDiscrete performanceRecord = new EvaluateDiscrete(); for (int i = 0; i < k; foldParser.setPivot(++i)) { foldParser.setFromPivot(false); foldParser.reset(); learner.forget(); BatchTrainer bt = new BatchTrainer(learner, foldParser); bt.train(learningRounds); if (!testOnTrain) foldParser.setFromPivot(true); foldParser.reset(); Comma.useGoldFeatures(testOnGold); EvaluateDiscrete currentPerformance =
learner.setLTU(new SparseAveragedPerceptron(learningRate, threshold, thickness)); parser.reset(); final FoldParser foldParser = new FoldParser(parser, k, SplitPolicy.sequential, 0, false); EvaluateDiscrete performanceRecord = new EvaluateDiscrete(); for (int i = 0; i < k; foldParser.setPivot(++i)) { foldParser.setFromPivot(false); foldParser.reset(); learner.forget(); BatchTrainer bt = new BatchTrainer(learner, foldParser); bt.train(learningRounds); if (!testOnTrain) foldParser.setFromPivot(true); foldParser.reset(); Comma.useGoldFeatures(testOnGold); EvaluateDiscrete currentPerformance =
FoldParser foldParser = new FoldParser(parser, k, SplitPolicy.sequential, 0, false); for (int i = 0; i < k; foldParser.setPivot(++i)) { foldParser.setFromPivot(false); foldParser.reset(); learner.forget(); BatchTrainer bt = new BatchTrainer(learner, foldParser); bt.train(250); learner.save(); foldParser.setFromPivot(true); foldParser.reset(); unconstrainedPerformance.reportAll(EvaluateDiscrete.evaluateDiscrete(learner, learner.getLabeler(), foldParser)); for (Pair<Classifier, EvaluateDiscrete> pair : classifiers) { foldParser.reset(); pair.getSecond().reportAll( EvaluateDiscrete.evaluateDiscrete(pair.getFirst(), learner.getLabeler(),
FoldParser foldParser = new FoldParser(parser, k, SplitPolicy.sequential, 0, false); for (int i = 0; i < k; foldParser.setPivot(++i)) { foldParser.setFromPivot(false); foldParser.reset(); learner.forget(); BatchTrainer bt = new BatchTrainer(learner, foldParser); bt.train(250); learner.save(); foldParser.setFromPivot(true); foldParser.reset(); unconstrainedPerformance.reportAll(EvaluateDiscrete.evaluateDiscrete(learner, learner.getLabeler(), foldParser)); for (Pair<Classifier, EvaluateDiscrete> pair : classifiers) { foldParser.reset(); pair.getSecond().reportAll( EvaluateDiscrete.evaluateDiscrete(pair.getFirst(), learner.getLabeler(),