/** * 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; }
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; }
foldParser.reset(); foldParser.setFromPivot(false); if (metric instanceof Accuracy)
for (int i = 0; i < k; foldParser.setPivot(++i)) { foldParser.setFromPivot(false); foldParser.reset(); learner.forget(); BatchTrainer bt = new BatchTrainer(learner, foldParser); 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(),
for (int i = 0; i < k; foldParser.setPivot(++i)) { foldParser.setFromPivot(false); foldParser.reset(); learner.forget(); BatchTrainer bt = new BatchTrainer(learner, foldParser); 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(),
for (int i = 0; i < k; foldParser.setPivot(++i)) { foldParser.setFromPivot(false); foldParser.reset(); learner.forget(); BatchTrainer bt = new BatchTrainer(learner, foldParser); if (!testOnTrain) foldParser.setFromPivot(true); foldParser.reset(); Comma.useGoldFeatures(testOnGold); EvaluateDiscrete currentPerformance =
for (int i = 0; i < k; foldParser.setPivot(++i)) { foldParser.setFromPivot(false); foldParser.reset(); learner.forget(); BatchTrainer bt = new BatchTrainer(learner, foldParser); if (!testOnTrain) foldParser.setFromPivot(true); foldParser.reset(); Comma.useGoldFeatures(testOnGold); EvaluateDiscrete currentPerformance =