1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
// list of similar chars
// useful for suggestion mechanism
${map}
var char_player = {
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;
let nLen2 = s2.length;
|
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
|
// list of similar chars
// useful for suggestion mechanism
${map}
var char_player = {
_dTransChars: new Map([
['à', 'a'], ['é', 'e'], ['î', 'i'], ['ô', 'o'], ['û', 'u'], ['ÿ', 'y'],
['â', 'a'], ['è', 'e'], ['ï', 'i'], ['ö', 'o'], ['ù', 'u'], ['ŷ', 'y'],
['ä', 'a'], ['ê', 'e'], ['í', 'i'], ['ó', 'o'], ['ü', 'u'], ['ý', 'y'],
['á', 'a'], ['ë', 'e'], ['ì', 'i'], ['ò', 'o'], ['ú', 'u'], ['ỳ', 'y'],
['ā', 'a'], ['ē', 'e'], ['ī', 'i'], ['ō', 'o'], ['ū', 'u'], ['ȳ', 'y'],
['ñ', 'n'],
['œ', 'oe'], ['æ', 'ae'],
]),
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;
},
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;
let nLen2 = s2.length;
|
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
|
'â', 'è', 'ï', 'ö', 'ù', 'ŷ',
'ä', 'ê', 'í', 'ó', 'ü', 'ý',
'á', 'ë', 'ì', 'ò', 'ú', 'ỳ',
'ā', 'ē', 'ī', 'ō', 'ū', 'ȳ',
'h', 'œ', 'æ'
]),
clearWord: function (sWord) {
// remove vovels and h
let sRes = "";
for (let cChar of sWord.slice(1)) {
if (!this.aVovels.has(cChar)) {
sRes += cChar;
}
}
|
|
|
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
|
'â', 'è', 'ï', 'ö', 'ù', 'ŷ',
'ä', 'ê', 'í', 'ó', 'ü', 'ý',
'á', 'ë', 'ì', 'ò', 'ú', 'ỳ',
'ā', 'ē', 'ī', 'ō', 'ū', 'ȳ',
'h', 'œ', 'æ'
]),
shrinkWord: function (sWord) {
// remove vovels and h
let sRes = "";
for (let cChar of sWord.slice(1)) {
if (!this.aVovels.has(cChar)) {
sRes += cChar;
}
}
|