Loading native/jni/src/suggest/core/dicnode/dic_node.h +1 −1 Original line number Diff line number Diff line Loading @@ -219,7 +219,7 @@ class DicNode { return (prevWordLen == 1 && currentWordLen == 1); } bool isCapitalized() const { bool isFirstCharUppercase() const { const int c = getOutputWordBuf()[0]; return isAsciiUpper(c); } Loading native/jni/src/suggest/policyimpl/typing/scoring_params.cpp +1 −1 Original line number Diff line number Diff line Loading @@ -39,7 +39,7 @@ const float ScoringParams::SPACE_SUBSTITUTION_COST = 0.319f; const float ScoringParams::ADDITIONAL_PROXIMITY_COST = 0.380f; const float ScoringParams::SUBSTITUTION_COST = 0.403f; const float ScoringParams::COST_NEW_WORD = 0.042f; const float ScoringParams::COST_NEW_WORD_CAPITALIZED = 0.174f; const float ScoringParams::COST_SECOND_OR_LATER_WORD_FIRST_CHAR_UPPERCASE = 0.25f; const float ScoringParams::DISTANCE_WEIGHT_LANGUAGE = 1.123f; const float ScoringParams::COST_FIRST_LOOKAHEAD = 0.545f; const float ScoringParams::COST_LOOKAHEAD = 0.073f; Loading native/jni/src/suggest/policyimpl/typing/scoring_params.h +1 −1 Original line number Diff line number Diff line Loading @@ -48,7 +48,7 @@ class ScoringParams { static const float ADDITIONAL_PROXIMITY_COST; static const float SUBSTITUTION_COST; static const float COST_NEW_WORD; static const float COST_NEW_WORD_CAPITALIZED; static const float COST_SECOND_OR_LATER_WORD_FIRST_CHAR_UPPERCASE; static const float DISTANCE_WEIGHT_LANGUAGE; static const float COST_FIRST_LOOKAHEAD; static const float COST_LOOKAHEAD; Loading native/jni/src/suggest/policyimpl/typing/typing_weighting.h +13 −8 Original line number Diff line number Diff line Loading @@ -80,8 +80,18 @@ class TypingWeighting : public Weighting { const bool isFirstChar = pointIndex == 0; const bool isProximity = isProximityDicNode(traverseSession, dicNode); const float cost = isProximity ? (isFirstChar ? ScoringParams::FIRST_PROXIMITY_COST float cost = isProximity ? (isFirstChar ? ScoringParams::FIRST_PROXIMITY_COST : ScoringParams::PROXIMITY_COST) : 0.0f; if (dicNode->getDepth() == 2) { // At the second character of the current word, we check if the first char is uppercase // and the word is a second or later word of a multiple word suggestion. We demote it // if so. const bool isSecondOrLaterWordFirstCharUppercase = dicNode->hasMultipleWords() && dicNode->isFirstCharUppercase(); if (isSecondOrLaterWordFirstCharUppercase) { cost += ScoringParams::COST_SECOND_OR_LATER_WORD_FIRST_CHAR_UPPERCASE; } } return weightedDistance + cost; } Loading Loading @@ -129,10 +139,7 @@ class TypingWeighting : public Weighting { float getNewWordCost(const DicTraverseSession *const traverseSession, const DicNode *const dicNode) const { const bool isCapitalized = dicNode->isCapitalized(); const float cost = isCapitalized ? ScoringParams::COST_NEW_WORD_CAPITALIZED : ScoringParams::COST_NEW_WORD; return cost * traverseSession->getMultiWordCostMultiplier(); return ScoringParams::COST_NEW_WORD * traverseSession->getMultiWordCostMultiplier(); } float getNewWordBigramCost(const DicTraverseSession *const traverseSession, Loading Loading @@ -174,9 +181,7 @@ class TypingWeighting : public Weighting { AK_FORCE_INLINE float getSpaceSubstitutionCost(const DicTraverseSession *const traverseSession, const DicNode *const dicNode) const { const bool isCapitalized = dicNode->isCapitalized(); const float cost = ScoringParams::SPACE_SUBSTITUTION_COST + (isCapitalized ? ScoringParams::COST_NEW_WORD_CAPITALIZED : ScoringParams::COST_NEW_WORD); const float cost = ScoringParams::SPACE_SUBSTITUTION_COST + ScoringParams::COST_NEW_WORD; return cost * traverseSession->getMultiWordCostMultiplier(); } Loading Loading
native/jni/src/suggest/core/dicnode/dic_node.h +1 −1 Original line number Diff line number Diff line Loading @@ -219,7 +219,7 @@ class DicNode { return (prevWordLen == 1 && currentWordLen == 1); } bool isCapitalized() const { bool isFirstCharUppercase() const { const int c = getOutputWordBuf()[0]; return isAsciiUpper(c); } Loading
native/jni/src/suggest/policyimpl/typing/scoring_params.cpp +1 −1 Original line number Diff line number Diff line Loading @@ -39,7 +39,7 @@ const float ScoringParams::SPACE_SUBSTITUTION_COST = 0.319f; const float ScoringParams::ADDITIONAL_PROXIMITY_COST = 0.380f; const float ScoringParams::SUBSTITUTION_COST = 0.403f; const float ScoringParams::COST_NEW_WORD = 0.042f; const float ScoringParams::COST_NEW_WORD_CAPITALIZED = 0.174f; const float ScoringParams::COST_SECOND_OR_LATER_WORD_FIRST_CHAR_UPPERCASE = 0.25f; const float ScoringParams::DISTANCE_WEIGHT_LANGUAGE = 1.123f; const float ScoringParams::COST_FIRST_LOOKAHEAD = 0.545f; const float ScoringParams::COST_LOOKAHEAD = 0.073f; Loading
native/jni/src/suggest/policyimpl/typing/scoring_params.h +1 −1 Original line number Diff line number Diff line Loading @@ -48,7 +48,7 @@ class ScoringParams { static const float ADDITIONAL_PROXIMITY_COST; static const float SUBSTITUTION_COST; static const float COST_NEW_WORD; static const float COST_NEW_WORD_CAPITALIZED; static const float COST_SECOND_OR_LATER_WORD_FIRST_CHAR_UPPERCASE; static const float DISTANCE_WEIGHT_LANGUAGE; static const float COST_FIRST_LOOKAHEAD; static const float COST_LOOKAHEAD; Loading
native/jni/src/suggest/policyimpl/typing/typing_weighting.h +13 −8 Original line number Diff line number Diff line Loading @@ -80,8 +80,18 @@ class TypingWeighting : public Weighting { const bool isFirstChar = pointIndex == 0; const bool isProximity = isProximityDicNode(traverseSession, dicNode); const float cost = isProximity ? (isFirstChar ? ScoringParams::FIRST_PROXIMITY_COST float cost = isProximity ? (isFirstChar ? ScoringParams::FIRST_PROXIMITY_COST : ScoringParams::PROXIMITY_COST) : 0.0f; if (dicNode->getDepth() == 2) { // At the second character of the current word, we check if the first char is uppercase // and the word is a second or later word of a multiple word suggestion. We demote it // if so. const bool isSecondOrLaterWordFirstCharUppercase = dicNode->hasMultipleWords() && dicNode->isFirstCharUppercase(); if (isSecondOrLaterWordFirstCharUppercase) { cost += ScoringParams::COST_SECOND_OR_LATER_WORD_FIRST_CHAR_UPPERCASE; } } return weightedDistance + cost; } Loading Loading @@ -129,10 +139,7 @@ class TypingWeighting : public Weighting { float getNewWordCost(const DicTraverseSession *const traverseSession, const DicNode *const dicNode) const { const bool isCapitalized = dicNode->isCapitalized(); const float cost = isCapitalized ? ScoringParams::COST_NEW_WORD_CAPITALIZED : ScoringParams::COST_NEW_WORD; return cost * traverseSession->getMultiWordCostMultiplier(); return ScoringParams::COST_NEW_WORD * traverseSession->getMultiWordCostMultiplier(); } float getNewWordBigramCost(const DicTraverseSession *const traverseSession, Loading Loading @@ -174,9 +181,7 @@ class TypingWeighting : public Weighting { AK_FORCE_INLINE float getSpaceSubstitutionCost(const DicTraverseSession *const traverseSession, const DicNode *const dicNode) const { const bool isCapitalized = dicNode->isCapitalized(); const float cost = ScoringParams::SPACE_SUBSTITUTION_COST + (isCapitalized ? ScoringParams::COST_NEW_WORD_CAPITALIZED : ScoringParams::COST_NEW_WORD); const float cost = ScoringParams::SPACE_SUBSTITUTION_COST + ScoringParams::COST_NEW_WORD; return cost * traverseSession->getMultiWordCostMultiplier(); } Loading