diff options
Diffstat (limited to 'native/jni/src')
-rw-r--r-- | native/jni/src/suggest/core/dictionary/dictionary.cpp | 4 | ||||
-rw-r--r-- | native/jni/src/suggest/core/dictionary/dictionary.h | 6 | ||||
-rw-r--r-- | native/jni/src/suggest/core/dictionary/word_property.cpp (renamed from native/jni/src/suggest/core/dictionary/unigram_property.cpp) | 6 | ||||
-rw-r--r-- | native/jni/src/suggest/core/dictionary/word_property.h (renamed from native/jni/src/suggest/core/dictionary/unigram_property.h) | 48 | ||||
-rw-r--r-- | native/jni/src/suggest/core/policy/dictionary_structure_with_buffer_policy.h | 4 | ||||
-rw-r--r-- | native/jni/src/suggest/policyimpl/dictionary/structure/v2/patricia_trie_policy.h | 6 | ||||
-rw-r--r-- | native/jni/src/suggest/policyimpl/dictionary/structure/v4/ver4_patricia_trie_policy.cpp | 14 | ||||
-rw-r--r-- | native/jni/src/suggest/policyimpl/dictionary/structure/v4/ver4_patricia_trie_policy.h | 2 |
8 files changed, 38 insertions, 52 deletions
diff --git a/native/jni/src/suggest/core/dictionary/dictionary.cpp b/native/jni/src/suggest/core/dictionary/dictionary.cpp index e68c0a6d8..16b1a56b1 100644 --- a/native/jni/src/suggest/core/dictionary/dictionary.cpp +++ b/native/jni/src/suggest/core/dictionary/dictionary.cpp @@ -143,10 +143,10 @@ void Dictionary::getProperty(const char *const query, const int queryLength, cha maxResultLength); } -const UnigramProperty Dictionary::getUnigramProperty(const int *const codePoints, +const WordProperty Dictionary::getWordProperty(const int *const codePoints, const int codePointCount) { TimeKeeper::setCurrentTime(); - return mDictionaryStructureWithBufferPolicy.get()->getUnigramProperty( + return mDictionaryStructureWithBufferPolicy.get()->getWordProperty( codePoints, codePointCount); } diff --git a/native/jni/src/suggest/core/dictionary/dictionary.h b/native/jni/src/suggest/core/dictionary/dictionary.h index b37b4aa18..4a468f3df 100644 --- a/native/jni/src/suggest/core/dictionary/dictionary.h +++ b/native/jni/src/suggest/core/dictionary/dictionary.h @@ -22,7 +22,7 @@ #include "defines.h" #include "jni.h" #include "suggest/core/dictionary/bigram_dictionary.h" -#include "suggest/core/dictionary/unigram_property.h" +#include "suggest/core/dictionary/word_property.h" #include "suggest/core/policy/dictionary_header_structure_policy.h" #include "suggest/core/policy/dictionary_structure_with_buffer_policy.h" #include "suggest/core/suggest_interface.h" @@ -34,7 +34,7 @@ class DictionaryStructureWithBufferPolicy; class DicTraverseSession; class ProximityInfo; class SuggestOptions; -class UnigramProperty; +class WordProperty; class Dictionary { public: @@ -94,7 +94,7 @@ class Dictionary { void getProperty(const char *const query, const int queryLength, char *const outResult, const int maxResultLength); - const UnigramProperty getUnigramProperty(const int *const codePoints, const int codePointCount); + const WordProperty getWordProperty(const int *const codePoints, const int codePointCount); const DictionaryStructureWithBufferPolicy *getDictionaryStructurePolicy() const { return mDictionaryStructureWithBufferPolicy.get(); diff --git a/native/jni/src/suggest/core/dictionary/unigram_property.cpp b/native/jni/src/suggest/core/dictionary/word_property.cpp index 16bbb69d8..ed32bde8b 100644 --- a/native/jni/src/suggest/core/dictionary/unigram_property.cpp +++ b/native/jni/src/suggest/core/dictionary/word_property.cpp @@ -14,14 +14,14 @@ * limitations under the License. */ -#include "suggest/core/dictionary/unigram_property.h" +#include "suggest/core/dictionary/word_property.h" namespace latinime { -void UnigramProperty::outputProperties(JNIEnv *const env, jintArray outCodePoints, +void WordProperty::outputProperties(JNIEnv *const env, jintArray outCodePoints, jbooleanArray outFlags, jintArray outProbability, jintArray outHistoricalInfo, jobject outShortcutTargets, jobject outShortcutProbabilities) const { - env->SetIntArrayRegion(outCodePoints, 0 /* start */, mCodePointCount, mCodePoints); + env->SetIntArrayRegion(outCodePoints, 0 /* start */, mCodePoints.size(), &mCodePoints[0]); jboolean flags[] = {mIsNotAWord, mIsBlacklisted, mHasBigrams, mHasShortcuts}; env->SetBooleanArrayRegion(outFlags, 0 /* start */, NELEMS(flags), flags); env->SetIntArrayRegion(outProbability, 0 /* start */, 1 /* len */, &mProbability); diff --git a/native/jni/src/suggest/core/dictionary/unigram_property.h b/native/jni/src/suggest/core/dictionary/word_property.h index c4ebb86ab..dcac8536a 100644 --- a/native/jni/src/suggest/core/dictionary/unigram_property.h +++ b/native/jni/src/suggest/core/dictionary/word_property.h @@ -14,8 +14,8 @@ * limitations under the License. */ -#ifndef LATINIME_UNIGRAM_PROPERTY_H -#define LATINIME_UNIGRAM_PROPERTY_H +#ifndef LATINIME_WORD_PROPERTY_H +#define LATINIME_WORD_PROPERTY_H #include <cstring> #include <vector> @@ -25,51 +25,35 @@ namespace latinime { -// This class is used for returning information belonging to a unigram to java side. -class UnigramProperty { +// This class is used for returning information belonging to a word to java side. +class WordProperty { public: - // Invalid unigram. - UnigramProperty() - : mCodePoints(), mCodePointCount(0), mIsNotAWord(false), mIsBlacklisted(false), + // TODO: Add bigram information. + // Invalid word. + WordProperty() + : mCodePoints(), mIsNotAWord(false), mIsBlacklisted(false), mHasBigrams(false), mHasShortcuts(false), mProbability(NOT_A_PROBABILITY), mTimestamp(0), mLevel(0), mCount(0), mShortcutTargets(), mShortcutProbabilities() {} - UnigramProperty(const UnigramProperty &unigramProperty) - : mCodePoints(), mCodePointCount(unigramProperty.mCodePointCount), - mIsNotAWord(unigramProperty.mIsNotAWord), - mIsBlacklisted(unigramProperty.mIsBlacklisted), - mHasBigrams(unigramProperty.mHasBigrams), - mHasShortcuts(unigramProperty.mHasShortcuts), - mProbability(unigramProperty.mProbability), - mTimestamp(unigramProperty.mTimestamp), mLevel(unigramProperty.mLevel), - mCount(unigramProperty.mCount), mShortcutTargets(unigramProperty.mShortcutTargets), - mShortcutProbabilities(unigramProperty.mShortcutProbabilities) { - memcpy(mCodePoints, unigramProperty.mCodePoints, sizeof(mCodePoints)); - } - - UnigramProperty(const int *const codePoints, const int codePointCount, + WordProperty(const std::vector<int> *const codePoints, const bool isNotAWord, const bool isBlacklisted, const bool hasBigrams, const bool hasShortcuts, const int probability, const int timestamp, const int level, const int count, const std::vector<std::vector<int> > *const shortcutTargets, const std::vector<int> *const shortcutProbabilities) - : mCodePoints(), mCodePointCount(codePointCount), - mIsNotAWord(isNotAWord), mIsBlacklisted(isBlacklisted), mHasBigrams(hasBigrams), - mHasShortcuts(hasShortcuts), mProbability(probability), mTimestamp(timestamp), - mLevel(level), mCount(count), mShortcutTargets(*shortcutTargets), - mShortcutProbabilities(*shortcutProbabilities) { - memcpy(mCodePoints, codePoints, sizeof(mCodePoints)); - } + : mCodePoints(*codePoints), mIsNotAWord(isNotAWord), mIsBlacklisted(isBlacklisted), + mHasBigrams(hasBigrams), mHasShortcuts(hasShortcuts), mProbability(probability), + mTimestamp(timestamp), mLevel(level), mCount(count), + mShortcutTargets(*shortcutTargets), mShortcutProbabilities(*shortcutProbabilities) {} void outputProperties(JNIEnv *const env, jintArray outCodePoints, jbooleanArray outFlags, jintArray outProbability, jintArray outHistoricalInfo, jobject outShortcutTargets, jobject outShortcutProbabilities) const; private: - DISALLOW_ASSIGNMENT_OPERATOR(UnigramProperty); + DISALLOW_ASSIGNMENT_OPERATOR(WordProperty); - int mCodePoints[MAX_WORD_LENGTH]; - int mCodePointCount; + std::vector<int> mCodePoints; bool mIsNotAWord; bool mIsBlacklisted; bool mHasBigrams; @@ -84,4 +68,4 @@ class UnigramProperty { std::vector<int> mShortcutProbabilities; }; } // namespace latinime -#endif // LATINIME_UNIGRAM_PROPERTY_H +#endif // LATINIME_WORD_PROPERTY_H diff --git a/native/jni/src/suggest/core/policy/dictionary_structure_with_buffer_policy.h b/native/jni/src/suggest/core/policy/dictionary_structure_with_buffer_policy.h index c74a4ebbe..b878984f1 100644 --- a/native/jni/src/suggest/core/policy/dictionary_structure_with_buffer_policy.h +++ b/native/jni/src/suggest/core/policy/dictionary_structure_with_buffer_policy.h @@ -18,7 +18,7 @@ #define LATINIME_DICTIONARY_STRUCTURE_POLICY_H #include "defines.h" -#include "suggest/core/dictionary/unigram_property.h" +#include "suggest/core/dictionary/word_property.h" #include "utils/exclusive_ownership_pointer.h" namespace latinime { @@ -92,7 +92,7 @@ class DictionaryStructureWithBufferPolicy { const int maxResultLength) = 0; // Used for testing. - virtual const UnigramProperty getUnigramProperty(const int *const codePonts, + virtual const WordProperty getWordProperty(const int *const codePonts, const int codePointCount) const = 0; protected: diff --git a/native/jni/src/suggest/policyimpl/dictionary/structure/v2/patricia_trie_policy.h b/native/jni/src/suggest/policyimpl/dictionary/structure/v2/patricia_trie_policy.h index 2adafd22b..67d615e86 100644 --- a/native/jni/src/suggest/policyimpl/dictionary/structure/v2/patricia_trie_policy.h +++ b/native/jni/src/suggest/policyimpl/dictionary/structure/v2/patricia_trie_policy.h @@ -123,10 +123,10 @@ class PatriciaTriePolicy : public DictionaryStructureWithBufferPolicy { } } - const UnigramProperty getUnigramProperty(const int *const codePoints, + const WordProperty getWordProperty(const int *const codePoints, const int codePointCount) const { - // getUnigramProperty is not supported. - return UnigramProperty(); + // getWordProperty is not supported. + return WordProperty(); } private: 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 b4730fe68..0b067e127 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 @@ -20,7 +20,7 @@ #include "suggest/core/dicnode/dic_node.h" #include "suggest/core/dicnode/dic_node_vector.h" -#include "suggest/core/dictionary/unigram_property.h" +#include "suggest/core/dictionary/word_property.h" #include "suggest/policyimpl/dictionary/structure/pt_common/dynamic_pt_reading_helper.h" #include "suggest/policyimpl/dictionary/structure/v4/ver4_patricia_trie_node_reader.h" #include "suggest/policyimpl/dictionary/utils/forgetting_curve_utils.h" @@ -317,15 +317,17 @@ void Ver4PatriciaTriePolicy::getProperty(const char *const query, const int quer } } -const UnigramProperty Ver4PatriciaTriePolicy::getUnigramProperty(const int *const codePoints, +const WordProperty Ver4PatriciaTriePolicy::getWordProperty(const int *const codePoints, const int codePointCount) const { const int ptNodePos = getTerminalPtNodePositionOfWord(codePoints, codePointCount, false /* forceLowerCaseSearch */); if (ptNodePos == NOT_A_DICT_POS) { - AKLOGE("fetchUnigramProperty is called for invalid word."); - return UnigramProperty(); + AKLOGE("getWordProperty is called for invalid word."); + return WordProperty(); } const PtNodeParams ptNodeParams = mNodeReader.fetchNodeInfoInBufferFromPtNodePos(ptNodePos); + std::vector<int> codePointVector(ptNodeParams.getCodePoints(), + ptNodeParams.getCodePoints() + ptNodeParams.getCodePointCount()); const ProbabilityEntry probabilityEntry = mBuffers.get()->getProbabilityDictContent()->getProbabilityEntry( ptNodeParams.getTerminalId()); @@ -349,8 +351,8 @@ const UnigramProperty Ver4PatriciaTriePolicy::getUnigramProperty(const int *cons shortcutProbabilities.push_back(shortcutProbability); } } - return UnigramProperty(ptNodeParams.getCodePoints(), ptNodeParams.getCodePointCount(), - ptNodeParams.isNotAWord(), ptNodeParams.isBlacklisted(), ptNodeParams.hasBigrams(), + return WordProperty(&codePointVector, ptNodeParams.isNotAWord(), + ptNodeParams.isBlacklisted(), ptNodeParams.hasBigrams(), ptNodeParams.hasShortcutTargets(), ptNodeParams.getProbability(), historicalInfo->getTimeStamp(), historicalInfo->getLevel(), historicalInfo->getCount(), &shortcutTargets, &shortcutProbabilities); diff --git a/native/jni/src/suggest/policyimpl/dictionary/structure/v4/ver4_patricia_trie_policy.h b/native/jni/src/suggest/policyimpl/dictionary/structure/v4/ver4_patricia_trie_policy.h index 81aed20a3..a43bd0eca 100644 --- a/native/jni/src/suggest/policyimpl/dictionary/structure/v4/ver4_patricia_trie_policy.h +++ b/native/jni/src/suggest/policyimpl/dictionary/structure/v4/ver4_patricia_trie_policy.h @@ -106,7 +106,7 @@ class Ver4PatriciaTriePolicy : public DictionaryStructureWithBufferPolicy { void getProperty(const char *const query, const int queryLength, char *const outResult, const int maxResultLength); - const UnigramProperty getUnigramProperty(const int *const codePoints, + const WordProperty getWordProperty(const int *const codePoints, const int codePointCount) const; private: |