diff options
author | 2014-08-27 10:48:53 +0000 | |
---|---|---|
committer | 2014-08-27 10:48:53 +0000 | |
commit | 76613ac52b471e2d7648863e536b6f0d76e9f61e (patch) | |
tree | 110cb35b72a0b51c9932e8ae617f00ef6b29a278 | |
parent | c996cd4965424294735fb64eab377c5bf1d49fd8 (diff) | |
parent | 7c08ede12b1c19c9695e8864d4c4d1b6dec1ee46 (diff) | |
download | latinime-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.cpp | 20 |
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); } } |