|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Apr 2002
Città: Palermo
Messaggi: 4913
|
Generare casualmente stringhe e frasi di senso compiuto
Ciao ragazzi, avrei la necessità di scrivere (in java) un generatore casuale di stringhe e frasi.
La parte più difficile è quella di costruire anche alcune frasi di senso compiuto. Faccio un esempio banale. Supponiamo voglia creare e memorizzare in un DB un nuovo libro, con i campi: -Autore: Pinco Pallino -Titolo: Rocco e i suoi fratelli -Casa editrice: Pornadori -Data: 30/10/2007 -.... I valori numerici è abbastanza semplice crearli random, ma per le stringhe e frasi? Esistono dei dizionari da cui si possa recuperare delle informazioni? Che soluzione consigliate? grazie
__________________
Sun Certified Java Programmer - Sun Certified Web Component Developer - Sun Certified Business Component Developer |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Apr 2002
Città: Palermo
Messaggi: 4913
|
Dai, ho voluto fare un esempio simpatico
Cerco qualche consiglio serio
__________________
Sun Certified Java Programmer - Sun Certified Web Component Developer - Sun Certified Business Component Developer |
|
|
|
|
|
#3 |
|
Senior Member
Iscritto dal: Aug 2001
Città: San Francisco, CA, USA
Messaggi: 13827
|
Il problema nel tuo caso è che quelle frasi sono tutte tranne che casuali
Cioè tutte quelle stringhe appartengono ad un contesto (nel tuo esempio un record di un libro) e ad ogni riga (autore, libro, casa editrice) sono state scritte stringhe contestualizzate. L'autore che hai scritto è in effetti un nome valido (parodico, certo) di persona, stessa cosa per il nome del libro e casa editrice. Sarebbe stato più strano e "casuale" se avessi messo come Autore "Pornadori" e casa editrice "Rocco i suoi fratelli". Insomma, spero di aver reso chiaro il concetto che quel pezzo di testo non è casuale Almeno come minimo devi specificare un contesto per fare una cosa del genere. Ciao EDIT: Se il tuo scopo è creare solo un "generatore di libri fasulli" allora potresti creare dei file database dove tenere i nomi di autori fasulli e i titoli inventati. A quel punto fai in modo che, all'atto della generazione del libro , il tuo programma peschi a caso tra , rispettivamente, gli autori , i titoli, le case editrici, le date ... etc memorizzate nel file di database (che può essere scritto in XML o come vuoi tu).
__________________
GPU Compiler Engineer |
|
|
|
|
|
#4 |
|
Senior Member
Iscritto dal: Nov 2000
Messaggi: 455
|
Un algoritmo naive per un generatore casuale di frasi lo trovi nel libro "the practice of programming" di pike.
In pratica è il seguente (esempio con profondità 2). Prendi un paio di frasi (puoi benissimo usare dei capoversi di libri o roba del genere) e spezzetti le frasi a gruppi di 2 parole (2 è la profondita). tipo Il gatto dorme in santa pace sul letto. Il papa parla dalla santa sede diventa <inizio> il il gatto gatto dorme dorme in in santa santa pace pace sul sul letto letto <fine>. <inizio> il il papa papa parla parla dalla dalla santa santa sede sede <fine>. poi prendi i pezzi e li valuti con un generatore random dove il primo pezzo fa match per scegliere il secondo. esempio: devi scegliere un inizio (qui ne hai 2 identici (esempio un po' sfigato) il poi cerchi tutti quelli che fanno match il papa, il gatto e scegli random il gatto poi iteri e puoi arrivare ad una cosa del tipo il gatto dorme in stanta sede. ovviamente piu consideri la profondità alta 3, 4 parole e piu consideri le parole appartententi alla parte inizalie per fare match meno saranno le frasi disponibili ma sempre piu sensate. Sono stato spiegato? feyd
__________________
Macbook Air 11" 2.0Ghz - 8GB RAM - 256GB SSD (Mid '12) |
|
|
|
|
|
#5 |
|
Senior Member
Iscritto dal: Apr 2002
Città: Palermo
Messaggi: 4913
|
grazie feyd, la tua idea può essere la base per un buon algoritmo!
ci rifletterò
__________________
Sun Certified Java Programmer - Sun Certified Web Component Developer - Sun Certified Business Component Developer |
|
|
|
|
|
#6 |
|
Moderatore
Iscritto dal: Nov 2003
Messaggi: 16213
|
Potresti anche dare un'occhiata a come funziona il Polygen, e (se te la senti) esaminare il suo codice sorgente.
Ti consiglio, in particolare, le grammatiche "Nomi di dischi metal", "Armi di Goldrake", e "Ordinanze comunali di blocco del traffico"
__________________
Ubuntu è un'antica parola africana che significa "non so configurare Debian" Scienza e tecnica: Matematica - Fisica - Chimica - Informatica - Software scientifico - Consulti medici REGOLAMENTO DarthMaul = Asus FX505 Ryzen 7 3700U 8GB GeForce GTX 1650 Win10 + Ubuntu |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 12:26.



















