Harry Potter Automatic Generator

11 de Respuestas

  1. pseudopodo says:

    Muy bueno :-D Me recuerda el postmodern generator y similares…
    ¿Cómo lo haces?

  2. Ni! says:

    Gracias, pseudópodo. Me alegro de que te hayas dado cuenta de que para generar las parrafadas no basta con un randomize de frases en javascript :) De hecho, es bastante más complicado.

    Para hacerlo tuve que construirme un programa que recibe un fichero en el que se define una gramática y se dedica a generar producciones al azar. Por supuesto, esto a secas solamente daría una serie de frases enlazadas sin relación entre ellas y yo quería ser capaz de generar palabras al azar en castellano, para lo que había que asegurar que los artículos y adjetivos concordasen con los nombres y los pronombres, y el número de los verbos con el de sus sujetos. Así que me inventé una definición de “bloques de texto” que se sustituyen en su primera aparición en una frase y pueden tener género y número, y un pseudo-lenguaje que indicase cuándo el género o el número se definen explícitamente dentro de un bloque y cuándo se toman de otro bloque para asegurar la concordancia. Si la producción de un bloque contiene otros bloques, se continúa generando recursivamente. A eso le añadí bloques opcionales que se pueden generar o no, bloques de código para definir variables, y condiciones para filtrar las producciones a generar dependiendo de los valores de los bloques ya generados o de las variables definidas previamente (para poder hacer referencias a frases anteriores o evitarlas si no vienen a cuento). El generador tiene otros detalles añadidos como la agrupación de bloques (la producción “A canta” se convertiría, si A está agrupado con B, en “A y B cantan”) o los textos que sólo es necesario mostrar en la primera referencia (por ejemplo, la producción “El increíble Hulk” volcaría solamente “Hulk” en la segunda y sucesivas apariciones).

    La verdad es que ha sido un mini-proyecto personal bastante entretenido. Además, si quiero generar otro texto distinto me basta con crear otro fichero de gramática y no tengo que tocar una línea de código, como debe ser. Uno de los usos podría ser una versión en castellano del postmodern generator que mencionas, que no conocía y me parece genial.

  3. pseudopodo says:

    Impresionante, Ni!. Y más si no conocías el postmodern generator… Hacer este trabajo desde cero me parece muy difícil, y más en español, que tiene mas ligaduras de concordancias (de género, por ejemplo) que el inglés. Todo esto, ¿en qué lenguaje lo programas? (ten en cuenta que yo sólo he programado en Fortran, así que hazte a la idea de que soy un hombre de las cavernas…)

    Yo creo que la generalización a todo tipo de “bullshit”, no sólo el postmoderno, sería muy entretenida…

  4. Ni! says:

    Ja, ja, de las cavernas no tanto, que tienes un blog y los temas que tratas no están precisamente pasados de moda. Yo también programé algo en Fortran cuando estudiaba la carrera, hace bastante.

    He usado php porque el desarrollo es muy rápido y yo no quería extenderme demasiado en ello, aunque se podría usar cualquier otro lenguaje. Lo importante es que permita el uso fácil de expresiones regulares.

    He estado mirando el manual del motor de generación del “postmodernism generator”, llamado “Dada Engine”, y ahora sé que mi generador trabaja con lo que se llama “red de transición recursiva”. Aunque el “Dada Engine” es más general me han sorprendido los parecidos. Yo he añadido muchos atajos para el manejo de género y número a cambio de perder generalidad; aún así, creo que los resultados son más que suficientes.

    Se pueden parodiar historias que tienen varias entregas distintas pero que siempre siguen el mismo esquema, como por ejemplo un episodio cualquiera de House. Aunque se me acaba de ocurrir el tema ideal: un resumen de un reportaje cualquiera de Cuarto Milenio. Creo que ese es el bullshit ideal para parodiar. :D

  5. Antonio says:

    ¿Puedo incitarte a que escribas un post explicativo sobre cómo has programado tu generador de bullshit? :D

  6. Ni! says:

    Antonio, gracias por tu interés. Incitarme puedes… pero un post lleva tiempo y ahora estoy muy liado. Puedo intentar sacar un rato para explicar el algoritmo que he seguido y las decisiones tomadas, que pienso que es lo más importante. A ver cuándo puedo.

    Un saludo.

  7. Antonio says:

    Lo esperaré con ansia, y si no puede ser, me conformaré con seguir pasando por aquí.

    Un saludo.

  8. pseudopodo says:

    Ni!, se me ha ocurrido leyendo este post de El Café de Ocata que la jerga pedagógica sería magnífica para hacer un generador de bullshit.

    Teniendo en cuenta la polémica que hay ahora con el manifiesto “No es verdad”, etc, sería un puntazo “deconstruir a los constructivistas”. Un éxito seguro (por si te animas ;-) )

  9. Ni! says:

    ¡Gracias por el dato! Muy bueno el generador neopedagogico :) Hacerlo en plan “serio”, con un discurso elaborado, lo veo más difícil y llevaría más tiempo, pero para un encadenamiento simple de frases como el generador de esa página se tardaría sólo lo que lleve la traducción del francés. Voy a probar a hacerlo en cuanto tenga tiempo y te paso un enlace que devuelva esas frases.

  10. pseudopodo says:

    Gracias, Ni!. Ya me contarás…

  1. 2 de Diciembre de 2009

    […] como parte de una condición o como atributo de género o número de otra entidad. El Harry Potter Generatores el mejor ejemplo de aplicación de todas estas funciones. En suma, un pequeño Frankenstein […]

Leave a Reply to Ni! Cancel reply

Your email address will not be published. Required fields are marked *