Similarité entre deux chaine de caratères

Résolu
billy21121 Messages postés 78 Date d'inscription lundi 1 mars 2004 Statut Membre Dernière intervention 19 janvier 2012 - 15 juil. 2011 à 09:18
billy21121 Messages postés 78 Date d'inscription lundi 1 mars 2004 Statut Membre 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

5 réponses

cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
15 juil. 2011 à 11:13
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)
3
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
15 juil. 2011 à 10:05
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
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
15 juil. 2011 à 10:21
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
0
billy21121 Messages postés 78 Date d'inscription lundi 1 mars 2004 Statut Membre Dernière intervention 19 janvier 2012
15 juil. 2011 à 11:21
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
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
billy21121 Messages postés 78 Date d'inscription lundi 1 mars 2004 Statut Membre Dernière intervention 19 janvier 2012
15 juil. 2011 à 11:32
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
0
Rejoignez-nous