Related Differential Report par MenzAgitat
Catégorie : Utilitaires
432 téléchargements
Description :
 
Description

Ce script pourvoit l'eggdrop du package Related_Differential_Report 1.21

Le rapport de relation différentielle est une extrapolation du principe de la distance de Levenshtein.

Rappelons que la distance de Levenshtein calcule le nombre de caractères qu'il est nécessaire d'ajouter, modifier, déplacer ou supprimer pour passer d'une chaîne de caractères à une autre.

Le rapport de relation différentielle (RDR) fait à peu près la même chose, à ceci près que la position des caractères n'a aucune importance pour lui.
Il calcule le taux de différences entre deux chaînes de caractères en se focalisant sur le nombre de caractères de chaque type.
De plus, les caractères conservant la même position entre les deux chaînes de caractères (en partant du début ou de la fin) ajoutent un bonus de similarité qui sera pris en compte dans le résultat final.
Enfin, une pénalité est appliquée si la longueur des deux chaînes de caractères présente une trop grande différence.
La valeur retournée est comprise entre 0 et 100, 0 signifiant qu'il n'y a aucune différence entre les deux chaînes de caractères, et 100 signifiant qu'elles sont très dissemblables.


Intérêt

Permet à un correcteur orthographique de faire des suggestions pour tel mot mal orthographié, en proposant d'autres mots dont le RDR 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 un RDR inférieur à une tolérance donnée, on peut décider qu'il est équivalent.

Comparé à la méthode de la distance de Levenshtein, RDR est plus souple en ce sens qu'il permettra par exemple de détecter deux phrases formulées différemment comme étant la même phrase puisque l'ordre des mots importe peu.


Syntaxe

::RDR::RDR [-allchars] <1ère chaîne de caractères> <2ème chaîne de caractères>

Si l'option -allchars est spécifiée, tous les caractères seront pris en compte. Si elle ne l'est pas, seuls les caractères alphanumériques et les espaces seront traités.

Dans le but d'accroître la rapidité d'exécution, la validité de la syntaxe de la commande n'est pas vérifiée. Veillez donc à la respecter scrupuleusement, sans quoi le script ne fonctionnera pas comme prévu et vous n'en serez pas explicitement averti.


Exemples

::RDR::RDR "il fait beau aujourd'hui" "aujourd'hui il fait beau"
0.0

::RDR::RDR "il fera beau aujourd'hui" "aujourd'hui il fait beau"
8.637461117131487

::RDR::RDR "il fera beau aujourd'hui" "aujourd'hui il va pleuvoir"
20.935906263026013

::RDR::RDR "il fera beau aujourd'hui" "cette phrase n'a vraiment rien à voir"
55.65136373698695
Notez que dans l'exemple ci-dessus, le score reste éloigné de 100.
C'est dû au fait que les deux chaînes de caractères comportent un certain nombre de caractères communs.

::RDR::RDR "abcdefghi" "jklmnopqrstuvwxyz"
100.0


Post support

http://forum.eggdrop.fr/showthread.php?tid=1516


Laissez vos commentaires / suggestions / rapports de bugs.


Vous pouvez trouver une liste de mes autres releases ici
 

Changelog

Version 1.21 par MenzAgitat (17/06/2015)
329 téléchargements
   

Version 1.2 par MenzAgitat (16/06/2015)
2 téléchargements
   

Version 1.1 par MenzAgitat (17/04/2014)
92 téléchargements
   

Version 1.0 par MenzAgitat (01/04/2014)
9 téléchargements