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

billy21121 79 Messages postés lundi 1 mars 2004Date d'inscription 19 janvier 2012 Dernière intervention - 15 juil. 2011 à 09:18 - Dernière réponse : billy21121 79 Messages postés lundi 1 mars 2004Date d'inscription 19 janvier 2012 Dernière intervention
- 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
cs_Jack 14010 Messages postés samedi 29 décembre 2001Date d'inscription 28 août 2015 Dernière intervention - 15 juil. 2011 à 11:13
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

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 89 internautes ce mois-ci

Commenter la réponse de cs_Jack
ucfoutu 18039 Messages postés lundi 7 décembre 2009Date d'inscriptionContributeurStatut 11 avril 2018 Dernière intervention - 15 juil. 2011 à 10:05
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
ucfoutu 18039 Messages postés lundi 7 décembre 2009Date d'inscriptionContributeurStatut 11 avril 2018 Dernière intervention - 15 juil. 2011 à 10:21
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
billy21121 79 Messages postés lundi 1 mars 2004Date d'inscription 19 janvier 2012 Dernière intervention - 15 juil. 2011 à 11:21
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
billy21121 79 Messages postés lundi 1 mars 2004Date d'inscription 19 janvier 2012 Dernière intervention - 15 juil. 2011 à 11:32
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.