Questo articolo è un articolo speculare di traduzione automatica, clicca qui per saltare all'articolo originale.

Vista: 56998|Risposta: 2

[Fonte] Implementa l'algoritmo di similitudine delle stringhe in C#

[Copiato link]
Pubblicato su 23/04/2019 12:59:18 | | | |
Recentemente, c'è un problema che deve essere affrontato, cioè confrontare la stringa inserita dall'utente con quella ottenuta dal sistema; se l'errore non è molto grande, il sistema la considererà soddisfatta dei requisiti ed è meglio impostare una soglia.
Quando si utilizza il riconoscimento CAPTCHA, è necessario confrontare la somiglianza dei codici caratteri e utilizzare l'"algoritmo della distanza di modifica" per tracciare il principio e l'implementazione di C#.

Secondo l'Enciclopedia Baidu:

La distanza di modifica, nota anche come distanza di Levenshtein (nota anche come distanza di modifica), è il numero minimo di modifiche necessarie per passare da una all'altra tra due stringhe, e maggiore è la distanza, più sono diverse. Le operazioni di modifica autorizzate includono la sostituzione di un carattere con un altro, l'inserimento di un personaggio e la rimozione di un personaggio.

Ad esempio, converti la parola gattino in sedendo:

Sitten (K→s)

Sittin (E→i)

Seduta (→G)

Lo scienziato russo Vladimir Levenshtein propose questo concetto nel 1965. Da qui il nome Distanza di Levenshtein.

Per esempio

Se str1="ivan", str2="ivan", allora si calcola come uguale a 0. Non convertito. somiglianza=1-0/Math.Max(str1.lunghezza,str2.lunghezza)=1
Se str1="ivan1", str2="ivan2", allora si calcola come uguale a 1. Il "1" di str1 si converte in "2", converte un carattere, quindi la distanza è 1, somiglianza = 1-1/Math.Max(str1.lunghezza, str2.lunghezza) = 0,8

Applicazione:

  • Analisi del DNA
  • Correzione ortografica
  • Riconoscimento vocale
  • Rilevamento del plagio



L'algoritmo è implementato in C#:

Codice di test:






Dai risultati del test si conclude chespaziooPunteggiaturaPosizione della cordaDiverse cittàRisultati che influenzano la somiglianzaPertanto, quando si confronta il riconoscimento delle stringhe, si raccomanda di rimuovere tutti gli spazi e i simboli speciali nella stringa prima di chiamare l'algoritmo

Risorse:Il login del link ipertestuale è visibile.

Su GitHub c'è anche una libreria per confronti di somiglianza di stringhe C#

FuzzyString è una libreria sviluppata per il mio lavoro quotidiano al fine di coordinare le convenzioni di denominazione tra diversi modelli di griglia. Ho rimosso il codice specifico del sistema di alimentazione e assemblato ciò che può essere effettivamente usato come estensione di stringhe per determinare l'uguaglianza approssimativa tra le due stringhe. Tutti gli algoritmi utilizzati qui sono stati estratti da fonti online, convertiti in C# e compilati in questa libreria. Ho trovato diverse altre implementazioni open source simili che non sono disponibili per . NET / C#。 Aggiungere *.dll al tuo progetto ti darà accesso a questa estensione e alle singole estensioni sotto l'estensione ApproximatelyEquals().



Indirizzo:Il login del link ipertestuale è visibile.

Installazione Nuget:

Algoritmi inclusi in questo progetto:

  • Distanza di Hamming
  • Distanza di Jaccard
  • Distanza di Jaro
  • Distanza Jaro-Winkler
  • Distanza di Levenshtein
  • Il pubblico più longevo
  • La sottostringa comune più lunga della sottosequenza
  • Coefficiente di sovrapposizione
  • Somiglianza tra Ratcliff e Obershelp
  • Distanza di Sorensen-Dice
  • Coefficiente di Tanimoto



Utilizzo:


Risultato:



(Fine)




Precedente:L'arte del testing software 3ª edizione pdf
Prossimo:"Otto Competenze degli Analisti di Dati" non cripta l'intero corso
Pubblicato su 06/05/2019 13:11:34 |
La conoscenza sta arrivando
Pubblicato su 07/09/2021 15:01:05 |
È possibile vedere il codice dopo aver risposto?
Disconoscimento:
Tutto il software, i materiali di programmazione o gli articoli pubblicati dalla Code Farmer Network sono destinati esclusivamente all'apprendimento e alla ricerca; I contenuti sopra elencati non devono essere utilizzati per scopi commerciali o illegali, altrimenti gli utenti dovranno sostenere tutte le conseguenze. Le informazioni su questo sito provengono da Internet, e le controversie sul copyright non hanno nulla a che fare con questo sito. Devi eliminare completamente i contenuti sopra elencati dal tuo computer entro 24 ore dal download. Se ti piace il programma, ti preghiamo di supportare software autentico, acquistare la registrazione e ottenere servizi autentici migliori. In caso di violazione, vi preghiamo di contattarci via email.

Mail To:help@itsvse.com