Computer Haiku
¿Cómo escribirías un programa
para hacerlos para ti?
Computer Haiku
¿Cómo escribirías un programa
para hacerlos para ti?
Respuestas:
No lo intentes La
poesía no se mezcla bien
Con metal y bits
Más en serio, un buen haiku (e incluso un mal haiku) se trata más de condensar significado e imágenes que de contar sílabas. Generalmente también se basa en temas extraídos de la naturaleza. La generación aleatoria de palabras y el recuento de sílabas te darán un galimatías medido, pero no poesía ...
Primero, querrá mirar las cadenas de Markov , y segundo, hay un libro sobre poesía generada por computadora llamado Virtual Muse .
Los haikus son fáciles, notaré
Soluciones bien documentadas y funciones de memoria
Son exageradas y cursis
Codificación demasiado fácil
Codifícame con un limerick, luego votaré
// De hecho, me gustan los haikus
note
y vote
?
No todos los haikus tienen el mismo número de sílabas, pero es un punto de partida.
En términos de elegir realmente las palabras, creo que las partes del discurso no serían el lugar donde comenzaría. En cambio, miraría las cadenas de Markov y entrenaría su vocabulario sobre los haikus existentes.
En Haiku Village , tenemos la tecnología para hacer esto fácilmente de varias maneras. Una idea es simplemente leer el feed global de Twitter y detectar haikus involuntarios. Dado que el back-end también tiene un diccionario, sería posible producir haikus cuestionables, pero creo que faltaría calidad.
Creo que si tuviéramos un sistema de clasificación por estrellas, supongo que el aprendizaje automático podría usarse para decidir qué es "bueno".
"Transmitir el estado de ánimo de uno en diecisiete sílabas es muy difícil..." (El gran John Cooper Clarke Echa un vistazo a Beasley Street , una de mis favoritas)
¿Cuánto más difícil para una computadora? La lógica no conoce estados de ánimo :)
Para hacerlo legible, separe el diccionario en Sustantivos, Verbos, Adjetivos, con el conteo de sílabas.
Crea algunas plantillas del formulario:
[Sustantivo] [Verbo] "s"
[Verbo] a (n) [Adjetivo] [Sustantivo]
[adjetivo] [sustantivo]
y recorta tus diccionarios a las hermosas palabras.
implementar un algoritmo genético para generar haikus extraídos de un diccionario anotado con recuentos de sílabas, luego pagar a las personas para que los lean y calificarlos como la función de aptitud [Mechanical Turk ayudaría]. Con el tiempo, su programa debería desarrollar algunos buenos.
EDITAR:
un GA que necesita
evoluciona a la velocidad de la CPU
si presta atención a la aptitud
Su programa debe asimilar las
metáforas y las imágenes
y ser creativo.
Algunas personas sugirieron usar un diccionario y generar secuencias de palabras usando una cadena de Markov . Esa parece una solución teóricamente viable, especialmente si usa una cadena de Markov de alto orden (no bi o trigramas).
Pero creo que en la práctica funcionaría mejor si pudieras recopilar una base de datos de haikus existentes y cambiar selectivamente palabras individuales en ellas (por ejemplo, cambiar una palabra dada por otra palabra relacionada semánticamente). Los haikus existentes te dan algún tipo de estructura y cohesión, y solo necesitas (ex-) cambiar pequeñas partes en ellos para crear un nuevo haiku (una variación del anterior).
Por supuesto, no serán haikus completamente nuevos con este método, pero al menos serán algo agradables para los lectores.
Analice los haikus existentes en un orden relacional, como la palabra xx usada después de yy n veces. Entonces, al crear, la posibilidad de que xx venga después de yy será (n / suma del recuento de todas las palabras usadas después de yy). De esta manera, se aleatorizará de forma selectiva y aún puede ser un haiku válido.
Escriba su programa para generar Haiku en japonés. Será mucho más fácil medir el recuento de sílabas, ya que se mantendrá fiel al idioma original de la poesía. Si tiene flexibilidad con el proyecto, ¿por qué no hacer el japonés original? Luego, muestre la traducción literal en inglés palabra por palabra al lado. Se verá misterioso por decir lo menos.
De todos modos, solo una visión diferente del problema.
Secuencias de Markov
Una base de datos silábica
Tres líneas de Python
Comenzaría con algún tipo de archivo de diccionario que contenga un recuento de sílabas de cada palabra. Luego elija palabras que sumen las sílabas / línea requeridas
En cuanto a hacerlo poesía, y no solo palabras al azar, no tengo idea.
Desde el sude semántico de la historia, use muestreo y transformación de Fourier. Elija partes significativas de una descripción detallada reducida en palabras simples y deje que un lector llene los espacios con su propia imaginación
El algoritmo para hacer que una computadora genere un haiku de alta calidad funciona así:
loop:
find the email address of a world-renowned writer of haiku
confirm that this person is willing to generate haiku on demand
until sucker^H^H^H^H^H^Hwriter is found
loop:
wait for a haiku request
when a haiku request is received, email the previously-stored master and ask for a haiku
wait for the haiku to return by reply
output haiku
Por supuesto, hay varias mejoras que se pueden realizar en esta arquitectura fundamental. Por ejemplo, la fase de configuración se puede extender para configurar un grupo de expertos en haiku. La fase de ejecución se puede utilizar para generar haiku durante los tiempos de inactividad y almacenarlos en caché contra la demanda futura. Los detalles de tales ajustes se dejan como ejercicio para el estudiante.
Amo esta pregunta Es muy imaginativo. Responda abajo.
Mucha gente ha sugerido cadenas de Markov, pero realmente no creo que sea posible. Necesitas saber inteligentemente si la sílaba es un FONEMAS, entonces tienes que saber dónde termina la sílaba.
Si alguna vez hicieras esto, me sorprendería.