2012-06-27 14 views
5

Mi sono svegliato ieri sera con un pensiero nella mia testa: PHP può essere utilizzato per generare parole casuali che suonano naturali? (Come i versi di Lorem ipsum).Generazione di linguaggio naturale in PHP

  1. Parole essendo singola lettera: 'a, e, i, o, u'
  2. Parole essendo lettera doppia: qualsiasi combinazione di vocale e consonante.
  3. La lunghezza massima della parola sarebbe di 6 lettere.

Lo scopo sarebbe quello di riempire lo spazio su modelli di siti web con questo invece di 'Lorem ipsum', o inviare e-mail di prova per alcuni script PHP per assicurarsi la posta() funziona.

Ma i miei pensieri su come funzionerebbe sono che PHP genererebbe parole di lunghezza casuale, 1-6 lettere ciascuna, con alcune regole "non fare questo" come "nessuna parola di una sola lettera l'una accanto all'altra "o" no tre vocali di fila "o" nessuna tre consonanti di fila "e aggiunge automaticamente punteggiatura e maiuscole dopo tra 4 e 8 parole a una frase.

Questo sarebbe possibile e, in tal caso, ci sono delle classi o funzioni preesistenti che potrei implementare?

+1

Non vedo nulla nel vostro suggerimento che non sarebbe possibile. Quindi, la risposta è probabile "Sì, è possibile" - ma è davvero questa la tua domanda? – ametren

+0

possibile? sicuro. factible? non sarei così sicuro forse può essere fatto con un semplice script prolog (o un altro languaje logico) in grado di risolvere il tuo problema più facilmente. quindi puoi chiamarlo da php. (solo i miei duri, fai quello che vuoi) – Jarry

+0

@ametren - Questione modificata, più alla ricerca di un punto di partenza piuttosto che avviare un documento PHP vuoto e tentare di riversare la mia mente su di esso. – ionFish

risposta

2

si può prendere l'approccio grammatica context-free: http://en.wikipedia.org/wiki/Context-free_grammar

<word> := <vowel> | <consonant><remaining word following consonant> | <vowel><remaining word following vowel> 
<vowel> := a|e|i|o|u 
<consonant> := b|c|d|f|g|... 
<word following vowel> := <consonant><remaining word following consonant> 
...and so on 

Implementare che la grammatica in qualsiasi linguaggio procedurale (C e PHP inclusi), quindi iniziare a generare le parole in base alla grammatica.

non so di nessun framework PHP di analisi generici, ma si può guardare le migliori pratiche per la loro scrittura: Best practices for writing a programming language parser

Problemi correlati