You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@opennlp.apache.org by co...@apache.org on 2011/07/26 15:48:40 UTC

svn commit: r1151095 - /incubator/opennlp/trunk/opennlp-tools/src/main/java/opennlp/tools/util/BeamSearch.java

Author: colen
Date: Tue Jul 26 13:48:39 2011
New Revision: 1151095

URL: http://svn.apache.org/viewvc?rev=1151095&view=rev
Log:
OPENNLP-238 Advance all sequences if couldn't find a valid one.

Modified:
    incubator/opennlp/trunk/opennlp-tools/src/main/java/opennlp/tools/util/BeamSearch.java

Modified: incubator/opennlp/trunk/opennlp-tools/src/main/java/opennlp/tools/util/BeamSearch.java
URL: http://svn.apache.org/viewvc/incubator/opennlp/trunk/opennlp-tools/src/main/java/opennlp/tools/util/BeamSearch.java?rev=1151095&r1=1151094&r2=1151095&view=diff
==============================================================================
--- incubator/opennlp/trunk/opennlp-tools/src/main/java/opennlp/tools/util/BeamSearch.java (original)
+++ incubator/opennlp/trunk/opennlp-tools/src/main/java/opennlp/tools/util/BeamSearch.java Tue Jul 26 13:48:39 2011
@@ -167,6 +167,28 @@ public class BeamSearch<T> {
             }
           }
         }
+        
+        if (next.size() == 0) {// no valid sequences yet, advance all first "size"
+          for (int p = 0; p < scores.length; p++) {
+            if (scores[p] < min)
+              continue; // only advance first "size" outcomes
+            String out = model.getOutcome(p);
+            Sequence ns = new Sequence(top, out, scores[p]);
+            if (ns.getScore() > minSequenceScore) {
+              next.add(ns);
+            }
+          }
+        }
+
+        if (next.size() == 0) {// no valid sequences yet, advance all
+          for (int p = 0; p < scores.length; p++) {
+            String out = model.getOutcome(p);
+            Sequence ns = new Sequence(top, out, scores[p]);
+            if (ns.getScore() > minSequenceScore) {
+              next.add(ns);
+            }
+          }
+        }
       }
 
       //    make prev = next; and re-init next (we reuse existing prev set once we clear it)