Similarité entre deux chaine de caratères [Résolu]

Messages postés
79
Date d'inscription
lundi 1 mars 2004
Dernière intervention
19 janvier 2012
- - Dernière réponse : billy21121
Messages postés
79
Date d'inscription
lundi 1 mars 2004
Dernière intervention
19 janvier 2012
- 15 juil. 2011 à 11:32
Bonjour,
je suis actuellement en train de développer un module permettant la comparaison de deux mots.
J ai fais quelque recherches et suis tombé sur des fonctions telles que Levenstein, Soundex, Metaphone et double metaphone.
Je les ai implémenté en vb.net et elles semblent fonctionner (Elles retournent le même resultat que les fonctions PHP)

Par contre en php, j ai vu qu il existait une fonction Text_similar qui retourne un pourcentage en fonction de la similarité de deux chaînes.

Est ce que quelqu un connaitrait l alghorithme utilisé ou un moyen de l implémenter en VB.Net?

Merci

billy
Afficher la suite 

Votre réponse

5 réponses

Meilleure réponse
Messages postés
14010
Date d'inscription
samedi 29 décembre 2001
Dernière intervention
28 août 2015
3
Merci
Salut

La meilleure méthode de comparaison que j'ai trouvée personnellement s'appelle la méthode "Radcliff" que tu trouveras dans <cette source> VB6 et facilement transcrivable en .Net.
Elle permet de trouver des textes proches d'un autre et renvoie un pourcentage de similarité : Facile donc de comparer tous les mots d'un dico avec le mot recherché et de récupérer le mot ayant le meilleur score.
C'est assez bluffant.

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)

Merci cs_Jack 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources a aidé 98 internautes ce mois-ci

Commenter la réponse de cs_Jack
Messages postés
18039
Date d'inscription
lundi 7 décembre 2009
Statut
Contributeur
Dernière intervention
11 avril 2018
0
Merci
Bonjour,

Si (je ne l'ai pas essayé) ce que fait le code VBA que tu trouveras ICI te parait satisfaire ton besoin, sa transposition en VB.Net devrait être très simple à conduire.


____________________
Utiliser le bouton "REPONSE ACCEPTEE" sur une réponse exacte facilite les recherches ultérieures d'autres forumeurs. PENSEZ-Y SVP
Commenter la réponse de ucfoutu
Messages postés
18039
Date d'inscription
lundi 7 décembre 2009
Statut
Contributeur
Dernière intervention
11 avril 2018
0
Merci
On peut toutefois regretter que le code VBA montré n'utilise pas ce qu'offre StrConv en lieu et place de
arrStr1(i) = Mid(str1, i, 1)
et de
arrStr2(j) = Mid(str2, j, 1)
dans des boucles pour remplir arrStr1 et arrStr2

____________________
Utiliser le bouton "REPONSE ACCEPTEE" sur une réponse exacte facilite les recherches ultérieures d'autres forumeurs. PENSEZ-Y SVP
Commenter la réponse de ucfoutu
Messages postés
79
Date d'inscription
lundi 1 mars 2004
Dernière intervention
19 janvier 2012
0
Merci
Merci,

Je viens de tester la fonction DamerauLevenshtein. Elle semble tres proche de Levenstein. Mais, elle ne repond pas a mes attentes.
Je trouve qu'elle n'est pas assez précises pour mon cas.
J ai vu sur d'autres site qu il existe un algo appellé "Oliver's algorithm"
Il semblerait que la fonction Php Similar_text utilise cet algo. Mais je ne le trouve pas sur le Net.

Billy
Commenter la réponse de billy21121
Messages postés
79
Date d'inscription
lundi 1 mars 2004
Dernière intervention
19 janvier 2012
0
Merci
Merci Jack,
Effectivement, ca a l'air pas mal du tout.
Je vais continuer de la tester et donnerai un retour sur mes tests

Billy
Commenter la réponse de billy21121

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.