aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSatoshi Kataoka <satok@google.com>2012-10-05 06:02:48 -0700
committerAndroid Git Automerger <android-git-automerger@android.com>2012-10-05 06:02:48 -0700
commit49a90081ebaef2e34ea4bb10588b9b0a6e09062c (patch)
treefa903ae1229a4c24fafacbe1315ebab85906ee45
parentd7345ed0b532eaa2082adea6fb5e89f5fe0acb86 (diff)
parenta40f2842cf9ed085703518ed16ddd9e9f66560da (diff)
downloadlatinime-49a90081ebaef2e34ea4bb10588b9b0a6e09062c.tar.gz
latinime-49a90081ebaef2e34ea4bb10588b9b0a6e09062c.tar.xz
latinime-49a90081ebaef2e34ea4bb10588b9b0a6e09062c.zip
am a40f2842: am 78fe885f: Merge "Fix addtional proximity correction" into jb-mr1-dev
* commit 'a40f2842cf9ed085703518ed16ddd9e9f66560da': Fix addtional proximity correction
-rw-r--r--native/jni/src/correction.cpp24
1 files changed, 12 insertions, 12 deletions
diff --git a/native/jni/src/correction.cpp b/native/jni/src/correction.cpp
index 49e3e3c8c..26d8ed715 100644
--- a/native/jni/src/correction.cpp
+++ b/native/jni/src/correction.cpp
@@ -764,13 +764,23 @@ int Correction::RankingAlgorithm::calculateFinalProbability(const int inputIndex
}
}
+ int additionalProximityCount = 0;
+ // Demote additional proximity characters
+ for (int i = 0; i < outputLength; ++i) {
+ const int squaredDistance = correction->mDistances[i];
+ if (squaredDistance == ADDITIONAL_PROXIMITY_CHAR_DISTANCE_INFO) {
+ ++additionalProximityCount;
+ }
+ }
+
const bool performTouchPositionCorrection =
CALIBRATE_SCORE_BY_TOUCH_COORDINATES
&& proximityInfoState->touchPositionCorrectionEnabled()
- && skippedCount == 0 && excessiveCount == 0 && transposedCount == 0;
+ && skippedCount == 0 && excessiveCount == 0 && transposedCount == 0
+ && additionalProximityCount == 0;
+
// Score calibration by touch coordinates is being done only for pure-fat finger typing error
// cases.
- int additionalProximityCount = 0;
// TODO: Remove this constraint.
if (performTouchPositionCorrection) {
for (int i = 0; i < outputLength; ++i) {
@@ -802,19 +812,9 @@ int Correction::RankingAlgorithm::calculateFinalProbability(const int inputIndex
multiplyRate((int)(factor * 100), &finalFreq);
} else if (squaredDistance == PROXIMITY_CHAR_WITHOUT_DISTANCE_INFO) {
multiplyRate(WORDS_WITH_PROXIMITY_CHARACTER_DEMOTION_RATE, &finalFreq);
- } else if (squaredDistance == ADDITIONAL_PROXIMITY_CHAR_DISTANCE_INFO) {
- ++additionalProximityCount;
- multiplyRate(WORDS_WITH_ADDITIONAL_PROXIMITY_CHARACTER_DEMOTION_RATE, &finalFreq);
}
}
} else {
- // Demote additional proximity characters
- for (int i = 0; i < outputLength; ++i) {
- const int squaredDistance = correction->mDistances[i];
- if (squaredDistance == ADDITIONAL_PROXIMITY_CHAR_DISTANCE_INFO) {
- ++additionalProximityCount;
- }
- }
// Promotion for a word with proximity characters
for (int i = 0; i < adjustedProximityMatchedCount; ++i) {
// A word with proximity corrections