Cet article est un article miroir de traduction automatique, veuillez cliquer ici pour accéder à l’article original.

Vue: 56998|Répondre: 2

[Source] Implémentez l’algorithme de similarité de chaînes en C#

[Copié le lien]
Publié sur 23/04/2019 12:59:18 | | | |
Récemment, il y a un problème à résoudre : comparer la chaîne saisie par l’utilisateur et celle obtenue par le système ; si l’erreur n’est pas très importante, le système considérera qu’elle répond aux exigences, et il est préférable de fixer un seuil.
Lors de la reconnaissance CAPTCHA, il faut comparer la similarité des codes de caractères et utiliser « l’algorithme de distance d’édition » pour enregistrer le principe et l’implémentation de C#.

Selon l’encyclopédie Baidu :

La distance de montage, également appelée distance de Levenshtein (également appelée distance d’édition), est le nombre minimum de modifications nécessaires pour passer de l’une à l’autre entre deux chaînes, et plus la distance est grande, plus elles diffèrent. Les opérations d’édition autorisées incluent le remplacement d’un personnage par un autre, l’insertion d’un caractère et la suppression d’un personnage.

Par exemple, convertissez le mot chaton en assis :

Sitten (K→s)

Sittin (E→I)

assis (→G)

Le scientifique russe Vladimir Levenshtein a proposé ce concept en 1965. D’où le nom de Distance Levenshtein.

Par exemple

Si str1="ivan », str2="ivan « , alors il est calculé comme étant égal à 0. Pas converti. similarité=1-0/Math.Max(str1.longueur,str2.longueur)=1
Si str1="ivan1 », str2="ivan2 », alors il est calculé comme égal à 1. Le « 1 » de str1 se convertit en « 2 », convertit un caractère, donc la distance est 1, similarité = 1-1/Math.Max(str1.longueur, str2.longueur) = 0,8

Application :

  • Analyse ADN
  • Correcteur orthographique
  • Reconnaissance vocale
  • Détection du plagiat



L’algorithme est implémenté en C# :

Code de test :






D’après les résultats des tests, il est conclu queespaceouPonctuationPosition des cordesDifférentes villesRésultats qui influencent la similaritéAinsi, lors de la comparaison de la reconnaissance de chaînes, il est recommandé de supprimer tous les espaces et symboles spéciaux de la chaîne avant d’appeler l’algorithme

Ressources:La connexion hyperlientérée est visible.

Sur GitHub, il existe aussi une bibliothèque pour comparer la similarité des chaînes C#

FuzzyString est une bibliothèque développée pour mon travail quotidien afin de coordonner les conventions de nommage entre différents modèles de grille. J’ai démonté le code spécifique au système électrique et assemblé ce qui peut être utilisé efficacement comme une extension de chaînes pour déterminer l’égalité approximative entre les deux chaînes. Tous les algorithmes utilisés ici ont été extraits de sources en ligne, convertis en C#, puis compilés dans cette bibliothèque. J’ai trouvé plusieurs autres implémentations open source similaires qui ne sont pas disponibles pour . NET / C#。 Ajouter *.dll à votre projet vous donnera accès à cette extension ainsi qu’aux extensions individuelles sous l’extension ApproximatelyEquals().



Adresse:La connexion hyperlientérée est visible.

Installation Nuget :

Algorithmes inclus dans ce projet :

  • Distance de Hamming
  • Distance de Jaccard
  • Distance de Jaro
  • Distance Jaro-Winkler
  • Distance de Levenshtein
  • Le public le plus long
  • La plus longue sous-chaîne commune de la sous-suite
  • Coefficient de chevauchement
  • Similarité Ratcliff-Obershelp
  • Distance de Sorensen-Dice
  • Coefficient de Tanimoto



Utilisation :


Résultat:



(Fin)




Précédent:L’art du test logiciel 3e édition pdf
Prochain:« Huit compétences des analystes de données » ne chiffre pas le cours complet
Publié sur 06/05/2019 13:11:34 |
Le savoir arrive
Publié sur 07/09/2021 15:01:05 |
Est-il possible de voir le code après avoir répondu ?
Démenti:
Tous les logiciels, supports de programmation ou articles publiés par Code Farmer Network sont uniquement destinés à l’apprentissage et à la recherche ; Le contenu ci-dessus ne doit pas être utilisé à des fins commerciales ou illégales, sinon les utilisateurs assumeront toutes les conséquences. Les informations sur ce site proviennent d’Internet, et les litiges de droits d’auteur n’ont rien à voir avec ce site. Vous devez supprimer complètement le contenu ci-dessus de votre ordinateur dans les 24 heures suivant le téléchargement. Si vous aimez le programme, merci de soutenir un logiciel authentique, d’acheter l’immatriculation et d’obtenir de meilleurs services authentiques. En cas d’infraction, veuillez nous contacter par e-mail.

Mail To:help@itsvse.com