• Super User

    Algoritmo per scrittura sms

    Ciao ragazzi,
    ho necessità di scrivere una specie di algoritmo per la scrittura degli sms via tastierino numerico.

    Immaginando di voler scrivere CIAO devo fare in modo che l'utente possa scrivere:

    2426 (T9 like)
    oppure
    2224442666

    Dato un elenco di parole (in un db) dovrei proporre delle scelte nel momento in cui ho al max 10 scelte possibili di parole.
    Posso gestire il codice ogni volta che viene premuto un pulsante (immaginate un refresh della pagina ogni volta che un tasto viene premuto, quindi posso far girare lo stesso codice)

    Che algoritmo (non sto cercando il codice php, bensi il metodo) mi consigliereste?

    Ciaociao!


  • Super User

    Perdona la curiosità, ma a che ti serve? Cioè, è un'esercitazione per un esame di informatica o cosa?


  • Super User

    Quasi, serve per un progetto in voiceXML
    😉


  • Super User

    Capisco.

    Più che PHP+MySQL, direi che è il candidato ideale per un'implementazione in AJAX (à la [url=http://www.google.com/webhp?complete=1&hl=en]Gùgol* Suggests)...

    Se ti serve solo l'algoritmo, comunque, penso ne troverai a bizzeffe: tanto per cominciare, prova a cercare "tree traversal" e vedi un po' cosa viene fuori. 😉

    A proposito della mia domanda: volevo cercare di capire a cosa servisse una cosa del genere. Mi spiego: dove c'è un keypad, di solito, c'è anche una tastiera... Se riesci a essere un po' più specifico, forse possiamo aiutarti meglio.

    *Per Giorgiotave: potresti togliere per favore l'acronym+link automatico su "Google" (credo lo sappiamo tutti che è un motore di ricerca). 😉


  • Super User

    mmm, mi è poco chiaro tutto..

    Sia la parte di AJAX, sia la parte del tree traversal...

    Posso chiederti di essere piu preciso? Grasias! 😄


  • Super User

    Per capire "intuitivamente" che cos'è AJAX senza troppe spiegazioni, niente di meglio di provare Gùgol* Suggests (vedi link sopra).

    Per quanto riguarda l'attraversamento di un albero, è il tipo di problema informatico (classico) nel quale ricade quello che devi fare --sempre se ho ben capito quello che devi fare: hai un insieme di parole codificate in un dizionario nel quale a ciascuna parola corrisponde una determinata sequenza di numeri, ma questa corrispondenza non è biunivoca (infatti, nel T9, ciascun tasto numerico da 2 a 9 è associato a 3-4 lettere dell'alfabeto). Puoi vedere questo dizionario come un albero (nel senso informatico del termine). Il tuo problema è trovare tutte le parole nel tuo dizionario che corrispondono a una determinata sequenza di numeri, e suggerire in tempo reale possibili alternative. Per fare questo, secondo me devi usare un algoritmo di attraversamento dell'albero. Questo è tutto quello che mi viene in mente a quest'ora, e con le informazioni a disposizione, sorry.

    • Per Giorgiotave: continuerò a scriverlo così finché non ti deciderai a togliere l'acronym+link automatico.

  • Super User

    per AJAX ho capito 😉

    Solo che l'applicazione sarà telefonica quindi AJAX non va bene.

    Per l'attraversamente dell'albero hai sicuramente ragione, ma mi devo rileggere bene quello che hai scritto.

    Associeresti ai numeri N lettere, giusto?

    però scusa, facciamo qualche esempio

    se io digito
    2 significa che la mia parola comincia con A oppure B oppure C
    digitando ancora 2 la mia parola dovrebbe diventare
    AA, AB, AC, BA, BB, BC, CA, CB, CC oppure semplicemente B

    Devo pensarci su bene..eheh
    Intanto grazie per tutti i consigli;)


  • User Attivo

    @Tuonorosso said:

    digitando ancora 2 la mia parola dovrebbe diventare
    AA, AB, AC, BA, BB, BC, CA, CB, CC oppure semplicemente B

    Non é proprio così, se sei impostato in modalità T9 vale la prima, se sei in modalità normale vale la seconda.


  • Super User

    purtroppo non posso far scegliere prima il modo di scrittura...


  • Super User

    ci sto provando tuono.. ci sto provando 😄

    mi intrippa questo algoritmo. se mi viene qualche idea e non sarà troppo tardi te la vendo in cambio di un backlink 😛


  • Super User

    o in cambio di un sito eh? 😄


  • Super User

    urkis!!!
    allora lo sviluppo subito questo algoritmo 😄


  • User Attivo

    @Tuonorosso said:

    purtroppo non posso far scegliere prima il modo di scrittura...

    se non decidi prima la vedo dura.... anche lasciando stare l'algoritmo e ragionando da umani come fai a gestire la cosa? Dovresti controllare, quado ha finito di digitare, a quale modo ha fatto riferimento. Però nel frattempo cosa visualizzi? diventa un casotto anche per chi scrive :bho:


  • Super User

    no beh dai, non penso sia così assurdo...

    Tra l'altro devo gestire la cosa ad ogni tasto premuto... :mmm:


  • User Attivo

    non dico assurdo, però complicato anche per chi scrive...

    non riesco a immaginarmi come gestire la cosa. Mi spiego meglio, tu nel momento in cui visualizzi l'output (dopo ogni pressione di un numero) devi decidere che tipo di sistema usare. Però a metà del processo puoi scoprire di aver usato quello sbagliato e quindi devi riscrivere il tutto modificando il testo dell'utente che fino a quel momento si trovava con delle lettere senza senso... senza contare le parole uguali....
    come
    T9: AREE 2733
    e senza T9
    APE 2733


  • Super User

    è esatto, l'unico vantaggio che ho è che l'utente non vede quello che scrive, ma io gli propongo delle scelte solo quando sono < 10 😉


  • Super User

    Allora, vista la complessità della cosa voglio partire per gradi.

    Partirò dallo scrivere l'algoritmo del T9.

    Di conseguenza, dato un dizionario, devo fare in modo che l'utente possa scrivere uno di quei vocaboli tramite il T9.

    Vediamo un po se così riesco a venirne fuori..heeh 😄


  • Super User

    @Tuonorosso said:

    Partirò dallo scrivere l'algoritmo del T9.

    Di conseguenza, dato un dizionario, devo fare in modo che l'utente possa scrivere uno di quei vocaboli tramite il T9.

    Visti questi?

    [url=http://www.acadjournal.com/2003/v10/part1/p1/]Algoritmo
    [url=http://ulisse.polito.it/matdid/3ing_eln_L2170_TO_0/Valenzano/quaderno/quaderno%202005/esercitazione%204.zip]Dizionario

    Per capire quale modalità usare (T9 o normale) potrebbe tornare utile tener conto che senza T9 l'utente tende a premere più volte gli stessi tasti.

    :ciauz:


  • Super User

    grazie mille Claudio!!

    Utilissimi questi link! 😮


  • User Newbie

    @claudioweb said:

    Visti questi?

    Algoritmo
    Dizionario

    Per capire quale modalità usare (T9 o normale) potrebbe tornare utile tener conto che senza T9 l'utente tende a premere più volte gli stessi tasti.

    :ciauz:

    Ciao scusate a me interssa molto l'algoritmo del T9 visto che devo realizzare un applicazione che mi conta il numero di pressioni dei tasti per scrivere una data parola uttilizzando proprio il T9. La domanda è questa: l'algoritmo che ce nel link e il vero t9? il secondo link a me non funge!
    vi prego aiutatemi, ho urgenza!

    grazie in anticipo