Mise en forme de code: pensez à utiliser les balises [ tcl ] et [ /tcl ] (sans les espaces bien sûr) autour de vos codes tcl afin d'avoir un meilleur rendu et une coloration syntaxique. x


[Script] [Librairie] Distance de Levenshtein (version actuelle : 1.0)
#1
 
Ce script pourvoit l'eggdrop du package Levenshtein :
tcl
Package provide Levenshtein 1.0



Description :
La distance de Levenshtein mesure la similarité entre deux chaînes de caractères.
Elle est égale au nombre minimal de caractères qu'il faut supprimer, insérer ou remplacer pour passer d'une chaîne à l'autre.
(voir http://fr.wikipedia.org/wiki/Distance_de_Levenshtein )


Intérêts :
  • Permet à un correcteur orthographique de faire des suggestions pour tel mot mal orthographié, en proposant d'autres mots dont la distance de Levenshtein par rapport au premier est faible.
  • Permet à une pseudo-IA de type chatterbot d'avoir une tolérance orthographique : si tel mot comparé à tel autre a une distance inférieure à une tolérance donnée, on peut décider qu'il est équivalent.
  • ...


Syntaxe :
tcl
levenshtein::distance <string 1> <string 2>



Exemples :
Code :
levenshtein::distance "bonjour" "bougeoir"
-> 4
Il faut manipuler 4 caractères pour passer du mot "bonjour" au mot "bougeoir" :
  • BONJOUR
  • BOUJOUR -> on remplace le N par un U
  • BOUGOUR -> on remplace le J par un G
  • BOUGEOUR -> on insère un E
  • BOUGEOIR -> on remplace le U par un I
Code :
levenshtein::distance "antiquaire" "antikaire"
-> 2
On peut conclure de cet exemple de 10 lettres qu'il est très similaire avec le 2ème mot avec une distance de 2 seulement.
Il est important d'avoir à l'esprit qu'une distance de 2 entre deux mots de 10 lettres dénote une ressemblance, tandis qu'une distance de 2 entre deux mots de 3 lettres signifie qu'ils sont très différents comme le montre l'exemple suivant :
Code :
levenshtein::distance "pin" "pas"
-> 2
Comme vous le voyez, une distance de 2 ne permet pas de faire beaucoup de modifications dans un mot de 10 lettres mais elle représente un changement radical pour un mot de 3 lettres.
Afin de préserver la pertinence des résultats, vous prendrez soin de toujours lier la tolérance à la longueur, proportionnellement.
Code :
levenshtein::distance "antiquaire" "dimanche"
-> 8
Sur ce dernier exemple, on peut voir qu'il y a une distance de 8 entre le 1er mot et le second qui est très différent.

Téléchargement :Distance de Levenshtein v1.0
 
 
Toute l'actualité de mes scripts ici     (dernière mise à jour le 22/04/2020)

Tout programme comporte au moins un bug et pourrait être raccourci d'au moins une instruction, de quoi l'on peut déduire que tout programme peut être réduit à une seule instruction qui ne fonctionne pas.
  Répondre


Sujets apparemment similaires...
Sujet Auteur Réponses Affichages Dernier message
  [Script] Topic Warden (version actuelle : 1.54) MenzAgitat 22 14,803 03/08/2020, 14:51
Dernier message: MenzAgitat
  [Script] Duck Hunt (version actuelle : 2.11) MenzAgitat 34 15,953 10/07/2020, 13:33
Dernier message: CrazyCat
  [Script] Reanimator (version actuelle : 1.2) MenzAgitat 30 13,425 12/06/2020, 11:08
Dernier message: Daneel
  Motus (version actuelle : 3.357) MenzAgitat 477 9,868 19/05/2020, 22:48
Dernier message: pheeric
  [Script] Interface MegaHAL (version actuelle : 4.1.0) MenzAgitat 113 70,258 03/05/2020, 22:00
Dernier message: ShowDowN
  [Script] Anti-Frenzy (version actuelle : 2.02) MenzAgitat 9 7,114 22/04/2020, 13:51
Dernier message: MenzAgitat
  [Script] DicoReverso (version actuelle : 1.03) MenzAgitat 3 5,749 18/04/2020, 02:20
Dernier message: MenzAgitat
  [Script] MediaDico (version actuelle : 3.126) MenzAgitat 30 23,438 18/04/2020, 02:08
Dernier message: MenzAgitat
  [Script] Latest eggdrop.fr Script in Topic (version actuelle : 2.02) MenzAgitat 7 5,657 18/04/2020, 00:59
Dernier message: MenzAgitat
  [Script] Knock-out (version actuelle : 1.11) MenzAgitat 5 4,085 17/04/2020, 20:23
Dernier message: MenzAgitat

Atteindre :


Utilisateur(s) parcourant ce sujet : 1 visiteur(s)