Tweak the normalized score for the words with spaces

Change-Id: Icc0c4fd0474ed5094fb274a6ea745ca583ba524d
This commit is contained in:
satok 2011-04-20 17:33:47 +09:00
parent 0aae85fb67
commit 22104663fc

View file

@ -19,6 +19,7 @@ package com.android.inputmethod.latin;
import com.android.inputmethod.compat.InputMethodInfoCompatWrapper; import com.android.inputmethod.compat.InputMethodInfoCompatWrapper;
import com.android.inputmethod.compat.InputMethodManagerCompatWrapper; import com.android.inputmethod.compat.InputMethodManagerCompatWrapper;
import com.android.inputmethod.compat.InputTypeCompatUtils; import com.android.inputmethod.compat.InputTypeCompatUtils;
import com.android.inputmethod.keyboard.Keyboard;
import com.android.inputmethod.keyboard.KeyboardId; import com.android.inputmethod.keyboard.KeyboardId;
import android.content.Context; import android.content.Context;
@ -344,8 +345,16 @@ public class Utils {
final int distance = editDistance(before, after); final int distance = editDistance(before, after);
// If afterLength < beforeLength, the algorithm is suggesting a word by excessive character // If afterLength < beforeLength, the algorithm is suggesting a word by excessive character
// correction. // correction.
int spaceCount = 0;
for (int i = 0; i < afterLength; ++i) {
if (after.charAt(i) == Keyboard.CODE_SPACE) {
++spaceCount;
}
}
if (spaceCount == afterLength) return 0;
final double maximumScore = MAX_INITIAL_SCORE final double maximumScore = MAX_INITIAL_SCORE
* Math.pow(TYPED_LETTER_MULTIPLIER, Math.min(beforeLength, afterLength)) * Math.pow(
TYPED_LETTER_MULTIPLIER, Math.min(beforeLength, afterLength - spaceCount))
* FULL_WORD_MULTIPLIER; * FULL_WORD_MULTIPLIER;
// add a weight based on edit distance. // add a weight based on edit distance.
// distance <= max(afterLength, beforeLength) == afterLength, // distance <= max(afterLength, beforeLength) == afterLength,