Next: Agentes Up: Técnicas para Plástica Sonora Previous: Recursividad con lingüística y programación simbólica:


Composición y organización de texto automática

Al utilizar variables aleatorias como en la función 'dado' de la sección anterior 7.5.6, se pueden crear diferentes combinaciones de elementos en listas de SCHEME. Algunos de los resultados del programa pueden ser satisfactorios y se utilizan en la creación o generación de una propuesta estética mientras que las sugerencias in-aceptables simplemente se descartan. Esto se denomina en otros ámbitos como, Composición Asistida por Computador.

Partiendo de la lista de 'machado' se realizará una función que genera un poema simple (poemav1). Analizar el algoritmo modificarlo y mejorarlo para la entrega de este trabajo. Se sugiere al lector hacer versiones mas complejas a partir de éstos algoritmos básicos.

  1. 
     		 
     
    (define machado
      '((las mas hondas palabras)
        (del sabio nos muestran)
        (lo que el silvar del viento cuando sopla)
        (o el sonar de las aguas cuando ruedan)))
    
    (define (enesimo n lista)
      (if (= n 0)
          (car lista)
          (enesimo (- n 1) (cdr lista))))
    
    (define (sacar-elemento nth list)
      (if (> nth (1- (length list)))
          (se '(warning no more elements))
          (begin 
    	(if (null? list)
    	    '()
    	    (enesimo nth list)))))
    
  2. 
     		 
     
    (define frasev1
      (lambda ()
        (let ((articulo '(las del lo el de))
    	  (sustantivo '(palabras sabio viento aguas))
    	  (adjetivo '(hondas))
    	  (verbo '(muestran silvar sopla sonar ruedan))
    	  (preposicion '(cuando mas))
    	  (numero1 0) 
    	  (numero2 0)
    	  (numero3 0)
    	  (numero4 0))
    	;;
          (begin
    	(set! numero1 (random 5)) (set! numero4 (random 4))
    	(set! numero2 (random 5))
    	(set! numero3 (random 2)) 
    	(se (sacar-elemento numero1 articulo) 
    	    (sacar-elemento numero4 sustantivo)
    	    (sacar-elemento numero2 verbo)
    	    (sacar-elemento numero3 preposicion)
    
  3. 
     		 
     
    (define (poemav1 lineas)
      (let ((frase '()))
        (newline)
        (do ((i 0 (+ i 1)))
    	((= i lineas))
          (set! frase (frasev1))
          (display frase)
          (newline)
          )) (newline) )
    
    
     		 guile> (poemav1 4)       
    



Subsecciones
next up previous
Next: Agentes Up: Técnicas para Plástica Sonora Previous: Recursividad con lingüística y programación simbólica:

© Copyright 2005-2007, expyeZp- Maginvent.ORG. All Rights Reserved, Todos Los Derechos Reservados.