From a4374d2eb70dad908b1d1b8b58f0c9d3d337fef4 Mon Sep 17 00:00:00 2001 From: satok Date: Mon, 18 Apr 2011 11:40:22 +0900 Subject: [PATCH] Promote the correction of words with a missing space character Change-Id: I37ba618b54f7115163a3e9c6c555485e7024dc92 --- native/src/defines.h | 2 +- native/src/unigram_dictionary.cpp | 8 +++++++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/native/src/defines.h b/native/src/defines.h index bdab19ff7..a5ed6827b 100644 --- a/native/src/defines.h +++ b/native/src/defines.h @@ -140,7 +140,7 @@ static void prof_out(void) { // The following "rate"s are used as a multiplier before dividing by 100, so they are in percent. #define WORDS_WITH_MISSING_CHARACTER_DEMOTION_RATE 80 #define WORDS_WITH_MISSING_CHARACTER_DEMOTION_START_POS_10X 12 -#define WORDS_WITH_MISSING_SPACE_CHARACTER_DEMOTION_RATE 80 +#define WORDS_WITH_MISSING_SPACE_CHARACTER_DEMOTION_RATE 75 #define WORDS_WITH_EXCESSIVE_CHARACTER_DEMOTION_RATE 75 #define WORDS_WITH_EXCESSIVE_CHARACTER_OUT_OF_PROXIMITY_DEMOTION_RATE 75 #define WORDS_WITH_TRANSPOSED_CHARACTERS_DEMOTION_RATE 60 diff --git a/native/src/unigram_dictionary.cpp b/native/src/unigram_dictionary.cpp index 89a1c9ea6..8e82f1474 100644 --- a/native/src/unigram_dictionary.cpp +++ b/native/src/unigram_dictionary.cpp @@ -448,8 +448,14 @@ bool UnigramDictionary::getSplitTwoWordsSuggestion(const int inputLength, word[i] = mWord[i - firstWordLength - 1]; } - int pairFreq = ((firstFreq + secondFreq) / 2); + // Promote pairFreq with multiplying by 2, because the word length is the same as the typed + // length. + int pairFreq = firstFreq + secondFreq; for (int i = 0; i < inputLength; ++i) pairFreq *= TYPED_LETTER_MULTIPLIER; + if (DEBUG_DICT) { + LOGI("Missing space: %d, %d, %d, %d, %d", firstFreq, secondFreq, pairFreq, inputLength, + TYPED_LETTER_MULTIPLIER); + } multiplyRate(WORDS_WITH_MISSING_SPACE_CHARACTER_DEMOTION_RATE, &pairFreq); addWord(word, newWordLength, pairFreq); return true;