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)