Šis straipsnis yra veidrodinis mašininio vertimo straipsnis, spauskite čia norėdami pereiti prie originalaus straipsnio.

Rodinys: 56998|Atsakyti: 2

[Šaltinis] Įdiekite eilutės panašumo algoritmą C#

[Kopijuoti nuorodą]
Paskelbta 2019-04-23 12:59:18 | | | |
Pastaruoju metu yra problema, kurią reikia išspręsti, tai yra, palyginti vartotojo įvestą eilutę ir sistemos gautą eilutę, jei klaida nėra labai didelė, sistema laikys, kad ji atitinka reikalavimus, ir geriausia nustatyti slenkstį.
Užsiimdami CAPTCHA atpažinimu, turite palyginti simbolių kodų panašumą ir naudoti "redagavimo atstumo algoritmą", kad įrašytumėte principą ir C# įgyvendinimą.

Pagal Baidu enciklopediją:

Redagavimo atstumas, taip pat žinomas kaip Levenshtein atstumas (taip pat žinomas kaip redagavimo atstumas), yra minimalus redagavimų skaičius, reikalingas norint perjungti iš vienos į kitą tarp dviejų eilučių, ir kuo didesnis atstumas, tuo labiau jos skiriasi. Leidimo redagavimo operacijos apima vieno simbolio pakeitimą kitu, simbolio įterpimą ir simbolio pašalinimą.

Pavyzdžiui, žodį kačiukas paverskite sėdėjimu:

Sitten (K→s)

Sittinas (E→I)

sėdėjimas (→g)

Rusų mokslininkas Vladimiras Levenšteinas šią koncepciją pasiūlė 1965 m. Iš čia ir kilo pavadinimas Levenšteino atstumas.

Pavyzdžiui

Jei str1="ivan", str2="ivan", tada skaičiuojama, kad jis lygus 0. Nekonvertuota. panašumas = 1-0 / Math.Max (str1.ilgis, str2 ilgis) = 1
Jei str1="ivan1", str2="ivan2", tada skaičiuojama, kad jis yra lygus 1. Str1 "1" konvertuojamas į "2", konvertuoja simbolį, taigi atstumas yra 1, panašumas = 1-1/Math.Max(str1.length, str2.length) = 0.8

Taikymas:

  • DNR analizė
  • Rašybos tikrinimas
  • Kalbos atpažinimas
  • Plagiato aptikimas



Algoritmas įdiegtas C#:

Bandymo kodas:






Remiantis bandymų rezultatais daroma išvada, kaderdvėarbaSkyrybos ženklaiStygos padėtisSkirtingi miestaiRezultatai, turintys įtakos panašumuiTodėl, lyginant eilučių atpažinimą, prieš iškviečiant algoritmą rekomenduojama pašalinti visus eilutės tarpus ir specialius simbolius

Išteklių:Hipersaito prisijungimas matomas.

"GitHub" taip pat yra biblioteka, skirta C# eilučių panašumų palyginimui

FuzzyString yra biblioteka, sukurta mano kasdieniam darbui, siekiant koordinuoti pavadinimų konvencijas tarp skirtingų tinklelio modelių. Aš pašalinau maitinimo sistemos specifinį kodą ir sujungiau tai, kas gali būti efektyviai naudojama kaip eilutės plėtinys, siekiant nustatyti apytikslę lygybę tarp dviejų eilučių. Visi čia naudojami algoritmai buvo išgauti iš internetinių šaltinių, konvertuoti į C# ir sukompiliuoti į šią biblioteką. Radau keletą kitų panašių atvirojo kodo įgyvendinimų, kurių nėra. NET / C#。 Pridėję *.dll prie savo projekto, gausite prieigą prie šio plėtinio ir atskirų plėtinių pagal ApproximatelyEquals() plėtinį.



Adresas:Hipersaito prisijungimas matomas.

Nuget įdiegti:

Į šį projektą įtraukti algoritmai:

  • Hamming atstumas
  • Jaccard atstumas
  • Jaro atstumas
  • Jaro-Winkler atstumas
  • Levenšteino atstumas
  • Ilgiausia viešoji
  • Ilgiausia bendra sekos eilutė
  • Persidengimo koeficientas
  • Ratcliff-Obershelp panašumas
  • Sorensen-kauliukų atstumas
  • Tanimoto koeficientas



Naudojimas:


Rezultatus:



(Pabaiga)




Ankstesnis:Programinės įrangos testavimo menas 3rd Edition pdf
Kitą:"Aštuonios duomenų analitikų kompetencijos" neužšifruoja viso kurso
Paskelbta 2019-05-06 13:11:34 |
Žinios ateina
Paskelbta 2021-09-07 15:01:05 |
Ar galima pamatyti kodą po atsakymo?
Atsakomybės apribojimas:
Visa programinė įranga, programavimo medžiaga ar straipsniai, kuriuos skelbia Code Farmer Network, yra skirti tik mokymosi ir mokslinių tyrimų tikslams; Aukščiau nurodytas turinys negali būti naudojamas komerciniais ar neteisėtais tikslais, priešingu atveju vartotojai prisiima visas pasekmes. Šioje svetainėje pateikiama informacija gaunama iš interneto, o ginčai dėl autorių teisių neturi nieko bendra su šia svetaine. Turite visiškai ištrinti aukščiau pateiktą turinį iš savo kompiuterio per 24 valandas nuo atsisiuntimo. Jei jums patinka programa, palaikykite autentišką programinę įrangą, įsigykite registraciją ir gaukite geresnes autentiškas paslaugas. Jei yra kokių nors pažeidimų, susisiekite su mumis el. paštu.

Mail To:help@itsvse.com