Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802

    Consiglio algoritmo riconoscimento e mappatura stringhe

    Salve a tutti, ho il seguente problema.

    Ho una serie di elementi (diverse migliaia) nel formato A che devo portare nel formato B. Ho quindi bisogno di un modo per fare una mappatura A->B (il viceversa non mi interessa).

    In input ho un singolo elemento di A e un gruppo di elementi di B. Un esempio è il seguente:

    Mi arriva MessageIdentification. Il suo corrispettivo lo devo trovare tra i seguenti:

    CreDtTm
    Authstn
    NbOfTxs
    MsgId
    CtrlSum
    InitgPty
    FwdgAgt

    (il valore giusto è ovviamente MsgId).

    Che algoritmo potrei usare?

    Al momento ho pensato di estrarmi le lettere maiuscole e confrontare quelle. Quindi:
    MessageIdentification = MI

    CreDtTm = CDT
    Authstn = A
    NbOfTxs = NOT
    MsgId = MI
    CtrlSum = CS
    InitgPty = IP
    FwdgAgt = FA

    In questo modo però ho il problema che se ho due campi con le stesse lettere maiuscole rischio di mappare il campo sbagliato. Qualche idea?

    Grazie


    edit: ho postato in java perché sto usando Java ma si potrebbe spostare in Programmazione visto che alla fine si parla solo di algoritmo
    SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
    Di questo libro e degli altri (blog personale di recensioni libri) | ​NO M.P. TECNICI

  2. #2
    Purtroppo ancora siamo lontani dai programmi senzienti e dall I.A.
    Se l'input che ricevi non segue determinate regole non vedo il modo di trovare un algoritmo che ti permetta di "riconoscere" tale input.

  3. #3
    Utente di HTML.it
    Registrato dal
    Sep 2012
    Messaggi
    707
    Concordo con francesco.muia, non vedo altra soluzione, di come hai detto.

    In caso di collisione salta la stringa e la aggiungi a una lista di collisioni che tratterai alla fine a manina.

  4. #4
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802
    Originariamente inviato da francesco.muia
    Purtroppo ancora siamo lontani dai programmi senzienti e dall I.A.
    Se l'input che ricevi non segue determinate regole non vedo il modo di trovare un algoritmo che ti permetta di "riconoscere" tale input.
    Eh lo so ma speravo esistesse un algoritmo, anche euristico, per risolvere il problema.

    L'unica regola che c'è è che il campo di B è una abbreviazione di quello di A, tutto qua.

    In caso di "stesse maiuscole" potrei verificare altri caratteri, volevi sapere se il problema era già stato affrontato... Ho perso un po' di tempo a googlare prima di scrivere qui ma non ho trovato nulla di utile


    Originariamente inviato da c0der
    In caso di collisione salta la stringa e la aggiungi a una lista di collisioni che tratterai alla fine a manina.
    Era quello che volevo evitare, ma mi sa che sarà la strada che dovrò percorrere.

    Vi ringrazio
    SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
    Di questo libro e degli altri (blog personale di recensioni libri) | ​NO M.P. TECNICI

  5. #5
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    Pseudo-Algoritmo: per ciascun elemento di B conti quanti caratteri nell'ordine, sono presenti nel messaggio in arrivo A.

    Bisogna fare delle assunzioni però: siamo sicuri che i messaggi "A" in arrivo siano tutti sensati? Avranno tutti un certo formato standard (mi spiego: "MessageIdentification" di cui sopra, sarà sempre "MessageIdentification" o potrebbe diventare "messaggiodiidentificazione", "IdentMsg" o altro?)

    Se i messaggi sono tutti sensati, dovresti ottenere un caso in cui il 100% dei caratteri di un qualche elemento di B sono presenti, ed in ordine, nel messaggio A. Se non fosse così, avrai dei messaggi A in cui i caratteri dei B in ordine saranno meno del 100%. A questo punto decidi una soglia (tipo 75%) al disotto della quale il messaggio sarà da processare a mano.
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

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 © 2025 vBulletin Solutions, Inc. All rights reserved.