Overview
| Comment: | [fx][bug] ibdawg: suggestion mechanism > fix calculation between words in JS | 
|---|---|
| Downloads: | Tarball | ZIP archive | SQL archive | 
| Timelines: | family | ancestors | descendants | both | trunk | fx | 
| Files: | files | file ages | folders | 
| SHA3-256: | 
5ac4660b3050848f8fbe5cbda1d65a35 | 
| User & Date: | olr on 2017-10-28 11:56:22 | 
| Other Links: | manifest | tags | 
Context
| 
   2017-10-28 
 | ||
| 12:04 | [fx] Menu buttons: option true by default for editable nodes check-in: 4dd50863c2 user: olr tags: trunk, fx | |
| 11:56 | [fx][bug] ibdawg: suggestion mechanism > fix calculation between words in JS check-in: 5ac4660b30 user: olr tags: trunk, fx | |
| 11:15 | [fx] Menu buttons: option false by default for editable nodes check-in: 35238657b4 user: olr tags: trunk, fx | |
Changes
Modified gc_core/js/char_player.js from [fa4a550e43] to [f5b2267e7d].
| ︙ | |||
19 20 21 22 23 24 25  | 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33  | - +  | 
    cleanWord: function (sWord) {
        // word simplication before calculating distance between words
        sWord = sWord.toLowerCase();
        let sRes = "";
        for (let c of sWord) {
            sRes += this._dTransChars.gl_get(c, c);
        }
 | 
| ︙ | |||
59 60 61 62 63 64 65 66 67 68 69 70 71 72  | 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78  | + + + + + +  | 
            return matrix[nLen1][nLen2];
        }
        catch (e) {
            helpers.logerror(e);
        }
    },
    showDistance (s1, s2) {
        let s1b = this.cleanWord(s1);
        let s2b = this.cleanWord(s2);
        console.log(`Distance: ${s1} / ${s2} = ${this.distanceDamerauLevenshtein(s1, s2)})`);
        console.log(`Distance: ${s1b} / ${s2b} = ${this.distanceDamerauLevenshtein(s1b, s2b)})`);
    },
    // Method: Remove Useless Chars
    aVovels: new Set([
        'a', 'e', 'i', 'o', 'u', 'y',
        'à', 'é', 'î', 'ô', 'û', 'ÿ',
        'â', 'è', 'ï', 'ö', 'ù', 'ŷ',
 | 
| ︙ | 
Modified gc_core/js/ibdawg.js from [d3a144f471] to [c87880e4ad].
| ︙ | |||
200 201 202 203 204 205 206  | 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219  | - + - +  | 
            aSugg.gl_update(this._suggest(sWord.toLowerCase(), nMaxDel, nMaxHardRepl));
        }
        else if (sWord.gl_isLowerCase()) {
            aSugg.gl_update(this._suggest(sWord.gl_toCapitalize(), nMaxDel, nMaxHardRepl));
        }
        // Set to Array
        aSugg = Array.from(aSugg);
 | 
| ︙ | 
Modified gc_core/py/char_player.py from [3de4d3c435] to [97f69bd70d].
| ︙ | |||
37 38 39 40 41 42 43 44 45 46 47 48 49 50  | 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57  | + + + + + + +  | 
                d[i,   j-1] + 1,        # Insertion
                d[i-1, j-1] + nCost,    # Substitution
            )
            if i and j and s1[i] == s2[j-1] and s1[i-1] == s2[j]:
                d[i, j] = min(d[i, j], d[i-2, j-2] + nCost)     # Transposition
    return d[nLen1-1, nLen2-1]
def showDistance (s1, s2):
    s1b = cleanWord(s1);
    s2b = cleanWord(s2);
    print(f"Distance: {s1} / {s2} = {distanceDamerauLevenshtein(s1, s2)}")
    print(f"Distance: {s1b} / {s2b} = {distanceDamerauLevenshtein(s1b, s2b)}")
# Method: Remove Useless Chars
_dVovels = {
    'a': '',  'e': '',  'i': '',  'o': '',  'u': '',  'y': '',
    'à': '',  'é': '',  'î': '',  'ô': '',  'û': '',  'ÿ': '',
    'â': '',  'è': '',  'ï': '',  'ö': '',  'ù': '',  'ŷ': '',
 | 
| ︙ |