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);
}
return sWord.replace("eau", "o").replace("au", "o");
},
distanceDamerauLevenshtein: function (s1, s2) {
// distance of Damerau-Levenshtein between <s1> and <s2>
// https://fr.wikipedia.org/wiki/Distance_de_Damerau-Levenshtein
try {
let nLen1 = s1.length;
|
|
|
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);
}
return sRes.replace("eau", "o").replace("au", "o");
},
distanceDamerauLevenshtein: function (s1, s2) {
// distance of Damerau-Levenshtein between <s1> and <s2>
// https://fr.wikipedia.org/wiki/Distance_de_Damerau-Levenshtein
try {
let nLen1 = s1.length;
|
59
60
61
62
63
64
65
66
67
68
69
70
71
72
|
return matrix[nLen1][nLen2];
}
catch (e) {
helpers.logerror(e);
}
},
// Method: Remove Useless Chars
aVovels: new Set([
'a', 'e', 'i', 'o', 'u', 'y',
'à', 'é', 'î', 'ô', 'û', 'ÿ',
'â', 'è', 'ï', 'ö', 'ù', 'ŷ',
|
>
>
>
>
>
>
|
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',
'à', 'é', 'î', 'ô', 'û', 'ÿ',
'â', 'è', 'ï', 'ö', 'ù', 'ŷ',
|