John Dogget
Messages postés384Date d'inscriptionvendredi 18 juin 2004StatutMembreDernière intervention 7 mai 2009
-
29 août 2008 à 01:14
blueperfect
Messages postés234Date d'inscriptionmardi 13 novembre 2007StatutMembreDernière intervention21 novembre 2013
-
2 sept. 2008 à 17:27
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.
blueperfect
Messages postés234Date d'inscriptionmardi 13 novembre 2007StatutMembreDernière intervention21 novembre 2013 2 sept. 2008 à 17:27
Je me demande ce que cela donnerait en utilisant un algorythme de comparaison de bitmap !
Tu dessines la chaine sur un canvas, et tu fais la difference avec un bitma p rempli selon un pourcentage ....???
PoulpHunter
Messages postés51Date d'inscriptionmercredi 11 mai 2005StatutMembreDernière intervention 8 avril 2009 2 sept. 2008 à 17:06
Ben pour les accents l'algo considère pareil une lettre accentuée qu'une autre lettre.
Pour y remédier on pourrais y incorporer juste avant un algo qui supprime les accents avant comparaison par exemple.
Et au faite pour Loda, si tu veux utiliser cet algo dans ton aglomérateur de news, ne te sert pas du côté Winkler (car sa compte plus le préfixe)
Utilise juste la distance de Jaro.
cs_Loda
Messages postés814Date d'inscriptionvendredi 3 novembre 2000StatutMembreDernière intervention30 juillet 20093 31 août 2008 à 18:24
merci pour la comparaison. Cela éclaire bien ma lanterne....
a+
blueperfect
Messages postés234Date d'inscriptionmardi 13 novembre 2007StatutMembreDernière intervention21 novembre 2013 30 août 2008 à 01:23
En fait, comparé à SoundEx, il paraît plus international ton algo !
Les accents, tu gais comment ?
Pour SoundEx, il y a une correspondance spéciale...
PoulpHunter
Messages postés51Date d'inscriptionmercredi 11 mai 2005StatutMembreDernière intervention 8 avril 2009 30 août 2008 à 00:20
Alors si on prend pour
A : la distance de Levenstein / Longeur max des 2 mots
B : la distance de Jaro
C : la distance de Jaro-Winkler
cela donne le tableau suivant :
Robert - Rupert
A=66.67%
B=77.78%
C=80%
Robert - Rubin
A=33.33%
B=57.78%
C=62%
Rupert - Rubin
A=33.33%
B=57.78%
C=66.22%
on constate que Robert ressemble plus à Rupert que Rubin (via tout les algos)
après on peut même dire via Jaro-Winkler que Rubin ressemble plus à Rupert qu'à Robert
mais sa c'est surtout parce que Winkler à rajouté le fait que le préfixe est plus important.
blueperfect
Messages postés234Date d'inscriptionmardi 13 novembre 2007StatutMembreDernière intervention21 novembre 2013 29 août 2008 à 18:04
Tu as un exemple ?
Pour soundex :
En effectuant cet algorithme, on obtient avec "Robert" et "Rupert" la même chaîne : "R163", tandis que "Rubin" donne "R150".
cs_Loda
Messages postés814Date d'inscriptionvendredi 3 novembre 2000StatutMembreDernière intervention30 juillet 20093 29 août 2008 à 13:56
re,
par curiosité: Tu utilises cet algo pour quel type d'application ? D'après l'article de wikipedia, son usage semble limité à des mots ou des textes très courts. Et même dans ce cas, un couple de mots assez différent semblent retourner des valeurs similaire à un couple de mots assez semblable. (je dis "semble", car je ne pas fait de test)
je m'intéresse au sujet pour un projet d'alogmerateur de news. Afin de détecter les news à double (typiquement avec une virgule en plus ou un titre un peu plus court)
bon week-end,
cs_cantador
Messages postés4720Date d'inscriptiondimanche 26 février 2006StatutModérateurDernière intervention31 juillet 202113 29 août 2008 à 12:27
Bonjour,
Intéressant..
ce code pourrait être utilisé par CS afin d'offrir une possibilité de recherche à l'intérieur de ses propres commentaires sur le forum.
A voir..
Bacterius
Messages postés3792Date d'inscriptionsamedi 22 décembre 2007StatutMembreDernière intervention 3 juin 201610 29 août 2008 à 12:11
John Dogget tu es le spécialiste des blocs begin-end ;)
Cordialement, Bacterius !
PoulpHunter
Messages postés51Date d'inscriptionmercredi 11 mai 2005StatutMembreDernière intervention 8 avril 2009 29 août 2008 à 11:36
Pour blueperfect : alors SoundEx est basé sur la phonétique, ici on veux juste savoir le % de ressemblance avec un autre mot (point de vue des lettres) pour la correction orthographique via dictionnaire par exemple.
SoundEx ne prend en compte que la ressemblance de prononciation.
Pour loda : alors sa y est j'ai remplacé les goto par des break, et sinon normalement le '_' ne devais pas poser de problème vu que la string n'étais pas réellement utile...
j'ai remplacé par un tableau de boolean ce qui fait le même boulot, pour moins de mémoire...
cs_Loda
Messages postés814Date d'inscriptionvendredi 3 novembre 2000StatutMembreDernière intervention30 juillet 20093 29 août 2008 à 09:18
salut,
tu peux remplacer les "goto endForX" par un "break", plus propre.
sinon ça m'a l'air intéressant, je regarderais ça plus en détails une autres fois.
aussi, je me demandais dans quelle mesures le strings avec des '_' vont poser problèmes...
a+
blueperfect
Messages postés234Date d'inscriptionmardi 13 novembre 2007StatutMembreDernière intervention21 novembre 2013 29 août 2008 à 04:32
C comme un SoundEx ?
John Dogget
Messages postés384Date d'inscriptionvendredi 18 juin 2004StatutMembreDernière intervention 7 mai 2009 29 août 2008 à 01:14
Lu.
Quand tu n'as qu'une instruction après un "if", tu peux te passer d'un bloc "begin-end".
Exemple l38 à 46, tu as écrit :
if (i<=l2) then
begin
c2:=t2[i];
end else begin
c2:='';
end; "
Ca se remplace avantageusement par :
if i<=12 then
c2:=t2[i]
else
c2:='';
Le code y gagne beaucoup en lisibilité ...
Sinon, je regarderai dans les details plus tard, ça m'as l'air un poil compliqué pour cette jeure tardive :)
2 sept. 2008 à 17:27
Tu dessines la chaine sur un canvas, et tu fais la difference avec un bitma p rempli selon un pourcentage ....???
2 sept. 2008 à 17:06
Pour y remédier on pourrais y incorporer juste avant un algo qui supprime les accents avant comparaison par exemple.
Et au faite pour Loda, si tu veux utiliser cet algo dans ton aglomérateur de news, ne te sert pas du côté Winkler (car sa compte plus le préfixe)
Utilise juste la distance de Jaro.
31 août 2008 à 18:24
a+
30 août 2008 à 01:23
Les accents, tu gais comment ?
Pour SoundEx, il y a une correspondance spéciale...
http://fr.wikipedia.org/wiki/Soundex
30 août 2008 à 00:20
A : la distance de Levenstein / Longeur max des 2 mots
B : la distance de Jaro
C : la distance de Jaro-Winkler
cela donne le tableau suivant :
Robert - Rupert
A=66.67%
B=77.78%
C=80%
Robert - Rubin
A=33.33%
B=57.78%
C=62%
Rupert - Rubin
A=33.33%
B=57.78%
C=66.22%
on constate que Robert ressemble plus à Rupert que Rubin (via tout les algos)
après on peut même dire via Jaro-Winkler que Rubin ressemble plus à Rupert qu'à Robert
mais sa c'est surtout parce que Winkler à rajouté le fait que le préfixe est plus important.
29 août 2008 à 18:04
Pour soundex :
En effectuant cet algorithme, on obtient avec "Robert" et "Rupert" la même chaîne : "R163", tandis que "Rubin" donne "R150".
29 août 2008 à 13:56
par curiosité: Tu utilises cet algo pour quel type d'application ? D'après l'article de wikipedia, son usage semble limité à des mots ou des textes très courts. Et même dans ce cas, un couple de mots assez différent semblent retourner des valeurs similaire à un couple de mots assez semblable. (je dis "semble", car je ne pas fait de test)
je m'intéresse au sujet pour un projet d'alogmerateur de news. Afin de détecter les news à double (typiquement avec une virgule en plus ou un titre un peu plus court)
bon week-end,
29 août 2008 à 12:27
Intéressant..
ce code pourrait être utilisé par CS afin d'offrir une possibilité de recherche à l'intérieur de ses propres commentaires sur le forum.
A voir..
29 août 2008 à 12:11
Cordialement, Bacterius !
29 août 2008 à 11:36
SoundEx ne prend en compte que la ressemblance de prononciation.
Pour loda : alors sa y est j'ai remplacé les goto par des break, et sinon normalement le '_' ne devais pas poser de problème vu que la string n'étais pas réellement utile...
j'ai remplacé par un tableau de boolean ce qui fait le même boulot, pour moins de mémoire...
29 août 2008 à 09:18
tu peux remplacer les "goto endForX" par un "break", plus propre.
sinon ça m'a l'air intéressant, je regarderais ça plus en détails une autres fois.
aussi, je me demandais dans quelle mesures le strings avec des '_' vont poser problèmes...
a+
29 août 2008 à 04:32
29 août 2008 à 01:14
Quand tu n'as qu'une instruction après un "if", tu peux te passer d'un bloc "begin-end".
Exemple l38 à 46, tu as écrit :
if (i<=l2) then
begin
c2:=t2[i];
end else begin
c2:='';
end; "
Ca se remplace avantageusement par :
if i<=12 then
c2:=t2[i]
else
c2:='';
Le code y gagne beaucoup en lisibilité ...
Sinon, je regarderai dans les details plus tard, ça m'as l'air un poil compliqué pour cette jeure tardive :)