From 4c1bcffebd3a0c23f51d307a081a661f1f3ca4b9 Mon Sep 17 00:00:00 2001 From: Panupong Pasupat Date: Thu, 31 Aug 2017 16:13:34 -0700 Subject: [PATCH] Also log the number of correct and incorrect derivations --- src/edu/stanford/nlp/sempre/Parser.java | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/src/edu/stanford/nlp/sempre/Parser.java b/src/edu/stanford/nlp/sempre/Parser.java index 9afa080..00fa76b 100644 --- a/src/edu/stanford/nlp/sempre/Parser.java +++ b/src/edu/stanford/nlp/sempre/Parser.java @@ -210,6 +210,7 @@ public abstract class Parser { int correctIndexAfterParse = -1; double maxCompatibility = 0.0; double[] compatibilities = null; + int numCorrect = 0, numPartialCorrect = 0, numIncorrect = 0; if (ex.targetValue != null) { compatibilities = new double[numCandidates]; @@ -221,6 +222,14 @@ public abstract class Parser { correctIndex = i; // record maximum compatibility for partial oracle maxCompatibility = Math.max(compatibilities[i], maxCompatibility); + // Count + if (compatibilities[i] == 1) { + numCorrect++; + } else if (compatibilities[i] == 0) { + numIncorrect++; + } else { + numPartialCorrect++; + } } // What if we only had parsed bottom up? for (int i = 0; i < numCandidates; i++) { @@ -334,6 +343,9 @@ public abstract class Parser { evaluation.add("numCandidates", numCandidates); // From this parse if (numCandidates > 0) evaluation.add("parsedNumCandidates", numCandidates); + evaluation.add("numCorrect", numCorrect); + evaluation.add("numPartialCorrect", numPartialCorrect); + evaluation.add("numIncorrect", numIncorrect); // Add parsing stats evaluation.add(state.evaluation);