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