Inhalt
Aktueller Ordner:
/VKG4.scm
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; Paul Koop M.A. GRAMMATIKINDUKTION empirisch ;;
;; gesicherter Verkaufsgespraeche ;;
;; ;;
;; Die Simulation wurde ursprunglich entwickelt, ;;
;; um die Verwendbarkeit von kontextfreien Grammatiken ;;
;; fuer die Algorithmisch Rekursive Sequanzanalyse ;;
;; zu ueberpruefen ;;
;; Modellcharakter hat allein der Quelltext. ;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; __|__ ___|__ __|__ __|__ __|__ __|__ ;;
;; | | | | | | | | | | | | ;;
;; KBG->VBGKBBd->VBBdKBA->VBAKAE->VAEKAA->VAAKAV-> VAV ;;
;; ;;
;; Die Produktionen --> sind entsprechend ihrer ;;
;; emp. Auftrittswahrscheinlichkeit gewichtet ;;
;; DIE GRAMMATIK WIRD AUS DEM KORPUS INDUZIERT ;;
;; ein Left-to-the-Right-Modell ;;
;; ;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;; Transformationsmatrix ;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;a b c d e f c d e f g h i j g h i j k l ;;
;;0 1 2 3 4 5 2 3 4 5 6 7 8 9 6 7 8 9 10 11;;
;; ;;
;; 0 1 2 3 4 5 6 7 8 9 10 11 12 13 ;;
;;0 - 1 ;;
;;1 - 2 ;;
;;2 - - 2 ;;
;;3 - - 2 ;;
;;4 - - - - - 2 ;;
;;5 - 1 2 ;;
;;6 - - - 2 ;;
;;7 - - - 2 ;;
;;8 - - - - - - - - 2 ;;
;;9 - 1 1 ;;
;;10 - - - - - - - - - - - 1 ;;
;;11 ;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; ;;
;; Begruessung := BG ;;
;; Bedarf := Bd ;;
;; Bedarfsargumentation := BA ;;
;; Abschlusseinwaende := AE ;;
;; Verkaufsabschluss := AA ;;
;; Verabscheidung := AV ;;
;; Kunde := vorangestelltes K ;;
;; Verkaeufer := vorangestelltes V ;;
;; ;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; Korpus
(define korpus (list 'KBG 'VBG 'KBBd 'VBBd 'KBA 'VBA 'KBBd 'VBBd 'KBA 'VBA 'KAE 'VAE 'KAE 'VAE 'KAA 'VAA 'KAV 'VAV));; 0 - 17
;; Korpus durchlaufen
(define (lesen korpus)
;; car ausgeben
(display (car korpus))
;; mit cdr weitermachen
(if(not(null? (cdr korpus)))
(lesen (cdr korpus))
;;(else)
)
)
;; Lexikon
(define lexikon (vector 'KBG 'VBG 'KBBd 'VBBd 'KBA 'VBA 'KAE 'VAE 'KAA 'VAA 'KAV 'VAV)) ;; 0 - 12
;; Index fuer Zeichen ausgeben
(define (izeichen zeichen)
(define wertizeichen 0)
(do ((i 0 (+ i 1)))
( (equal? (vector-ref lexikon i) zeichen))
(set! wertizeichen (+ 1 i))
)
;;index zurueckgeben
wertizeichen
)
;; transformationsmatrix
(define zeile0 (vector 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0))
(define zeile1 (vector 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0))
(define zeile2 (vector 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0))
(define zeile3 (vector 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0))
(define zeile4 (vector 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0))
(define zeile5 (vector 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0))
(define zeile6 (vector 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0))
(define zeile7 (vector 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0))
(define zeile8 (vector 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0))
(define zeile9 (vector 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0))
(define zeile10 (vector 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0))
(define zeile11 (vector 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0))
(define zeile12 (vector 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0))
(define zeile13 (vector 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0))
(define zeile14 (vector 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0))
(define zeile15 (vector 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0))
(define zeile16 (vector 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0))
(define zeile17 (vector 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0))
(define matrix (vector zeile0 zeile1 zeile2 zeile3 zeile4 zeile5 zeile6 zeile7 zeile8 zeile9 zeile10 zeile11 zeile12 zeile13 zeile14 zeile15 zeile16 zeile17))
;; Transformationen zaehlen
;; Korpus durchlaufen
(define (transformationenZaehlen korpus)
;; car zaehlen
(vector-set! (vector-ref matrix (izeichen (car korpus))) (izeichen (car(cdr korpus))) (+ 1 (vector-ref (vector-ref matrix (izeichen (car korpus))) (izeichen (car(cdr korpus))))))
;; mit cdr weitermachen
(if(not(null? (cdr (cdr korpus))))
(transformationenZaehlen (cdr korpus))
;;(else)
)
)
;; Transformation aufaddieren
;; Zeilensummen bilden und Prozentwerte bilden
;; Grammatik
(define grammatik (list '- ))
;; aus matrix regeln bilden und regeln in grammatik einfΓΌgene
(define (grammatikerstellen matrix)
(do ((a 0 (+ a 1)))
((= a 12) )(newline)
(do ((b 0 (+ b 1)))
((= b 12))
(if (< 0 (vector-ref (vector-ref matrix a) b) )
(display (cons (vector-ref lexikon a) (cons '-> (vector-ref lexikon b))))
)
)
)
)
;; matrix ausgeben
(define (matrixausgeben matrix)
(do ((a 0 (+ a 1)))
((= a 12) ) (newline)
(do ((b 0 (+ b 1)))
((= b 12))
(display (vector-ref (vector-ref matrix a) b))
)
)
)