diff options
| author | kr.angelov <kr.angelov@gmail.com> | 2014-03-12 15:36:40 +0000 |
|---|---|---|
| committer | kr.angelov <kr.angelov@gmail.com> | 2014-03-12 15:36:40 +0000 |
| commit | ae1512c926e364f41bae3beaa11a767295caece3 (patch) | |
| tree | ba9f6ded1d044e534495c459421b4b6180448142 /src/ui/android | |
| parent | ca8dd1e8cc7c24abffac758f9eb1601bb3afb65a (diff) | |
compute the right word probability
Diffstat (limited to 'src/ui/android')
| -rw-r--r-- | src/ui/android/src/org/grammaticalframework/ui/android/Translator.java | 30 |
1 files changed, 9 insertions, 21 deletions
diff --git a/src/ui/android/src/org/grammaticalframework/ui/android/Translator.java b/src/ui/android/src/org/grammaticalframework/ui/android/Translator.java index c407718a1..80dce0fe3 100644 --- a/src/ui/android/src/org/grammaticalframework/ui/android/Translator.java +++ b/src/ui/android/src/org/grammaticalframework/ui/android/Translator.java @@ -324,28 +324,16 @@ public class Translator { return getSourceConcr().lookupMorpho(sentence); } - private static class WordProb implements Comparable<WordProb> { - String word; - double prob; - - @Override - public int compareTo(WordProb another) { - return Double.compare(prob, another.prob); - } - } - public CompletionInfo[] lookupWordPrefix(String prefix) { - PriorityQueue<WordProb> queue = new PriorityQueue<WordProb>(); + PriorityQueue<FullFormEntry> queue = + new PriorityQueue<FullFormEntry>(500, new Comparator<FullFormEntry>() { + @Override + public int compare(FullFormEntry lhs, FullFormEntry rhs) { + return Double.compare(lhs.getProb(), rhs.getProb()); + } + }); for (FullFormEntry entry : getSourceConcr().lookupWordPrefix(prefix)) { - WordProb wp = new WordProb(); - wp.word = entry.getForm(); - wp.prob = 0; - - for (MorphoAnalysis an : entry.getAnalyses()) { - wp.prob += an.getProb(); - } - - queue.add(wp); + queue.add(entry); if (queue.size() >= 1000) break; } @@ -353,7 +341,7 @@ public class Translator { CompletionInfo[] completions = new CompletionInfo[Math.min(queue.size(), 5)+1]; completions[0] = new CompletionInfo(0, 0, prefix); for (int i = 1; i < completions.length; i++) { - completions[i] = new CompletionInfo(i,i,queue.poll().word); + completions[i] = new CompletionInfo(i,i,queue.poll().getForm()); } if (completions.length > 1) { |
