Loading native/jni/src/suggest/core/dictionary/dictionary.cpp +2 −19 Original line number Diff line number Diff line Loading @@ -88,13 +88,7 @@ void Dictionary::getPredictions(const PrevWordsInfo *const prevWordsInfo, } int Dictionary::getProbability(const int *word, int length) const { TimeKeeper::setCurrentTime(); int pos = getDictionaryStructurePolicy()->getTerminalPtNodePositionOfWord(word, length, false /* forceLowerCaseSearch */); if (NOT_A_DICT_POS == pos) { return NOT_A_PROBABILITY; } return getDictionaryStructurePolicy()->getProbabilityOfPtNode(nullptr /* prevWordsInfo */, pos); return getNgramProbability(nullptr /* prevWordsInfo */, word, length); } int Dictionary::getMaxProbabilityOfExactMatches(const int *word, int length) const { Loading @@ -109,18 +103,7 @@ int Dictionary::getNgramProbability(const PrevWordsInfo *const prevWordsInfo, co int nextWordPos = mDictionaryStructureWithBufferPolicy->getTerminalPtNodePositionOfWord(word, length, false /* forceLowerCaseSearch */); if (NOT_A_DICT_POS == nextWordPos) return NOT_A_PROBABILITY; BinaryDictionaryBigramsIterator bigramsIt = prevWordsInfo->getBigramsIteratorForPrediction( mDictionaryStructureWithBufferPolicy.get()); while (bigramsIt.hasNext()) { bigramsIt.next(); if (bigramsIt.getBigramPos() == nextWordPos && bigramsIt.getProbability() != NOT_A_PROBABILITY) { return mDictionaryStructureWithBufferPolicy->getProbability( mDictionaryStructureWithBufferPolicy->getProbabilityOfPtNode( nullptr /* prevWordsInfo */, nextWordPos), bigramsIt.getProbability()); } } return NOT_A_PROBABILITY; return getDictionaryStructurePolicy()->getProbabilityOfPtNode(prevWordsInfo, nextWordPos); } bool Dictionary::addUnigramEntry(const int *const word, const int length, Loading native/jni/src/suggest/policyimpl/dictionary/structure/backward/v402/ver4_patricia_trie_policy.cpp +12 −0 Original line number Diff line number Diff line Loading @@ -140,6 +140,18 @@ int Ver4PatriciaTriePolicy::getProbabilityOfPtNode(const PrevWordsInfo *const pr if (ptNodeParams.isDeleted() || ptNodeParams.isBlacklisted() || ptNodeParams.isNotAWord()) { return NOT_A_PROBABILITY; } if (prevWordsInfo) { BinaryDictionaryBigramsIterator bigramsIt = prevWordsInfo->getBigramsIteratorForPrediction(this /* dictStructurePolicy */); while (bigramsIt.hasNext()) { bigramsIt.next(); if (bigramsIt.getBigramPos() == ptNodePos && bigramsIt.getProbability() != NOT_A_PROBABILITY) { return getProbability(ptNodeParams.getProbability(), bigramsIt.getProbability()); } } return NOT_A_PROBABILITY; } return getProbability(ptNodeParams.getProbability(), NOT_A_PROBABILITY); } Loading native/jni/src/suggest/policyimpl/dictionary/structure/v2/patricia_trie_policy.cpp +13 −4 Original line number Diff line number Diff line Loading @@ -21,6 +21,7 @@ #include "suggest/core/dicnode/dic_node.h" #include "suggest/core/dicnode/dic_node_vector.h" #include "suggest/core/dictionary/binary_dictionary_bigrams_iterator.h" #include "suggest/core/session/prev_words_info.h" #include "suggest/policyimpl/dictionary/structure/pt_common/dynamic_pt_reading_helper.h" #include "suggest/policyimpl/dictionary/structure/pt_common/patricia_trie_reading_utils.h" #include "suggest/policyimpl/dictionary/utils/probability_utils.h" Loading Loading @@ -284,10 +285,6 @@ int PatriciaTriePolicy::getProbability(const int unigramProbability, int PatriciaTriePolicy::getProbabilityOfPtNode(const PrevWordsInfo *const prevWordsInfo, const int ptNodePos) const { if (prevWordsInfo) { // TODO: Return probability using prevWordsInfo. return NOT_A_PROBABILITY; } if (ptNodePos == NOT_A_DICT_POS) { return NOT_A_PROBABILITY; } Loading @@ -299,6 +296,18 @@ int PatriciaTriePolicy::getProbabilityOfPtNode(const PrevWordsInfo *const prevWo // for shortcuts). return NOT_A_PROBABILITY; } if (prevWordsInfo) { BinaryDictionaryBigramsIterator bigramsIt = prevWordsInfo->getBigramsIteratorForPrediction(this /* dictStructurePolicy */); while (bigramsIt.hasNext()) { bigramsIt.next(); if (bigramsIt.getBigramPos() == ptNodePos && bigramsIt.getProbability() != NOT_A_PROBABILITY) { return getProbability(ptNodeParams.getProbability(), bigramsIt.getProbability()); } } return NOT_A_PROBABILITY; } return getProbability(ptNodeParams.getProbability(), NOT_A_PROBABILITY); } Loading native/jni/src/suggest/policyimpl/dictionary/structure/v4/ver4_patricia_trie_policy.cpp +12 −4 Original line number Diff line number Diff line Loading @@ -123,10 +123,6 @@ int Ver4PatriciaTriePolicy::getProbability(const int unigramProbability, int Ver4PatriciaTriePolicy::getProbabilityOfPtNode(const PrevWordsInfo *const prevWordsInfo, const int ptNodePos) const { if (prevWordsInfo) { // TODO: Return probability using prevWordsInfo. return NOT_A_PROBABILITY; } if (ptNodePos == NOT_A_DICT_POS) { return NOT_A_PROBABILITY; } Loading @@ -134,6 +130,18 @@ int Ver4PatriciaTriePolicy::getProbabilityOfPtNode(const PrevWordsInfo *const pr if (ptNodeParams.isDeleted() || ptNodeParams.isBlacklisted() || ptNodeParams.isNotAWord()) { return NOT_A_PROBABILITY; } if (prevWordsInfo) { BinaryDictionaryBigramsIterator bigramsIt = prevWordsInfo->getBigramsIteratorForPrediction(this /* dictStructurePolicy */); while (bigramsIt.hasNext()) { bigramsIt.next(); if (bigramsIt.getBigramPos() == ptNodePos && bigramsIt.getProbability() != NOT_A_PROBABILITY) { return getProbability(ptNodeParams.getProbability(), bigramsIt.getProbability()); } } return NOT_A_PROBABILITY; } return getProbability(ptNodeParams.getProbability(), NOT_A_PROBABILITY); } Loading Loading
native/jni/src/suggest/core/dictionary/dictionary.cpp +2 −19 Original line number Diff line number Diff line Loading @@ -88,13 +88,7 @@ void Dictionary::getPredictions(const PrevWordsInfo *const prevWordsInfo, } int Dictionary::getProbability(const int *word, int length) const { TimeKeeper::setCurrentTime(); int pos = getDictionaryStructurePolicy()->getTerminalPtNodePositionOfWord(word, length, false /* forceLowerCaseSearch */); if (NOT_A_DICT_POS == pos) { return NOT_A_PROBABILITY; } return getDictionaryStructurePolicy()->getProbabilityOfPtNode(nullptr /* prevWordsInfo */, pos); return getNgramProbability(nullptr /* prevWordsInfo */, word, length); } int Dictionary::getMaxProbabilityOfExactMatches(const int *word, int length) const { Loading @@ -109,18 +103,7 @@ int Dictionary::getNgramProbability(const PrevWordsInfo *const prevWordsInfo, co int nextWordPos = mDictionaryStructureWithBufferPolicy->getTerminalPtNodePositionOfWord(word, length, false /* forceLowerCaseSearch */); if (NOT_A_DICT_POS == nextWordPos) return NOT_A_PROBABILITY; BinaryDictionaryBigramsIterator bigramsIt = prevWordsInfo->getBigramsIteratorForPrediction( mDictionaryStructureWithBufferPolicy.get()); while (bigramsIt.hasNext()) { bigramsIt.next(); if (bigramsIt.getBigramPos() == nextWordPos && bigramsIt.getProbability() != NOT_A_PROBABILITY) { return mDictionaryStructureWithBufferPolicy->getProbability( mDictionaryStructureWithBufferPolicy->getProbabilityOfPtNode( nullptr /* prevWordsInfo */, nextWordPos), bigramsIt.getProbability()); } } return NOT_A_PROBABILITY; return getDictionaryStructurePolicy()->getProbabilityOfPtNode(prevWordsInfo, nextWordPos); } bool Dictionary::addUnigramEntry(const int *const word, const int length, Loading
native/jni/src/suggest/policyimpl/dictionary/structure/backward/v402/ver4_patricia_trie_policy.cpp +12 −0 Original line number Diff line number Diff line Loading @@ -140,6 +140,18 @@ int Ver4PatriciaTriePolicy::getProbabilityOfPtNode(const PrevWordsInfo *const pr if (ptNodeParams.isDeleted() || ptNodeParams.isBlacklisted() || ptNodeParams.isNotAWord()) { return NOT_A_PROBABILITY; } if (prevWordsInfo) { BinaryDictionaryBigramsIterator bigramsIt = prevWordsInfo->getBigramsIteratorForPrediction(this /* dictStructurePolicy */); while (bigramsIt.hasNext()) { bigramsIt.next(); if (bigramsIt.getBigramPos() == ptNodePos && bigramsIt.getProbability() != NOT_A_PROBABILITY) { return getProbability(ptNodeParams.getProbability(), bigramsIt.getProbability()); } } return NOT_A_PROBABILITY; } return getProbability(ptNodeParams.getProbability(), NOT_A_PROBABILITY); } Loading
native/jni/src/suggest/policyimpl/dictionary/structure/v2/patricia_trie_policy.cpp +13 −4 Original line number Diff line number Diff line Loading @@ -21,6 +21,7 @@ #include "suggest/core/dicnode/dic_node.h" #include "suggest/core/dicnode/dic_node_vector.h" #include "suggest/core/dictionary/binary_dictionary_bigrams_iterator.h" #include "suggest/core/session/prev_words_info.h" #include "suggest/policyimpl/dictionary/structure/pt_common/dynamic_pt_reading_helper.h" #include "suggest/policyimpl/dictionary/structure/pt_common/patricia_trie_reading_utils.h" #include "suggest/policyimpl/dictionary/utils/probability_utils.h" Loading Loading @@ -284,10 +285,6 @@ int PatriciaTriePolicy::getProbability(const int unigramProbability, int PatriciaTriePolicy::getProbabilityOfPtNode(const PrevWordsInfo *const prevWordsInfo, const int ptNodePos) const { if (prevWordsInfo) { // TODO: Return probability using prevWordsInfo. return NOT_A_PROBABILITY; } if (ptNodePos == NOT_A_DICT_POS) { return NOT_A_PROBABILITY; } Loading @@ -299,6 +296,18 @@ int PatriciaTriePolicy::getProbabilityOfPtNode(const PrevWordsInfo *const prevWo // for shortcuts). return NOT_A_PROBABILITY; } if (prevWordsInfo) { BinaryDictionaryBigramsIterator bigramsIt = prevWordsInfo->getBigramsIteratorForPrediction(this /* dictStructurePolicy */); while (bigramsIt.hasNext()) { bigramsIt.next(); if (bigramsIt.getBigramPos() == ptNodePos && bigramsIt.getProbability() != NOT_A_PROBABILITY) { return getProbability(ptNodeParams.getProbability(), bigramsIt.getProbability()); } } return NOT_A_PROBABILITY; } return getProbability(ptNodeParams.getProbability(), NOT_A_PROBABILITY); } Loading
native/jni/src/suggest/policyimpl/dictionary/structure/v4/ver4_patricia_trie_policy.cpp +12 −4 Original line number Diff line number Diff line Loading @@ -123,10 +123,6 @@ int Ver4PatriciaTriePolicy::getProbability(const int unigramProbability, int Ver4PatriciaTriePolicy::getProbabilityOfPtNode(const PrevWordsInfo *const prevWordsInfo, const int ptNodePos) const { if (prevWordsInfo) { // TODO: Return probability using prevWordsInfo. return NOT_A_PROBABILITY; } if (ptNodePos == NOT_A_DICT_POS) { return NOT_A_PROBABILITY; } Loading @@ -134,6 +130,18 @@ int Ver4PatriciaTriePolicy::getProbabilityOfPtNode(const PrevWordsInfo *const pr if (ptNodeParams.isDeleted() || ptNodeParams.isBlacklisted() || ptNodeParams.isNotAWord()) { return NOT_A_PROBABILITY; } if (prevWordsInfo) { BinaryDictionaryBigramsIterator bigramsIt = prevWordsInfo->getBigramsIteratorForPrediction(this /* dictStructurePolicy */); while (bigramsIt.hasNext()) { bigramsIt.next(); if (bigramsIt.getBigramPos() == ptNodePos && bigramsIt.getProbability() != NOT_A_PROBABILITY) { return getProbability(ptNodeParams.getProbability(), bigramsIt.getProbability()); } } return NOT_A_PROBABILITY; } return getProbability(ptNodeParams.getProbability(), NOT_A_PROBABILITY); } Loading