Pagina 2 di 2 primaprima 1 2
Visualizzazione dei risultati da 11 a 14 su 14
  1. #11
    Anche... vediamo cosa salta fuori

  2. #12
    Potresti fare una funzione del genere.

    Visto che da quello che si è capito più o meno lo stringhe sono uguali
    con l'aggiunta di qualche imperfezione (una lettera di meno, o una diversa ecc...)

    Cicli sulla Lenght della stringa Actual, carattere per carattere confronti
    l'Actual string con la tua Expected, se trovi una differenza te la registri,
    la registrazione potrebbe essere l'incrementazione di un count oppure aggiungere
    il carattere sbagliato in una collection (così alla fine sai anche quali sono i caratteri sbagliati)
    Dopo di chè sostituisci il char errato della stringa Actual con il corretto carattere della stringa
    Expected, la stringa risultante la passi in input all funzione stessa (quindi stiamo parlando di una funzione ricorsiva)
    La signature potrebbe essere tipo

    FindNumberOfDifferentChar(string expected, string actual)

    vedi te come gestirti il risultato, se una variabile a livello di classe o di ritorno dal metodo oppure
    un parametro ref: FindNumberOfDifferentChar(string expected, string actual,ref Collection<string> wrongChars)

    nel caso implementassi il metodo fammi sapere se ha funzionato.
    Tnx

  3. #13
    Utente di HTML.it
    Registrato dal
    Jul 2008
    Messaggi
    760
    Originariamente inviato da eziogsv
    fondamentalmente voglio registrare QUANTI errori fa un OCR durante una sequenza di un centinaio di letture di una stessa frase, e QUALI LETTERE sbaglia a leggere (o toglie/aggiunge).
    Sarebbe importante sapere se hai a disposizione la frase corretta.
    Intendo dire che una cosa è confrontare ogni lettura con un testo di riferimento corretto, per "misurare" l'affidabilità del lettore; altra cosa è confrontare le varie letture tra di loro, al fine di risalire alla frase corretta basandosi su criteri statistici e di conbergenza.

    Nel primo caso, più semplice, potresti provare ad implementare un algoritmo che "marca", nelle due frasi, tutti i caratteri che sono presenti in ambedue le frasi e nella stessa sequenza. Alla fine, i caratteri "non marcati" nell'una e nell'altra frase sarebbero già una buona base per trarre delle conclusioni.

  4. #14
    fatto... molto artigianale probabilmente, ma funge

    dunque, la frase originale la ho sicuramente: è quella che viene scansita dall' OCR

    il codice parte dal concetto che la scansione produce normalmente due errori:

    1) viene letta una lettera per un altra
    2) una lettera viene presa per due lettere (o per una lettera e uno spazio)

    molto più raramente una lettera non viene letta, o viene scambiata per uno spazio

    partendo da queste considerazioni, che semplificano di molto il lavoro, ecco il codice:

    codice:
            Dim DD As String = "casa mia è bella"     'il testo originale, noto
            Dim EE As String = "casta mea è belfa"    'il testo letto dall' OCR
    
            Dim Longer, Shorter As String
            Dim counter As Short = 0
            If DD.Length > EE.Length Then
                Longer = DD.Replace(" ", "")
                Shorter = EE.Replace(" ", "")
            Else
                Longer = EE.Replace(" ", "")
                Shorter = DD.Replace(" ", "")
            End If
            Dim Report(Shorter.Length - 1) As String
            For W As Short = 0 To Shorter.Length - 1
                If Shorter.Substring(W, 1) = Longer.Substring(W, 1) Then GoTo 5
                Report(W) = Longer.Substring(W, 1)
                counter = counter + 1
                If Shorter.Length = Longer.Length Then GoTo 5
                Longer = Longer.Remove(W, 1)
                If Shorter.Substring(W, 1) = Longer.Substring(W, 1) Then GoTo 5
                Report(W) = Longer.Substring(W, 1)
                counter = counter + 1
    5:      Next
    Report() mi dice la lettera diversa e la sua posizione, counter quanti errori in totale

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.