You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@joshua.apache.org by mj...@apache.org on 2016/09/13 00:25:19 UTC
[2/3] incubator-joshua git commit: removed explicit comparator in
favor of natural ordering
removed explicit comparator in favor of natural ordering
Project: http://git-wip-us.apache.org/repos/asf/incubator-joshua/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-joshua/commit/8193dc81
Tree: http://git-wip-us.apache.org/repos/asf/incubator-joshua/tree/8193dc81
Diff: http://git-wip-us.apache.org/repos/asf/incubator-joshua/diff/8193dc81
Branch: refs/heads/7
Commit: 8193dc810b586b44db85e1ceaa6a195f3e7cf7ee
Parents: d48cd56
Author: Matt Post <po...@cs.jhu.edu>
Authored: Tue Sep 13 02:24:56 2016 +0200
Committer: Matt Post <po...@cs.jhu.edu>
Committed: Tue Sep 13 02:24:56 2016 +0200
----------------------------------------------------------------------
.../joshua/decoder/chart_parser/Cell.java | 3 ++-
.../joshua/decoder/hypergraph/HGNode.java | 27 +++++---------------
.../joshua/decoder/phrase/PhraseNodes.java | 9 ++-----
.../apache/joshua/decoder/phrase/Stacks.java | 4 +--
4 files changed, 12 insertions(+), 31 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-joshua/blob/8193dc81/joshua-core/src/main/java/org/apache/joshua/decoder/chart_parser/Cell.java
----------------------------------------------------------------------
diff --git a/joshua-core/src/main/java/org/apache/joshua/decoder/chart_parser/Cell.java b/joshua-core/src/main/java/org/apache/joshua/decoder/chart_parser/Cell.java
index cfcd06b..a771bec 100644
--- a/joshua-core/src/main/java/org/apache/joshua/decoder/chart_parser/Cell.java
+++ b/joshua-core/src/main/java/org/apache/joshua/decoder/chart_parser/Cell.java
@@ -21,6 +21,7 @@ package org.apache.joshua.decoder.chart_parser;
import static com.google.common.base.Preconditions.checkNotNull;
import java.util.ArrayList;
+import java.util.Collections;
import java.util.HashMap;
import java.util.Iterator;
import java.util.LinkedHashMap;
@@ -268,7 +269,7 @@ class Cell {
}
// sort the node in an decreasing-LogP order
- this.sortedNodes.sort(HGNode.inverseLogPComparator);
+ Collections.sort(this.sortedNodes);
// TODO: we cannot create new SuperItem here because the DotItem link to them.
// Thus, we clear nodes from existing SuperNodes
http://git-wip-us.apache.org/repos/asf/incubator-joshua/blob/8193dc81/joshua-core/src/main/java/org/apache/joshua/decoder/hypergraph/HGNode.java
----------------------------------------------------------------------
diff --git a/joshua-core/src/main/java/org/apache/joshua/decoder/hypergraph/HGNode.java b/joshua-core/src/main/java/org/apache/joshua/decoder/hypergraph/HGNode.java
index c353a36..a7e112e 100644
--- a/joshua-core/src/main/java/org/apache/joshua/decoder/hypergraph/HGNode.java
+++ b/joshua-core/src/main/java/org/apache/joshua/decoder/hypergraph/HGNode.java
@@ -34,7 +34,7 @@ import org.apache.joshua.decoder.ff.state_maintenance.DPState;
// TODO: handle the case that the Hypergraph only maintains the one-best tree
-public class HGNode {
+public class HGNode implements Comparable<HGNode> {
public final int i;
public final int j;
@@ -241,16 +241,13 @@ public class HGNode {
}
}
- /*
- * this will called by the sorting in Cell.ensureSorted()
+ /**
+ * Sorts HGNodes by their score, in descending order.
+ *
+ * @return -1, 0, or 1 if this item is greater than, equal to, or less than the other HGNode
*/
- // sort by estTotalLogP: for pruning purpose
public int compareTo(HGNode anotherItem) {
- throw new RuntimeException("HGNode.compareTo(HGNode) is not implemented");
- /*
- * if (this.estTotalLogP > anotherItem.estTotalLogP) { return -1; } else if (this.estTotalLogP
- * == anotherItem.estTotalLogP) { return 0; } else { return 1; }
- */
+ return Float.compare(anotherItem.getScore(), getScore());
}
/**
@@ -272,18 +269,6 @@ public class HGNode {
}
};
- public static final Comparator<HGNode> inverseLogPComparator = (item1, item2) -> {
- float logp1 = item1.score;
- float logp2 = item2.score;
- if (logp1 > logp2) {
- return -1;
- } else if (logp1 == logp2) {
- return 0;
- } else {
- return 1;
- }
- };
-
public String toString() {
StringBuilder sb = new StringBuilder();
http://git-wip-us.apache.org/repos/asf/incubator-joshua/blob/8193dc81/joshua-core/src/main/java/org/apache/joshua/decoder/phrase/PhraseNodes.java
----------------------------------------------------------------------
diff --git a/joshua-core/src/main/java/org/apache/joshua/decoder/phrase/PhraseNodes.java b/joshua-core/src/main/java/org/apache/joshua/decoder/phrase/PhraseNodes.java
index c690dc3..6ed5534 100644
--- a/joshua-core/src/main/java/org/apache/joshua/decoder/phrase/PhraseNodes.java
+++ b/joshua-core/src/main/java/org/apache/joshua/decoder/phrase/PhraseNodes.java
@@ -45,14 +45,9 @@ public class PhraseNodes extends ArrayList<HGNode> {
}
/**
- * Score the rules and sort them. Scoring is necessary
- * because rules are only scored if they are used, in an
- * effort to make reading in rules more efficient.
- * This is starting to create some trouble and should
- * probably be reworked.
+ * Called after all the nodes have been added via add(). Sorts them using their natural order.
*/
public void finish() {
- Collections.sort(this, HGNode.inverseLogPComparator);
+ Collections.sort(this);
}
-
}
http://git-wip-us.apache.org/repos/asf/incubator-joshua/blob/8193dc81/joshua-core/src/main/java/org/apache/joshua/decoder/phrase/Stacks.java
----------------------------------------------------------------------
diff --git a/joshua-core/src/main/java/org/apache/joshua/decoder/phrase/Stacks.java b/joshua-core/src/main/java/org/apache/joshua/decoder/phrase/Stacks.java
index d02ad1a..230ed09 100644
--- a/joshua-core/src/main/java/org/apache/joshua/decoder/phrase/Stacks.java
+++ b/joshua-core/src/main/java/org/apache/joshua/decoder/phrase/Stacks.java
@@ -216,8 +216,8 @@ public class Stacks {
}
/**
- * Enforces reordering constraints. Our version of Moses' ReorderingConstraint::Check() and
- * SearchCubePruning::CheckDistortion().
+ * Enforces reordering constraints. Our version of Moses' ReorderingConstraint.Check() and
+ * SearchCubePruning.CheckDistortion().
*
* @param coverage
* @param begin