Buongiorno a tutti...sto imparando a programmare con ruby ma non ho ancora acquistato dimestichezza nel combinare diverse cose; Ho un file txt che contiene parole e simboli di punteggiatura SEPARATI DA UNO SPAZIO (è un testo tokenizzato). Devo scrivere un metodo che prenda come argomento d'entrata il file con il testo tokenizzato per ottenere alla fine un array di tokens. Il risultato dovrebbe essere il seguente. Chiamando il metodo e inserendo anche il nome del file mi dovrebbe apparire sullo schermo il contenuto dell'array che peró dovrei organizzare in questo modo. token 1= La token 2= casa token 3= è token 4= grande token 5= . Grazie
on 2010-08-04 10:20
on 2010-08-04 11:02
ciao Francisco, prima di tutto, la prossima volta usa un subject più consono ed in minuscolo (sai quella roba di *netiquette*) ;) in secondo luogo, con tutta la disponibilità che puoi trovare qui, non aspettarti che qualcuno ti scriva il programmino dal principio, anche senza ulteriori dettagli, ad esempio come è strutturato il file da leggere... ad ogni modo, il procedimento da cui potresti cominciare è scomporlo in problemi più semplici: - leggi il nome del file in input - apri il file e leggi le linee - per ciascuna linea tokenizza in base a qualche regex (o magari è anche più semplice) e mettilo in un array - etc... come vedi sono operazioni molto semplici prese singolarmente ;) ciao, A. Il 04/08/2010 10:20, Francisco Martinez ha scritto:
on 2010-08-04 12:03
Mi dispiace, ma come ho spiegato sono nuovo del settore; grazie comunque per la disponibilitá. F.
on 2010-08-04 14:47
On Aug 4, 2010, at 10:20 AM, Francisco Martinez wrote: > Ho un file txt che contiene parole e simboli di punteggiatura SEPARATI > DA UNO SPAZIO (è un testo tokenizzato). > Devo scrivere un metodo che prenda come argomento d'entrata il file con > il testo tokenizzato per ottenere alla fine un array di tokens. Il > risultato dovrebbe essere il seguente. [..] > > token 1= La > token 2= casa > token 3= è > token 4= grande > token 5= . $ irb ruby-1.9.1-p378 > text = %(antani tapioca supercazzola come se fosse sbiriguda .) => "antani tapioca supercazzola come se fosse sbiriguda ." # puoi usare File.read('file.txt') al posto dell'inizializzazione statica ruby-1.9.1-p378 > tokens = text.split(/ +/) => ["antani", "tapioca", "supercazzola", "come", "se", "fosse", "sbiriguda", "."] # il '+' nella regex tratta più spazi consecutivi come uno singolo ruby-1.9.1-p378 > i=0; tokens.inject({}) {|h, tok| h.update("token #{i+=1}" => tok)} => {"token 1"=>"antani", "token 2"=>"tapioca", "token 3"=>"supercazzola", "token 4"=>"come", "token 5"=>"se", "token 6"=>"fosse", "token 7"=>"sbiriguda", "token 8"=>"."} Non mi è molto chiara la necessità dell'ultima rappresentazione che richiedi, anche per questo l'implementazione non è il massimo della bellezza. :-) HTH, ~Marcello -- ~ marcello.barnaba@gmail.com ~ http://www.linkedin.com/in/marcellobarnaba ~ http://sindro.me/
Please log in before posting. Registration is free and takes only a minute.
Existing account
(Switch to SSL-encrypted connection)
NEW: Do you have a Google/GoogleMail or Yahoo account? No registration required!
Log in with Google account | Log in with Yahoo account
Log in with Google account | Log in with Yahoo account
No account? Register here.