pgl10
Messages postés380Date d'inscriptionsamedi 18 décembre 2004StatutMembreDernière intervention29 octobre 2023
-
8 avril 2009 à 14:27
pgl10
Messages postés380Date d'inscriptionsamedi 18 décembre 2004StatutMembreDernière intervention29 octobre 2023
-
8 avril 2009 à 23:06
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.
pgl10
Messages postés380Date d'inscriptionsamedi 18 décembre 2004StatutMembreDernière intervention29 octobre 202311 8 avril 2009 à 23:06
C'est bien maintenant. Merci pour les corrections et pour les remarques et variantes éventuelles qui peuvent effectivement être utilisées.
PoulpHunter
Messages postés51Date d'inscriptionmercredi 11 mai 2005StatutMembreDernière intervention 8 avril 2009 8 avril 2009 à 22:08
nan pas d'erreur de compilation
y'avais une erreur de <= à corriger, décidément !
les mots de 1 caractères sont tout de même pas pris en compte (d'après le jaro winkler officiel)
Sinon tu peux jouer sur les paramètres de la boucle for (j...
par exemple de j=0;j<l2;j++
cela permettra de vérifier tout les caractères (et marchera pour les mots de 1 lettre)
mais c'est plus le Jaro-Winkler officiel.
A mon avis on pourrais mettre un plus grand écart de recherche (quand même pas de 0 à l2) cela permettrait de meilleurs résultats.
Il y a aussi l'importance que l'on accorde au préfixe, ici 0.1 qui peut être modifié, par contre ici je penses c'est une bonne valeur.
Je sais pas si tu connais des textes ou l'ordre des lettres est inversé, tant que la première et la dernière lettre sont corrects et que le mot reste un anagramme alors le cerveau arrive à le comprendre sans problème, en se basant sur ce principe (pour la correction orthographique) pourquoi ne pas accorder aussi une importance au suffixe ?
Je penses un préfix max de 4 lettres coeff 0.1 et suffixe max 2 lettres coeff 0.08 est un assez bon réglage.
Enfin sa peut faire l'objet d'une autre source (ou en complément de celle-ci) je vais voir.
Merci pour tes tests en tout cas !
pgl10
Messages postés380Date d'inscriptionsamedi 18 décembre 2004StatutMembreDernière intervention29 octobre 202311 8 avril 2009 à 21:33
Maintenant c'est beaucoup mieux. Les 3 exemples de Wikipedia sont bien évalués comme il faut. Mais si on ajoute le calcul de la distance entre "AAA" et "AAA" on trouve : 0 ! On s'attend à : 1, je crois. Est-ce ma compilation qui est en défaut ?
PoulpHunter
Messages postés51Date d'inscriptionmercredi 11 mai 2005StatutMembreDernière intervention 8 avril 2009 8 avril 2009 à 15:12
oups désolé j'avais pas testé mon code !
J'ai corrigé aussi le calcul du nombre de transposition et libération de la mémoire quand on en a plus besoin.
Je n'avais pas mis d'include ni de main pour poster seulement un algorithme pas un programme !
j'ai tout de même rajouté un main de test de la fonction.
pgl10
Messages postés380Date d'inscriptionsamedi 18 décembre 2004StatutMembreDernière intervention29 octobre 202311 8 avril 2009 à 14:27
J'ai quelques soucis avec ce programme.
A la place de : if (&t1[i]==&t1[j])
j'aurais bien vu : if (t1[i]==t2[j])
De plus la ligne : distanceJaro=(double)...
comporte des divisions entières.
Mais 4/8 vaut 0 et non pas 0.5 !
Il manque les #include et un main.
Cela peut donc s'améliorer.
8 avril 2009 à 23:06
8 avril 2009 à 22:08
y'avais une erreur de <= à corriger, décidément !
les mots de 1 caractères sont tout de même pas pris en compte (d'après le jaro winkler officiel)
Sinon tu peux jouer sur les paramètres de la boucle for (j...
par exemple de j=0;j<l2;j++
cela permettra de vérifier tout les caractères (et marchera pour les mots de 1 lettre)
mais c'est plus le Jaro-Winkler officiel.
A mon avis on pourrais mettre un plus grand écart de recherche (quand même pas de 0 à l2) cela permettrait de meilleurs résultats.
Il y a aussi l'importance que l'on accorde au préfixe, ici 0.1 qui peut être modifié, par contre ici je penses c'est une bonne valeur.
Je sais pas si tu connais des textes ou l'ordre des lettres est inversé, tant que la première et la dernière lettre sont corrects et que le mot reste un anagramme alors le cerveau arrive à le comprendre sans problème, en se basant sur ce principe (pour la correction orthographique) pourquoi ne pas accorder aussi une importance au suffixe ?
Je penses un préfix max de 4 lettres coeff 0.1 et suffixe max 2 lettres coeff 0.08 est un assez bon réglage.
Enfin sa peut faire l'objet d'une autre source (ou en complément de celle-ci) je vais voir.
Merci pour tes tests en tout cas !
8 avril 2009 à 21:33
8 avril 2009 à 15:12
J'ai corrigé aussi le calcul du nombre de transposition et libération de la mémoire quand on en a plus besoin.
Je n'avais pas mis d'include ni de main pour poster seulement un algorithme pas un programme !
j'ai tout de même rajouté un main de test de la fonction.
8 avril 2009 à 14:27
A la place de : if (&t1[i]==&t1[j])
j'aurais bien vu : if (t1[i]==t2[j])
De plus la ligne : distanceJaro=(double)...
comporte des divisions entières.
Mais 4/8 vaut 0 et non pas 0.5 !
Il manque les #include et un main.
Cela peut donc s'améliorer.