From 752dcc5311ce8ecb2182de42aa089e14e470b019 Mon Sep 17 00:00:00 2001 From: davidweichiang Date: Fri, 20 May 2016 14:38:16 -0400 Subject: [PATCH] fix bug in Grammar.computePairsOfUnaries that caused some sum-closed unary rules to be added as real unary rules; change Grammar.writeData to write real unary rules instead of max-closed unary rules --- src/edu/berkeley/nlp/PCFGLA/Grammar.java | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/src/edu/berkeley/nlp/PCFGLA/Grammar.java b/src/edu/berkeley/nlp/PCFGLA/Grammar.java index 66c2d15..8f304e6 100644 --- a/src/edu/berkeley/nlp/PCFGLA/Grammar.java +++ b/src/edu/berkeley/nlp/PCFGLA/Grammar.java @@ -226,12 +226,18 @@ public void writeData(Writer w) throws IOException { } } for (int state = 0; state < numStates; state++) { - UnaryRule[] unaries = this - .getClosedViterbiUnaryRulesByParent(state); - for (int r = 0; r < unaries.length; r++) { - UnaryRule ur = unaries[r]; + List unaries = this.getUnaryRulesByParent(state); + for (int r = 0; r < unaries.size(); r++) { + UnaryRule ur = unaries.get(r); out.print(ur.toString()); } + + /*UnaryRule[] unaries = this.getClosedViterbiUnaryRulesByParent(state); + for (int r = 0; r < unaries.length; r++) { + UnaryRule ur = unaries[r]; + out.print(ur.toString()); + }*/ + } out.flush(); } @@ -1639,7 +1645,7 @@ public void computePairsOfUnaries() { } if (maxSumScore > -1) { resultRsum.setScores2(scoresSum); - addUnary(resultRsum); + // addUnary(resultRsum); closedSumRulesWithParent[parentState].add(resultRsum); closedSumRulesWithChild[childState].add(resultRsum); closedSumPaths[parentState][childState] = bestSumIntermed;