Het structurele perspectief: tekst en grammatica's
Introductie
Deze colleges gaan over de algoritmisering
van kunst, d.w.z. over het opstellen van systematische procedures
die eenduidig voorschrijven hoe kunstwerken gegenereerd kunnen
worden. De fundamentele vooronderstelling hierbij is dat hoe oneindig
groot de verzameling bestaande, alweer verdwenen en nog te maken
kunstwerken ook is, het toch mogelijk is daar je armen omheen
te krijgen, d.w.z. een recept te schrijven dat deze hele verzameling
in principe produceert dat wil zeggen, als daarvoor
voldoende en dus zonodig onbeperkte tijd en ruimte ter
beschikking is.
Bij het bedenken van een algoritme voor
de productie van een verzameling van het een of ander zijn de
fundamentele vragen:
- wat is het uitgangsmateriaal?
- wat zijn de operaties waarover
je beschikt?
- hoe kun je de gewenste eindproducten
beschrijven?
In de vorige colleges
hebben we een paar eerste suggesties bekeken. Essentie hiervan
was dat die laatste vraag (Wat willen we eigenlijk maken?) gewoon
niet beantwoord werd.
- Ga er gewoon vanuit dat alle mogelijke
kunstwerken er al zijn, analyseer die verder niet maar bedenk
een simpele manier om ze te kunnen kiezen: pak zo maar iets,
gooi een pijltje op de landkaart etc.; eigenlijk zeg je dan
dus niets over het basismateriaal (alles is basismateriaal)
en niets over de verzameling (alles is OK) en dan ben
je dus vrij om iedere willekeurige verzameling van operaties
te kiezen en deze in iedere willekeurige volgorde en combinatie
toe te passen.
- Beschouw een verzameling kunstwerken
vanuit een simpel basisnivo: zo zijn plaatjes op een bepaald
nivo van analyse te beschouwen als bestaand uit een regelmatig
grid van punten (pixels) die ieder een kleur uit een eindige
verzameling kleuren kunnen hebben; aldus opgevat kunnen we de
plaatjes vrij eenvoudig systematisch enumeren of samplen; hier
zeg je dus eigenlijk niets over de gewenste verzameling, en
alleen iets over het basismateriaal (pixels met een positie
in een bepaalde ruimte en met een bepaalde kleur en vorm).
In variant 1 wordt het probleem eigenlijk
gewoon ontkend. Er is geen echte afbakening van de eenheden, en
systematische enumeratie (of mathematisch exacte random sampling)
is dus niet mogelijk. Variant 2 daarentegen is eigenlijk al een
hele simpele versie van wat we in dit college willen bespreken:
het genereren van kunstwerken op basis van een notie van structuur,
dus een karakterisering van de gewenste verzameling in andere
termen dan een simpele enumeratie van de individuele elementen,
of een simpel procedé.
Computationele linguistiek
We gaan het idee van structuur-gebaseerde
generatie in eerste instantie bekijken aan de hand van enkele
elementaire noties uit de computationele linguistiek. Daar
zijn twee redenen voor:
- Computerlinguïstiek is op zichzelf
relevant in de context van de Nieuwe Media: tekst is een belangrijk
medium, zo niet het dominante medium, en speelt ook in
de kunst dus een enorme rol.
- De door Computerlinguïstiek gebruikte
formalismen en technieken vormen een inspiratiebron voor soortgelijke
benaderingen in andere domeinen (beeld, muziek, dans).
In de Computerlinguïstiek houdt men
zich vanuit een computationeel perspectief bezig met de vraag
hoe taal in elkaar zit en gebruikt wordt, d.w.z. men streeft naar
algoritmes om taaluitingen te interpreteren of te produceren.
Dergelijke algoritmes spelen ook in de informatica als geheel
een cruciale rol: programma's worden uitgedrukt in programmeertalen,
geanalyseerd op hun correctheid, vertaald in expressies in wat
machinetaal wordt genoemd en vervolgens uitgevoerd. Het gaat dan
om vragen als: hoe specificeer je een taal, hoe weet je of een
bepaalde uiting inderdaad tot die taal behoort, hoe geef je de
relatie tussen twee talen weer zodat je de betekenis van een expressie
in de ene taal kunt omzetten in een equivalente expressie in de
andere taal.
Text & Nieuwe Media
¥ konkrete po‘zie --> dynamische hyper-po‘zie? (opzoeken:
Paul van Ostayen en andere "Album"-projecten)
¥ rol van taal in theater en film
¥ interactiviteit: speech interfaces
¥ internet. cf. Kluitenberg on "Visual Culture"
Talen
Expressies in een taal (zinnen, commando's,
programma's) bestaan uit een reeks van symbolen (termen, woorden)
uit een eindig, niet-leeg alfabet; een taal is een deelverzameling
van alle mogelijke reeksen van symbolen.
Text-generatie
Als een taal geen echte deelverzameling
is van alle symbool-reeksen (anything goes) dan is generatie
simpel:
- start met lege reeks
- stop of ga verder
- kies een willekeurig symbool en plak
dat achter de huidige reeks
- ga verder vanaf 2
Alternatief: ga uit van een bestaande tekst
(= reeks), knip deze in stukken, schud ze door elkaar en plak
ze weer aan elkaar
Voorlopers in deze techniek: Burroughs,
Tzara
Een uitgebreide lijst van sites die deze
techniek centraal stellen is te vinden in dit overzicht
van cut-up technieken
M. Ross:
Dada, 2002.
Als een taal wel een deelverzameling is,
hoe is deze deelverzameling dan gedefinieerd?
- Simpelweg als de verzameling van
alle zinnen: Readymade teksten
- Woorden aaneenrijgen op basis van
de frequentie van voorkomen in corpus
- Woorden aaneenrijgen op basis van
overgangswaarschijnlijkheden: Markov ketens.
Spraakherkenning: voorspellen wat
er gezegd wordt. (Cf. taal-generatie!) Spraakherkenning m.b.v.
regel van Bayes gebruikt kans dat een woord gezegd wordt.
Q: Hoe schat je dat? A.: Frequentie. Q: Hoe schat je dat nog
beter? A: Bigram-frequentie (Markov-model)
Voorbeelden uit Informatie-theorie-inleidingen. Generatieprocessen
laten zien. (ProgrammaÕs op internet?) Finite-state-model
van taal. Trigram-frequenties (IBM).
Muziek: Fuchs, Illiac-suite, Geurts & Meertens, e.d. |
Markov ketens
Beschrijven proces in termen van toestanden
en hun mogelijke overgangen. Waarschijnlijkheden hangen af van
de toestand van dat moment, niet van de volledige voorgeschiedenis.
Als we de kans laten bepalen door de twee laatste woorden, krijgen
we dus te maken met meer toestanden.
Hidden Markov Models
worden bijv. gebruikt bij spraakherkenning. Zij heten Hidden omdat
de toestanden waarin deze modellen verkeren alleen indirect ingeschat
kunnen worden. In het geval van spraakherkenning bijvoorbeeld
is de relatie tussen een woord en het acoustische signaal probabilistisch.
Uitgangspunt is de Bayesiaanse kansberekening:
P(H|E) = P(E|H)*P(H)
/ P(E) die is gebaseerd op de regel dat P(E & H) = P(H|E)*P(E)
= P(E|H)*P(H)
Patronen (Eliza)
Omdat elke zin is opgebouwd uit een (eindige?)
reeks woorden, kun je de zinnen gaan groeperen aan de hand van
"patronen" (een soort "zinnen" waarin naast
woorden ook een speciaal soort symbolen staan die aangeven dat
op de betreffende plek een willekeurig woord mag staan):
Ik ga naar _
Waarom voel je je _ ?
Je kunt zo'n patroon gebruiken om zinnen
te classificeren, maar ook om ze te genereren. Probleem: hoe geef
je aan wat er dan op zo'n open plek mag staan?
Optie 1: woordklassen onderscheiden en bij
open plek aangeven welke woordklasse toegestaan is
Optie 2: combineren met tweede patroon,
en dat patroon gebruiken om aan te geven hoe je een geschikte
klasse herkent:
Ik voel me _
Waarom voel je je _ ?
Dit is de basis-truc in allerlei ChatBots,
gebaseerd op het Eliza programma van Joseph Weizenbaum.
Reguliere expressies
Formele notatie
voor het beschrijven van patronen:
Voorbeelden
<letter> = A | B | ... | Z | a | b | ... | z
<letter>* main <letter>*
<letter>* x <letter>* x <letter>* x <letter>*
Identifiers
in Pascal:
<letter> = A | B | ... | Z | a | b | ... | z
<digit> = 0 | 1 | 2 | 3 ... | 9
<letter> (<letter> | <digit>)*
Contextvrije grammatica's
Krachtiger, kunnen bijvoorbeeld ook talen
genereren als: willekeurig aantal a's, gevolgd door evenveel b's:
S
a X b
X
a X b
X

Ook wel herschrijfregels of producties genoemd.
Grammatica bestaat uit vier onderdelen:
- V, verzameling niet-terminale symbolen
(variabelen)
- S, een startknoop
- T, verzameling terminale symbolen (de
symbolen uit de taal)
- R, verzameling regels, in geval CFG:
X
Y, waarbij X een variabele, en Y nul of meer variabelen en/of
terminalen
Voorbeeld voor Nederlands:
S ZNG WW ZNG VZG
S ZNG WW ZNG
ZNG LW ZN
ZNG LW BN ZN
ZNG LW ZN VZG
ZNG LW BN ZN VZG
VZG VZ ZNG
|
LW het
BN kleine
ZN kind
WW duwt
VZ op
|
Dergelijke grammatica's worden gebruikt
om:
Wordt snel complex. Problemen:
Jan kijkt naar de
man met de kijker op de berg
Het gaat er om goede structurele bouwstenen
(frasen) te vinden:
ZNG
(LW) (BNG)* ZN VZG
BNG
(BW)* BN
BNG
BNG VW BNG
een vrij koude maar droge en gelukkig
zonnige dag in november
BNF ("Backus Normal Form"
or "Backus-Naur Form")
Een notatie voor het specificeren van CFG's
, met name de syntax van programmeertalen
<loop statement> ::= <while loop> | <for loop>
<while loop> ::= while ( <condition> ) <statement>
<for loop> ::= for ( <expression> ; <expression>; <expression> ) <statement>
<assignment statement> ::= <variable> = <expression>
Zie ook: Drie
manieren om een grammatica weer te geven
Een CFG voor taal kan op 3 manieren beschouwd worden:
mathematisch
nondeterministische automaat
stochastische automaat
Chomsky: transformationele grammatica's
Noam Chomsky betoogde dat contextvrije grammatica's
niet krachtig genoeg waren om natuurlijke taal op een adequate
manier te beschrijven. Hij stelde dat er ook transformaties nodig
waren, regels die een hele structuur kunnen omzetten in een andere
structuur, daarbij eventueel elementen verwijderend of nieuwe
elementen introducerend.
Contextgevoelige grammatica's staan herschrijfregels
toe wier toepassing afhangt van de context:
NP1 V NP2
NP2 word(t) (ge-)V NP1
Zie onder meer:
S. Dik and J. Kooij: "Noam Chomsky
en het transformationalisme." In: Algemene Taalwetenschap.
Utrecht: Het Spectrum, 1988.
Remko Scha: "Taaltheorie
en taaltechnologie; competence en performance." In: R.
de Kort and G.L.J. Leerdam (eds.): Computertoepassingen in
de Neerlandistiek. Almere: LVVN, 1990, pp. 7-22. [English
translation: "Language
Theory and Language Technology; Competence and Performance."]
[In Reader 1991]
Semantiek en Pragmatiek
Taal wordt meestal gebruikt om iets uit
te drukken, een feit te vermelden, een opdracht te geven, een
vraag te stellen. Dat een tekst uit grammaticale zinnen bestaat,
is daarvoor niet eens nodig. Het zuiver syntactische perspectief
op het verschijnsel taal kan daarom wel ter discussie gesteld
worden.
Discourse-grammatica.
Scripts & Frames.
Plot-grammatica: Propp.
Computational Linguistics
Informatie over Natural
Language Processing (NLP) op de site van de American
Association for Artificial Intelligence (AAAI). [Computerlingu•stiek:
Computer-programmaÕs die tekst genereren of verwerken ("begrijpen").]
Syllabus van een cursus in de Theory
of Computation - nadere introductie van verschillende soorten
grammatica's
Procedural and constraint-based
literature
Brisset. Duchamp.
Roussel: Comment j'ai écrit certains
de mes livres.
Lewis Carroll, Tristan Tzara.
Lewis Carroll: Gedichtje over toevalspoëzie. [Zie Citaten
Chance. (of Hoos Blotkamp in RUU Toevalscatalogus)]
Tristan Tzara: Gedichtje over toevalspoëzie. [Zie Citaten
Chance. (of Hoos Blotkamp in RUU Toevalscatalogus)]
Raymond Queneau: Cent mille milliards de poèmes.
William Burroughs and Brion Gysin: Cut-up.
Chance Poetry: Jackson
Mac Low
Procedures and challenges (formalism against
writer's block).
Bernadette
Mayer / Jonathan
Mayhew / Charles
Bernstein
Muziekgrammatica.
Ray Jackendoff and Fred Lerdahl: "Generative Music Theory
and its Relation to Psychology." Journal
of Music Theory 25,
1 (1981). [In Reader 1991]
Toepassing op beeldende kunst:
Die 5 Dinge, die [.
. .] ein Šsthetisches Programm bestimmen, sind: das "Zeichenrepertoire"
Z, die "Transformationsmenge" T,
die "Ablauffunktion" a, die "Bewertungsfunktion" b
und "Zielmenge" K. [. . .] Wir haben es demnach bei
dem Šsthetischen Programm mit einem Modell folgender Art zu tun:
ein KŸnstler ist sich seiner Mittel (Z, T)
und Ziele (K) bewu§t: er kennt operationale Definitionen
seiner Kriterien (b) und wei§ a priori auf welche
Art er sein Ziel erreichen will oder welche Konstruktionsschritte
er sich selbst zugesteht (a). [. . .]
Wir machen einen Unterschied zwischen
den von einem Šsthetischen Programm P erzeugbaren
Šsthetischen Objekten und den bezŸglich P akzeptablen
Objekten, die eine Untermenge der erzeugbaren sind. Ein vorliegendes
Šsthetisches Objekt ist also nicht notwendig "akzeptabel" (der Begriff
"akzeptabel" ist rein operational, obwohl er natŸrlich auf das traditionelle
"schšn" reflektiert). [. . .]
HŠtten wir aber vielleicht besser
getan, eine generative Grammatik fŸr die Beschreibung des Šsthetischen
Programms zu wŠhlen? Der Generationsproze§ formaler Grammatiken
lŠuft in der Regel "blind", "zufŠllig", nicht zielgerichtet ab.
Das soll hei§en, das nicht versucht wird, ein vorgegebenes Ziel
zu erreichen [. . .]. Da wir aber ausdrŸcklich die Zielgerichtetheit
des Šsthetischen Realisationsprozesses im Auge behalten wollen,
scheint der eingeschlagene Weg der bessere zu sein.
Allerdings sei angemerkt, da§ der
Begriff der Grammatik explizit in einigen Veršffentlichungen Ÿber
Computerkunst auftritt (z. B. Lansdown 1970ab, Stiny & Gips 1971,
Camarero 1972). Allerdings erscheinen an diesen Stellen keine Definitionen
von Grammatiken im Sinne des formalen Begriffs, oder doch nur vage
Andeutungen.
Frieder Nake: €sthetik
als Informationsverarbeitung. (Vienna/New York: Springer
Verlag, 1974), pp. 34-40.
The articles
referred to are:
Ernesto Garcia Camarero: "Computer Art." In: G. Mazzotta (ed.):
La Scienzia e l'Arte (Milano: Edition Mazzotta, 1972).
R. John Lansdown: "Would you believe 'Woaagang Amazeus Mezart'?"
In: Computers in the creative arts (Manchester: The National Computing
Centre Ltd, 1970), pp. 12-32.
R. John Lansdown: "The use of computers in art." Proc. Int. Symp.
Computer Graphics 70, Brunel University, Uxbridge, England,
1970.
George Stiny and James Gips: "Shape grammars and the generative
specification of painting and sculpture." Proc. IFIP Congress
1971. TA-7, pp. 62-67.
Max B. Clowes: "Pictorial
Relationships a Syntactic Approach." In: B. Meltzer
and D. Michie (eds.): Machine Intelligence 4. Edinburgh:
Edinburgh University Press, 1969. [In Reader 1991]
Opdracht:
Experimenteer
met een voorbeeld van algoritmische tekstgeneratie. Je kunt dit
doen door een Eliza of andere ChatBot aan te passen, door te experimenteren
met een van de andere programma's die je via bovenstaande links
(of elders natuurlijk) vindt of door zelf een recept te implementeren.
Analyseer een en ander (half A4-tje), toesturen via email voor het
volgende college; voeg daarbij een copie van of link naar de gebruikte
of ontwikkelde programmatuur.
Acknowledgments
Text by Jos de Bruin. Additional links suggested
by René Glas and Gabrielle Rozing.