Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit f611f24b authored by satok's avatar satok Committed by Android (Google) Code Review
Browse files

Merge "Use edit distance for transposing correction"

parents edf107e2 a161a4af
Loading
Loading
Loading
Loading
+14 −12
Original line number Diff line number Diff line
@@ -653,9 +653,10 @@ int Correction::RankingAlgorithm::calculateFinalFreq(const int inputIndex, const
    int finalFreq = freq;

    // TODO: Optimize this.
    // TODO: Ignoring edit distance for transposed char, for now
    if (transposedCount == 0 && (proximityMatchedCount > 0 || skipped || excessiveCount > 0)) {
        ed = getCurrentEditDistance(editDistanceTable, inputLength, outputIndex + 1);
    if (transposedCount > 0 || proximityMatchedCount > 0 || skipped || excessiveCount > 0) {
        ed = getCurrentEditDistance(editDistanceTable, inputLength, outputIndex + 1)
                - transposedCount;

        const int matchWeight = powerIntCapped(typedLetterMultiplier,
                max(inputLength, outputIndex + 1) - ed);
        multiplyIntCapped(matchWeight, &finalFreq);
@@ -667,6 +668,7 @@ int Correction::RankingAlgorithm::calculateFinalFreq(const int inputIndex, const

        ed = max(0, ed - quoteDiffCount);

        if (transposedCount < 1) {
            if (ed == 1 && (inputLength == outputIndex || inputLength == outputIndex + 2)) {
                // Promote a word with just one skipped or excessive char
                if (sameLength) {
@@ -678,10 +680,10 @@ int Correction::RankingAlgorithm::calculateFinalFreq(const int inputIndex, const
                multiplyIntCapped(typedLetterMultiplier, &finalFreq);
                sameLength = true;
            }
        }
        adjustedProximityMatchedCount = min(max(0, ed - (outputIndex + 1 - inputLength)),
                proximityMatchedCount);
    } else {
        // TODO: Calculate the edit distance for transposed char
        const int matchWeight = powerIntCapped(typedLetterMultiplier, matchCount);
        multiplyIntCapped(matchWeight, &finalFreq);
    }
+1 −1
Original line number Diff line number Diff line
@@ -190,7 +190,7 @@ static void prof_out(void) {
#define WORDS_WITH_MISSING_SPACE_CHARACTER_DEMOTION_RATE 67
#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
#define WORDS_WITH_TRANSPOSED_CHARACTERS_DEMOTION_RATE 70
#define FULL_MATCHED_WORDS_PROMOTION_RATE 120
#define WORDS_WITH_PROXIMITY_CHARACTER_DEMOTION_RATE 90
#define WORDS_WITH_MATCH_SKIP_PROMOTION_RATE 105