Acest articol este un articol oglindă al traducerii automate, vă rugăm să faceți clic aici pentru a sări la articolul original.

Vedere: 56998|Răspunde: 2

[Sursă] Implementează algoritmul de similaritate a șirurilor în C#

[Copiază linkul]
Postat pe 23.04.2019 12:59:18 | | | |
Recent, există o problemă care trebuie rezolvată, și anume să se compare șirul introdus de utilizator cu șirul obținut de sistem; dacă eroarea nu este foarte mare, sistemul va considera că îndeplinește cerințele, iar cel mai bine este să se stabilească un prag.
Când faci recunoaștere CAPTCHA, trebuie să compari similaritatea codurilor de caractere și să folosești "algoritmul distanței de editare" pentru a înregistra principiul și implementarea C#.

Conform Enciclopediei Baidu:

Distanța de editare, cunoscută și sub denumirea de distanță Levenshtein (cunoscută și ca distanță de editare), este numărul minim de editări necesare pentru a comuta de la una la alta între două șiruri, iar cu cât distanța este mai mare, cu atât acestea sunt mai diferite. Operațiunile de editare permise includ înlocuirea unui caracter cu altul, inserarea unui caracter și eliminarea unui caracter.

De exemplu, convertiți cuvântul pisoi în "așezat":

Sitten (K→s)

Sittin (E→I)

Așezat (→G)

Omul de știință rus Vladimir Levenshtein a propus acest concept în 1965. De aici și numele Distanța Levenshtein.

De exemplu

Dacă str1="ivan", str2="ivan", atunci se calculează că este egal cu 0. Nu a fost convertită. similaritate=1-0/Math.Max(str1.lungime,str2.lungime)=1
Dacă str1="ivan1", str2="ivan2", atunci se calculează că este egal cu 1. "1" din str1 se transformă în "2", convertește un caracter, astfel încât distanța este 1, similaritate = 1-1/Math.Max(str1.lungime, str2.lungime) = 0,8

Aplicație:

  • Analiza ADN-ului
  • Corector ortografic
  • Recunoașterea vorbirii
  • Detectarea plagiatului



Algoritmul este implementat în C#:

Cod de test:






Din rezultatele testelor se concluzionează căspațiusauPunctuațiePoziția corzilorOrașe diferiteRezultate care influențează asemănareaPrin urmare, atunci când se compară recunoașterea șirurilor, se recomandă eliminarea tuturor spațiilor și simbolurilor speciale din șir înainte de a chema algoritmul

Resurse:Autentificarea cu hyperlink este vizibilă.

Pe GitHub există și o bibliotecă pentru comparații de similaritate a șirurilor C#

FuzzyString este o bibliotecă dezvoltată pentru munca mea zilnică, pentru a coordona convențiile de denumire între diferite modele de grilă. Am eliminat codul specific sistemului de putere și am pus cap la cap ceea ce poate fi folosit eficient ca o extensie de șiruri pentru a determina egalitatea aproximativă între cele două șiruri. Toți algoritmii folosiți aici au fost extrași din surse online, convertiți în C# și compilați în această bibliotecă. Am găsit mai multe alte implementări open source similare care nu sunt disponibile pentru . NET / C#。 Adăugarea lui *.dll proiectului tău îți va oferi acces la această extensie și la extensiile individuale din extensia ApproximatelyEquals().



Adresă:Autentificarea cu hyperlink este vizibilă.

Instalare Nuget:

Algoritmi incluși în acest proiect:

  • Distanța Hamming
  • Distanța Jaccard
  • Distanța Jaro
  • Distanța Jaro-Winkler
  • Distanța Levenshtein
  • Cea mai longevivă publică
  • Cel mai lung subșir comun al subsecvenței
  • Coeficient de suprapunere
  • Asemănarea Ratcliff-Obershelp
  • Distanța Sorensen-Dice
  • Coeficientul Tanimoto



Utilizare:


Rezultat:



(Sfârșit)




Precedent:Arta testării software-ului Ediția a 3-a pdf
Următor:"Opt competențe ale analiștilor de date" nu criptează întregul curs
Postat pe 06.05.2019 13:11:34 |
Cunoașterea vine
Postat pe 07.09.2021 15:01:05 |
Este posibil să vezi codul după ce ai răspuns?
Disclaimer:
Tot software-ul, materialele de programare sau articolele publicate de Code Farmer Network sunt destinate exclusiv scopurilor de învățare și cercetare; Conținutul de mai sus nu va fi folosit în scopuri comerciale sau ilegale, altfel utilizatorii vor suporta toate consecințele. Informațiile de pe acest site provin de pe Internet, iar disputele privind drepturile de autor nu au legătură cu acest site. Trebuie să ștergi complet conținutul de mai sus de pe calculatorul tău în termen de 24 de ore de la descărcare. Dacă îți place programul, te rugăm să susții software-ul autentic, să cumperi înregistrarea și să primești servicii autentice mai bune. Dacă există vreo încălcare, vă rugăm să ne contactați prin e-mail.

Mail To:help@itsvse.com