diff options
author | 2014-01-28 07:35:30 +0000 | |
---|---|---|
committer | 2014-01-28 07:35:31 +0000 | |
commit | 25270ec5405a8221a2e69acf86d70e46783be56d (patch) | |
tree | 2993b94c11d8df0d5759f75083b87d709fe245c8 /java/src | |
parent | 36fda2bae38a8bf6b07c449f63af817cdde72de5 (diff) | |
parent | 90ac041c9f40a61d1ef6207f4004fd4ce8fb860d (diff) | |
download | latinime-25270ec5405a8221a2e69acf86d70e46783be56d.tar.gz latinime-25270ec5405a8221a2e69acf86d70e46783be56d.tar.xz latinime-25270ec5405a8221a2e69acf86d70e46783be56d.zip |
Merge "Check probability before adding to the user history dict."
Diffstat (limited to 'java/src')
-rw-r--r-- | java/src/com/android/inputmethod/latin/DictionaryFacilitatorForSuggest.java | 25 |
1 files changed, 24 insertions, 1 deletions
diff --git a/java/src/com/android/inputmethod/latin/DictionaryFacilitatorForSuggest.java b/java/src/com/android/inputmethod/latin/DictionaryFacilitatorForSuggest.java index fb9517220..8a8a45f35 100644 --- a/java/src/com/android/inputmethod/latin/DictionaryFacilitatorForSuggest.java +++ b/java/src/com/android/inputmethod/latin/DictionaryFacilitatorForSuggest.java @@ -44,6 +44,10 @@ import java.util.concurrent.TimeUnit; public class DictionaryFacilitatorForSuggest { public static final String TAG = DictionaryFacilitatorForSuggest.class.getSimpleName(); + // HACK: This threshold is being used when adding a capitalized entry in the User History + // dictionary. + private static final int CAPITALIZED_FORM_MAX_PROBABILITY_FOR_INSERT = 140; + private final Context mContext; public final Locale mLocale; @@ -389,7 +393,26 @@ public class DictionaryFacilitatorForSuggest { if (maxFreq == 0) { return; } - final String secondWord = wasAutoCapitalized ? suggestion.toLowerCase(mLocale) : suggestion; + final String suggestionLowerCase = suggestion.toLowerCase(mLocale); + final String secondWord; + if (wasAutoCapitalized) { + secondWord = suggestionLowerCase; + } else { + // HACK: We'd like to avoid adding the capitalized form of common words to the User + // History dictionary in order to avoid suggesting them until the dictionary + // consolidation is done. + // TODO: Remove this hack when ready. + final int lowerCasefreqInMainDict = mMainDictionary != null ? + mMainDictionary.getFrequency(suggestionLowerCase) : + Dictionary.NOT_A_PROBABILITY; + if (maxFreq < lowerCasefreqInMainDict + && lowerCasefreqInMainDict >= CAPITALIZED_FORM_MAX_PROBABILITY_FOR_INSERT) { + // Use lower cased word as the word can be a distracter of the popular word. + secondWord = suggestionLowerCase; + } else { + secondWord = suggestion; + } + } // We demote unrecognized words (frequency < 0, below) by specifying them as "invalid". // We don't add words with 0-frequency (assuming they would be profanity etc.). final boolean isValid = maxFreq > 0; |