El pipotrón

El pipotrón

> Programación

El pipotron es un algoritmo que le permite crear aleatoriamente una oración a partir de palabras predefinidas colocadas de extremo a extremo. El objetivo principal de pipotron es el entretenimiento, porque debido a que el texto se genera aleatoriamente, generalmente tiene sentido y suena extraño y divertido.

Para crear un pipotron, primero debe escribir una base de datos (o BDD), es decir, tablas que contengan la lista de palabras que potencialmente podrían ser parte de la oración, luego l 'algoritmo en sí mismo que se encargará de construir una oración de la base de datos, eligiendo palabras aleatorias de ella. Por supuesto, el texto generado debe tener la gramática, la conjugación y la ortografía correctas para lograr una oración satisfactoria, aunque el significado en sí puede ser peculiar y poco convencional.

El pipotron es un algoritmo con una complejidad extremadamente variable: puede producir fácilmente una oración simple compuesta por un sujeto y un verbo preconstruidos, así como oraciones complejas con varias proposiciones, concordancias verbales, manejo de género y número, complementos circunstanciales...

Ejemplo de pipotron rudimentario

Esa es la teoría, ahora un poco de práctica. Vamos a escribir un pipotron muy simple (en LeekScript), como la primera categoría mencionada anteriormente.

El DB Las sentencias generadas por nuestro pipotron estarán compuestas:

tendremos por tanto dos tablas: una tabla de materias y una tabla de verbos:

sujetos globales = []; verbos globales = [];

Esta es ahora una de las partes más divertidas de hacer un pipotron: elegir el contenido de la base de datos. De hecho, para que nuestras oraciones no se parezcan todas, debemos introducir tantas palabras como sea posible en nuestra base de datos.

En los asuntos, por ejemplo, pondremos las siguientes cadenas:

y en verbos:

Estos son ejemplos, por supuesto puedes poner las palabras que quieras en tu base de datos (depende de ti ser ingenioso y original), pero ATENCIÓN, para asegurarte de que la oración es correcta, solo pon verbos y temas que corresponden entre sí! Por ejemplo, todos mis verbos se conjugan en tercera persona del singular porque todos mis sujetos son sintagmas nominales singulares. Si hubiera puesto "los perros" en lugar de "el perro", podría haberme encontrado con una oración como "los perros duermen" que, por supuesto, es incorrecta.

Además, es muy recomendable colocar en los arreglos solo cadenas del tipo preciso que sugiere el nombre del arreglo. Por ejemplo, en verbos, solo pongo verbos, y no verbos con adverbio ("brevemente rápido" por ejemplo) o con COD. En los sujetos no puse ningún nombre o adjetivo aislado, solo sujetos completos. Esta precaución te ayudará en pipotrones más complejos para aclarar tu código y limitar los errores gramaticales.

Ahora tenemos una base de datos completa, compuesta por sujetos y verbos:

materias globales = [ "el perro", "Un avión", "el gran pastel", "Luke Skywalker", "un poni rosa", "el canguro de mi abuela", "un gran globo peludo lleno de mayonesa rumana" ]; verbos globales = [ "corre", "deslizar", "llamadas salientes", "crece", "dormir", "brilla", "se sienta" ];

El algoritmo

Ahora que tenemos nuestra base de datos, podemos pasar al algoritmo pipotron, que colocaremos en una función getPipotron. Nuestro algoritmo debe:

Le aconsejo que cree una función randTab que tome un valor aleatorio de una matriz no asociativa. Es por tanto la función que llevará a cabo la famosa elección de palabras aleatorias característica del pipotron. Debe tener un aspecto como este:

función aleatoria (matriz) { return matriz[randInt(0, cuenta(matriz))]; }

Ahora podemos crear una variable de frase que contendrá la frase a decir:

función getPipotron(){ var sentencia = random(sujetos) + " " + random(verbos); } función aleatoria (matriz) { return matriz[randInt(0, cuenta(matriz))]; }

El problema es que nuestra oración no es una. De hecho, no tiene una letra mayúscula al principio, ni un punto al final. Por lo tanto, debemos crear una función addPunctuation para procesar nuestra oración:

función agregarPuntuación(@texto){ texto += "."; // mayúsculas texto = toUpper(charAt(texto, 0)) + subcadena(texto, 1, longitud(texto) - 1); }

¡Todo lo que queda es aplicar esta función a nuestra frase y devolver frase y nuestro pipotron está terminado!

materias globales = [ "el perro", "Un avión", "el gran pastel", "Luke Skywalker", "un pony r