diff options
author | 2012-10-05 06:05:10 -0700 | |
---|---|---|
committer | 2012-10-05 06:05:10 -0700 | |
commit | c5965ffe62b50c2ec7947f1bc6c505eca144fc39 (patch) | |
tree | 8dc267d7f9924bfed597fcdfb1f8a07c6b2fc82a | |
parent | 9778ac3fdda1360e19a8dcdef00b736d9d0edfd9 (diff) | |
parent | 49a90081ebaef2e34ea4bb10588b9b0a6e09062c (diff) | |
download | latinime-c5965ffe62b50c2ec7947f1bc6c505eca144fc39.tar.gz latinime-c5965ffe62b50c2ec7947f1bc6c505eca144fc39.tar.xz latinime-c5965ffe62b50c2ec7947f1bc6c505eca144fc39.zip |
am 49a90081: am a40f2842: am 78fe885f: Merge "Fix addtional proximity correction" into jb-mr1-dev
* commit '49a90081ebaef2e34ea4bb10588b9b0a6e09062c':
Fix addtional proximity correction
-rw-r--r-- | native/jni/src/correction.cpp | 24 |
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 |