aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKeisuke Kuroyanagi <ksk@google.com>2014-08-27 10:48:53 +0000
committerAndroid Git Automerger <android-git-automerger@android.com>2014-08-27 10:48:53 +0000
commit76613ac52b471e2d7648863e536b6f0d76e9f61e (patch)
tree110cb35b72a0b51c9932e8ae617f00ef6b29a278
parentc996cd4965424294735fb64eab377c5bf1d49fd8 (diff)
parent7c08ede12b1c19c9695e8864d4c4d1b6dec1ee46 (diff)
downloadlatinime-76613ac52b471e2d7648863e536b6f0d76e9f61e.tar.gz
latinime-76613ac52b471e2d7648863e536b6f0d76e9f61e.tar.xz
latinime-76613ac52b471e2d7648863e536b6f0d76e9f61e.zip
am 7c08ede1: Merge "Use LanguageModelDictContent in iterateNgramEntries()."
* commit '7c08ede12b1c19c9695e8864d4c4d1b6dec1ee46': Use LanguageModelDictContent in iterateNgramEntries().
-rw-r--r--native/jni/src/suggest/policyimpl/dictionary/structure/v4/ver4_patricia_trie_policy.cpp20
1 files changed, 15 insertions, 5 deletions
diff --git a/native/jni/src/suggest/policyimpl/dictionary/structure/v4/ver4_patricia_trie_policy.cpp b/native/jni/src/suggest/policyimpl/dictionary/structure/v4/ver4_patricia_trie_policy.cpp
index 2ea248e86..461397b2c 100644
--- a/native/jni/src/suggest/policyimpl/dictionary/structure/v4/ver4_patricia_trie_policy.cpp
+++ b/native/jni/src/suggest/policyimpl/dictionary/structure/v4/ver4_patricia_trie_policy.cpp
@@ -158,11 +158,21 @@ void Ver4PatriciaTriePolicy::iterateNgramEntries(const int *const prevWordsPtNod
if (!prevWordsPtNodePos) {
return;
}
- const int bigramsPosition = getBigramsPositionOfPtNode(prevWordsPtNodePos[0]);
- BinaryDictionaryBigramsIterator bigramsIt(&mBigramPolicy, bigramsPosition);
- while (bigramsIt.hasNext()) {
- bigramsIt.next();
- listener->onVisitEntry(bigramsIt.getProbability(), bigramsIt.getBigramPos());
+ // TODO: Support n-gram.
+ const PtNodeParams ptNodeParams =
+ mNodeReader.fetchPtNodeParamsInBufferFromPtNodePos(prevWordsPtNodePos[0]);
+ const int prevWordId = ptNodeParams.getTerminalId();
+ const WordIdArrayView prevWordIds = WordIdArrayView::fromObject(&prevWordId);
+ const auto languageModelDictContent = mBuffers->getLanguageModelDictContent();
+ for (const auto entry : languageModelDictContent->getProbabilityEntries(prevWordIds)) {
+ const ProbabilityEntry &probabilityEntry = entry.getProbabilityEntry();
+ const int probability = probabilityEntry.hasHistoricalInfo() ?
+ ForgettingCurveUtils::decodeProbability(
+ probabilityEntry.getHistoricalInfo(), mHeaderPolicy) :
+ probabilityEntry.getProbability();
+ const int ptNodePos = mBuffers->getTerminalPositionLookupTable()->getTerminalPtNodePosition(
+ entry.getWordId());
+ listener->onVisitEntry(probability, ptNodePos);
}
}