Šis raksts ir mašīntulkošanas spoguļraksts, lūdzu, noklikšķiniet šeit, lai pārietu uz oriģinālo rakstu.

Skats: 56998|Atbildi: 2

[Avots] Ieviesiet virknes līdzības algoritmu C#

[Kopēt saiti]
Publicēts 23.04.2019 12:59:18 | | | |
Nesen ir problēma, kas jārisina, tas ir, salīdzināt lietotāja ievadīto virkni un sistēmas iegūto virkni, ja kļūda nav ļoti liela, sistēma to uzskatīs par atbilstošu prasībām, un vislabāk ir noteikt slieksni.
Iesaistoties CAPTCHA atpazīšanā, jums ir jāsalīdzina rakstzīmju kodu līdzība un jāizmanto "rediģēšanas attāluma algoritms", lai reģistrētu principu un C# ieviešanu.

Saskaņā ar Baidu enciklopēdiju:

Rediģēšanas attālums, kas pazīstams arī kā Levenšteina attālums (pazīstams arī kā rediģēšanas attālums), ir minimālais rediģēšanas skaits, kas nepieciešams, lai pārslēgtos no vienas uz otru starp divām virknēm, un, jo lielāks attālums, jo tās atšķiras. Atļautās rediģēšanas darbības ietver vienas rakstzīmes aizstāšanu ar citu, rakstzīmes ievietošanu un rakstzīmes noņemšanu.

Piemēram, pārveidojiet vārdu kaķēns uz sēdēšanu:

Sitten (K→s)

Sittin (E→i)

sēdēšana (→g)

Krievu zinātnieks Vladimirs Levenšteins ierosināja šo koncepciju 1965. gadā. Līdz ar to nosaukums Levenshtein attālums.

Piemēram

Ja str1="ivan", str2="ivan", tad tiek aprēķināts, ka tas ir vienāds ar 0. Nav konvertēts. līdzība = 1-0 / Math.Max (str1.garums, str2 garums) = 1
Ja str1="ivan1", str2="ivan2", tad tiek aprēķināts, ka tas ir vienāds ar 1. Str1 "1" pārvēršas par "2", pārvērš rakstzīmi, tātad attālums ir 1, līdzība = 1-1/Math.Max(str1.length, str2.length) = 0.8

Pieteikums:

  • DNS analīze
  • Pareizrakstības pārbaude
  • Runas atpazīšana
  • Plaģiāta noteikšana



Algoritms ir ieviests C#:

Testa kods:






No testa rezultātiem secina, kakosmossvaiPieturzīmesVirknes novietojumsDažādas pilsētasRezultāti, kas ietekmē līdzībuTāpēc, salīdzinot virknes atpazīšanu, pirms algoritma izsaukšanas ieteicams noņemt visas atstarpes un īpašos simbolus virknē

Resursu:Hipersaites pieteikšanās ir redzama.

Vietnē GitHub ir arī bibliotēka C# virkņu līdzības salīdzināšanai

FuzzyString ir bibliotēka, kas izstrādāta manam ikdienas darbam, lai koordinētu nosaukumu piešķiršanas konvencijas starp dažādiem režģa modeļiem. Es esmu noņēmis enerģijas sistēmai specifisku kodu un saliku kopā to, ko var efektīvi izmantot kā virknes paplašinājumu, lai noteiktu aptuveno vienlīdzību starp abām virknēm. Visi šeit izmantotie algoritmi ir iegūti no tiešsaistes avotiem, konvertēti uz C# un apkopoti šajā bibliotēkā. Es atradu vairākas citas līdzīgas atvērtā koda implementācijas, kas nav pieejamas . NET / C#。 Pievienojot projektam *.dll, jūs varēsiet piekļūt šim paplašinājumam un atsevišķiem paplašinājumiem paplašinājumā ApproximatelyEquals().



Adrese:Hipersaites pieteikšanās ir redzama.

Nuget instalēšana:

Šajā projektā iekļautie algoritmi:

  • Hamming attālums
  • Žakarda attālums
  • Jaro attālums
  • Jaro-Winkler attālums
  • Levenšteinas attālums
  • Garākā sabiedrība
  • Apakšsecības garākā kopējā apakšvirkne
  • Pārklāšanās koeficients
  • Ratcliff-Obershelp līdzība
  • Sorensena-kauliņu attālums
  • Tanimoto koeficients



Lietošana:


Rezultātu:



(Beigas)




Iepriekšējo:Programmatūras testēšanas māksla 3. izdevums pdf
Nākamo:"Astoņas datu analītiķu kompetences" nešifrē visu kursu
Publicēts 06.05.2019 13:11:34 |
Zināšanas nāk
Publicēts 07.09.2021 15:01:05 |
Vai ir iespējams redzēt kodu pēc atbildes?
Atruna:
Visa programmatūra, programmēšanas materiāli vai raksti, ko publicē Code Farmer Network, ir paredzēti tikai mācību un pētniecības mērķiem; Iepriekš minēto saturu nedrīkst izmantot komerciāliem vai nelikumīgiem mērķiem, pretējā gadījumā lietotājiem ir jāuzņemas visas sekas. Informācija šajā vietnē nāk no interneta, un autortiesību strīdiem nav nekāda sakara ar šo vietni. Iepriekš minētais saturs ir pilnībā jāizdzēš no datora 24 stundu laikā pēc lejupielādes. Ja jums patīk programma, lūdzu, atbalstiet oriģinālu programmatūru, iegādājieties reģistrāciju un iegūstiet labākus oriģinālus pakalpojumus. Ja ir kādi pārkāpumi, lūdzu, sazinieties ar mums pa e-pastu.

Mail To:help@itsvse.com