2012-06-27 14 views
5

Me desperté anoche con un pensamiento en mi cabeza: ¿Se puede usar PHP para generar palabras al azar que suenen naturales? (Como los versos de Lorem ipsum).Generación de lenguaje natural en PHP

  1. palabras que son de una sola letra: 'a, e, i, o, u'
  2. palabras que se doble carta: cualquier combinación de vocales y consonantes.
  3. La longitud máxima de la palabra sería de seis letras.

El propósito sería llenar espacio en las plantillas de sitios web con este en lugar de 'Lorem ipsum', o enviar correos electrónicos de prueba para ciertos scripts PHP para asegurarse de que mail() funcione.

Pero mis pensamientos sobre cómo funcionaría es que PHP generaría palabras de longitud aleatoria, 1-6 letras cada una, con algunas reglas de "no hacer esto" como "no hay dos palabras de una sola letra una al lado de la otra" "o" no hay tres vocales seguidas "o" no hay tres consonantes seguidas "y agrega automáticamente signos de puntuación y mayúsculas después de entre 4 y 8 palabras a una oración.

¿Sería esto posible y, de ser así, hay clases o funciones preexistentes que podría implementar?

+1

no veo nada en su sugerencia de que no sería posible. Entonces, la respuesta es probable "Sí, es posible", pero ¿esa es realmente tu pregunta? – ametren

+0

posible? Por supuesto. factible? No estaría tan seguro. tal vez se puede hacer con un simple script de prólogo (u otro lenguaje lógico) que puede resolver su problema más fácilmente. entonces puedes llamarlo desde php. (solo mis matones, haz lo que quieras) – Jarry

+0

@ametren - Pregunta editada, más buscando un lugar para comenzar en lugar de comenzar un documento en blanco de PHP e intento hacerme a la idea. – ionFish

Respuesta

2

se puede tomar el enfoque de la gramática libre de contexto: 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 

implemento que la gramática en cualquier lenguaje de procedimiento (C y PHP incluidos), a continuación, iniciar la generación de palabras basadas en la gramática.

no sé de ningún marcos PHP de análisis genéricos, pero se puede ver en las mejores prácticas para escribirlos: Best practices for writing a programming language parser

Cuestiones relacionadas