Denna artikel är en spegelartikel om maskinöversättning, klicka här för att hoppa till originalartikeln.

Utsikt: 56998|Svar: 2

[Källa] Implementera stränglikhetsalgoritmen i C#

[Kopiera länk]
Publicerad på 2019-04-23 12:59:18 | | | |
Nyligen finns ett problem som måste hanteras, nämligen att jämföra strängen som användaren anger med strängen som erhålls av systemet, om felet inte är mycket stort kommer systemet att betrakta det som uppfyllande kraven, och det är bäst att sätta en tröskel.
När du använder CAPTCHA-igenkänning behöver du jämföra likheten mellan teckenkoder och använda "edit distance algorithm" för att göra en dokumentation av principen och C#-implementeringen.

Enligt Baidu-encyklopedin:

Redigeringsavstånd, även känt som Levenshtein-avstånd (även känt som redigeringsavstånd), är det minsta antalet redigeringar som krävs för att byta från en till en annan mellan två strängar, och ju större avstånd, desto mer olika är de. Behörighetsstyrda redigeringsoperationer inkluderar att ersätta ett tecken med ett annat, infoga ett tecken och ta bort ett tecken.

Till exempel, omvandla ordet kattunge till sittande:

Sitten (K→S)

Sittin (E→I)

sittande (→g)

Den ryske vetenskapsmannen Vladimir Levenshtein föreslog detta koncept 1965. Därav namnet Levenshtein Distance.

Till exempel

Om str1="ivan", str2="ivan", så beräknas den att vara lika med 0. Inte konverterad. likhet=1-0/Math.Max(str1.length,str2.length)=1
Om str1="ivan1", str2="ivan2", så beräknas den som lika med 1. "1" i str1 omvandlas till "2", omvandlar ett tecken, så avståndet är 1, likhet = 1-1/Math.Max(str1.length, str2.length) = 0,8

Tillämpning:

  • DNA-analys
  • Stavningskontroll
  • Taligenkänning
  • Plagiatupptäckt



Algoritmen är implementerad i C#:

Testkod:






Utifrån testresultaten dras slutsatsen attrymdellerInterpunktionSträngpositionOlika städerResultat som påverkar likhetDärför rekommenderas det, när man jämför strängigenkänning, att ta bort alla mellanslag och specialsymboler i strängen innan algoritmen anropas

Resurser:Inloggningen med hyperlänken är synlig.

På GitHub finns det också ett bibliotek för jämförelser av C#-strängslikheter

FuzzyString är ett bibliotek utvecklat för mitt dagliga arbete för att samordna namngivningskonventioner mellan olika rutnätsmodeller. Jag har tagit bort den kraftsystemspecifika koden och satt ihop vad som effektivt kan användas som en strängförlängning för att avgöra den ungefärliga likheten mellan de två strängarna. Alla algoritmer som används här har extraherats från onlinekällor, konverterats till C# och kompilerats till detta bibliotek. Jag hittade flera andra liknande open source-implementationer som inte finns tillgängliga för . NET / C#。 Att lägga till *.dll i ditt projekt ger dig tillgång till denna extension och de individuella tilläggen under ApproximatelyEquals()-tillägget.



Adress:Inloggningen med hyperlänken är synlig.

NuGet-installation:

Algoritmer som ingår i detta projekt:

  • Hammingavstånd
  • Jaccard-avstånd
  • Jaro-avståndet
  • Jaro-Winkler-distansen
  • Levenshtein-avstånd
  • Den längst offentliga publiken
  • Den längsta gemensamma delsträngen i delsekvensen
  • Överlappskoefficient
  • Ratcliff-Obershelp-likhet
  • Sorensen-Dice-avståndet
  • Tanimotokoefficient



Användning:


Utfall:



(Slut)




Föregående:The Art of Software Testing 3:e upplagan pdf
Nästa:"Åtta kompetenser för dataanalytiker" krypterar inte hela kursen
Publicerad på 2019-05-06 13:11:34 |
Kunskap är på väg
Publicerad på 2021-09-07 15:01:05 |
Är det möjligt att se koden efter att ha svarat?
Friskrivning:
All programvara, programmeringsmaterial eller artiklar som publiceras av Code Farmer Network är endast för lärande- och forskningsändamål; Ovanstående innehåll får inte användas för kommersiella eller olagliga ändamål, annars kommer användarna att bära alla konsekvenser. Informationen på denna sida kommer från internet, och upphovsrättstvister har inget med denna sida att göra. Du måste helt radera ovanstående innehåll från din dator inom 24 timmar efter nedladdning. Om du gillar programmet, vänligen stöd äkta programvara, köp registrering och få bättre äkta tjänster. Om det finns något intrång, vänligen kontakta oss via e-post.

Mail To:help@itsvse.com