Bots als Werkzeug in der Sprach- und Literaturwissenschaft:
Erschließung, Generierung, Interaktion


Esther Seyffarth



esther.seyffarth@uni-duesseldorf.de
@ojahnn

Über mich

Warum bin ich hier?

… damit nicht der Eindruck entsteht, dass digitale Kreativität nur etwas für gelernte Computerwissenschaftler/Männer über 50 ist…

Bots + Fan Fiction?

Machine Shakespeare

Or Whether Doth My Mind, Being Crowned With You
 No Longer Mourn For Me When I Am Dead;
So Shall I Live, Supposing Thou Art True.
 Sweet Love, Renew Thy Force. Be It Not Said

Thy Gift, Thy Tables, Are Within My Brain!
 How Like A Winter Hath My Absence Been;
Let Me Confess That We Two Must Be Twain,
  Like As To Make Our Appetites More Keen.

If My Dear Love Were But The Child Of State
 Shall I Compare Thee To A Summer's Day?
Love Is My Sin, And Thy Dear Virtue Hate,
 But Do Thy Worst To Steal Thyself Away.

  So Am I As The Rich, Whose Blessed Key
  When Most I Wink, Then Do Mine Eyes Best See.

Bots für alle!

Bots als Werkzeug zur Generierung neuer Texte

Sie werden heute lernen,

  • ... Regelsysteme zur Darstellung sprachlicher (syntaktischer) Wohlgeformtheitsbedingungen zu entwerfen.
  • ... diese Regeln zur Generierung neuer sprachlicher Äußerungen zu verwenden.
  • ... Twitterbots einzurichten, die regelmäßig derartig generierte Texte posten.
  • ... Ihre Twitterbots zur Interaktion mit Menschen zu befähigen.

Bots als Werkzeug zur Erschließung literarischer Texte

Sie werden heute lernen,

  • ... literarische Texte in Tweets zu übersetzen und ganze Werke automatisch "durchzutwittern".
  • ... den besonderen Charakter einzelner literarischer Werke mithilfe von Regelsystemen zu erfassen und zu reproduzieren.

Bots und Textgenerierung







[ja]

[nein]

Phrasenstrukturregeln

  • Idee: Ein Satz besteht aus Konstituenten, die hierarchisch gruppiert sind.
  • Konstituenten können durch andere Konstituenten gleichen Typs ausgetauscht werden:
    • [ottos  mops] [trotzt]
    • [otto] [holt [obst] ]
    • [otto] [holt [koks] ]
    • [otto] [hofft]
  • Konstituenten in den Beispielsätzen: "Subjekt", "Objekt", "Verbphrase"

  • (eigentlich: Nominalphrase, Nominalphrase, Verbalphrase)

Grammatikregeln

Wir können die Sprache von ottos mops mit Regeln beschreiben.


# Phrasenstrukturregeln zu den Beispielen der letzten Folie hier eintragen!
"Satz"       --> "Subjekt" + "Verbphrase"
"Subjekt"    --> "otto" | "ottos mops"
"Objekt"     -->
"Verbphrase" -->
"Verb"       -->
					

Wie lauten die Regeln für "Objekt", "Verbphrase" und "Verb"?

Grammatiken und Textgenerierung

Rekursion erlaubt uns, mit endlich vielen Regeln unendlich viele Sätze zu beschreiben.


ottos mops trotzt
otto: fort mops fort
ottos mops hopst fort
otto: soso

otto holt koks
otto holt obst
otto horcht
otto: mops mops
otto hofft

ottos mops klopft
otto: komm mops komm
ottos mops kommt
ottos mops kotzt
otto: ogottogott
						

Aufgabe: Schreiben Sie eine Phrasenstrukturgrammatik für ottos mops.
(Ottos Äußerungen dürfen Sie vorerst ignorieren.)

ottos mops formt wort-block

# Produktionsregeln hier eintragen!
.
.
.
.
.
.
.					

otto formt bot

Von der generativen Grammatik ist es kein weiter Weg zur Textgenerierung.

Wir erstellen unseren ersten Bot mithilfe von Tracery.

Aufgabe: Setzen Sie die ottos-mops-Grammatik in Tracery um! Verwenden Sie dazu den visuellen Editor unter http://www.brightspiral.com/tracery/.


Können Sie das Vokabular erweitern?

Sie können Ihre Lösung mit der Beispiellösung vergleichen, z.B. mit JSON Diff.

Diskussion:

Wer ist hier kreativ, Mensch oder Bot?

ottos mops lernt twittern

Cheap Bots Done Quick ist ein Dienst, der Tweets aus Tracery-Grammatiken generiert und auf Twitter veröffentlicht.

Aufgabe:

  1. Erstellen Sie einen neuen Twitter-Account für Ihren Bot.
  2. Bestätigen Sie den Account per Mail und ggf. per Handy.
  3. Geben Sie Ihre ottos-mops-Grammatik auf CheapBotsDoneQuick.com ein und versenden Sie Ihren ersten Bot-Tweet!

Sie sind nun in der Lage,

  • ... Grammatiken zur Erzeugung neuer Sätze nach bestimmten Mustern zu entwerfen.
  • ... regelmäßige, automatisierte Tweets auf der Basis dieser Grammatiken zu posten.

Nach der Pause lernen Sie,

  • ... Ihren Bot um große Wortlisten zu erweitern, um die Ergebnisse vielseitiger zu machen.
  • ... Ihren Bot auf Nachrichten anderer Nutzer/innen antworten zu lassen.
  • ... literarische Texte mit Bots abschnittsweise "durchzutwittern".
  • ... mithilfe Ihrer neuen Fähigkeiten Literatur zu remixen.

Noch fit?

Ursprünglich war eine weitere technische Themeneinheit geplant. Wir können aber auch stattdessen kreativ werden.

[technische Themeneinheit]

[kreativ werden]

Je vielseitiger das Vokabular eines Bots ist, desto überraschender werden die Ergebnisse.

Praktisch wäre es, wenn wir riesige Wortlisten direkt in die Tracery-Grammatik importieren könnten...

Adorno

“Es gibt kein richtiges Leben im falschen.”
{
	"origin": [
		"Es gibt kein richtiges #np# im falschen."
	],
	"np": [
		"Leben",
		"Essen",
		"Geld",
		"Flugzeug",
		"Haus",
		"Moped",
		"Fahrrad",
		"Auto",
		"Brathähnchen"
	]
}					

Wie kann die Kategorie np erweitert werden?

Daten sind im Internet leicht zu finden - aufbereiten müssen wir sie allerdings selbst.

Wir arbeiten im Folgenden mit der Wortliste, die hier erreichbar ist. Aber mit Ihren neuen Fähigkeiten können Sie bald auch andere Quellen verwenden.

Schritt 1:
Daten in einen Texteditor einfügen

Schritt 2:
Irrelevante Daten entfernen

(Download: Wortliste als Textdatei)

Daten filtern mit regulären Ausdrücken

Reguläre Ausdrücke sind, ähnlich wie Phrasenstrukturregeln, Beschreibungsmechanismen für Klassen von Sequenzen.

Während Phrasenstrukturregeln komplette Sequenzen beschreiben, drücken reguläre Ausdrücke stattdessen (beliebig spezifische) Bedingungen aus.

/elfe/

Nagelfeile

/(der|die|das) Band/

der Band
die Band
das Band
meine Band

/[a-z]/

Das Pferd frißt keinen Gurkensalat

/[a-z]+/

Das Pferd frißt keinen Gurkensalat

/[a-zßäöüG]+/

Das Pferd frißt keinen Gurkensalat

/[^A-Z]+/

Das Pferd frißt keinen Gurkensalat

/wer?/

wer?
weg?
wem?
wen?

/wer\?/

wer?
weg
wem
wen

/boo?t/

Postbote
Twitterbot
Ruderboot

/bo*t/

Postbote
Ruderboot
Raubtier

/(ha)+/

ha
haha
hahaha
hahahaha
hahahahaha
hahahahahaha

/(ha){2,5}/

ha
haha
hahaha
hahahaha
hahahahaha
hahahahahaha

/i\r\n/
oder /i\n/

Mississipi
 					

/(er).*\1/

Veränderungen
Beraterin
vererben

/(er).{2}\1/

Veränderungen
Beraterin
vererben

Weiterführende Links zu regulären Ausdrücken

Aufgabe:

Verwenden Sie die "Suchen und ersetzen"-Funktion, um mithilfe von regulären Ausdrücken alle Einträge der Wortliste zu löschen, die Maskulina oder Feminina sind.

Schritt 3:
Übriggebliebene Daten umformatieren

(Download: Wortliste, nur Neutra)

Aufgabe:

Formatieren Sie die Datei mithilfe von regulären Ausdrücken so, dass nur noch Substantive ohne zusätzliche Informationen aufgelistet werden.

  • Artikel entfernen
  • Komma und alle nachfolgenden Zeichen bis zum Zeilenumbruch entfernen
  • Eventuelle weitere störende Elemente systematisch entfernen

Schritt 4:
Daten ins Tracery-Format bringen

(Download: Wortliste, nur Nomen)

Aufgabe:

Verwandeln Sie die Liste in ein JSON-Objekt, das dem Tracery-Format entspricht.

Fügen Sie das neue Vokabular im CBDQ-Code ein und twittern Sie einige neue Adorno-Zitate.

Tipp: Ersetzen Sie die Zeilenumbrüche in der Liste durch die Zeichen, durch die Einträge in JSON-Objekten voneinander getrennt werden.

Sie haben nun gelernt,

  • ... Daten nach bestimmten, von Ihnen definierten Mustern zu filtern und zu sortieren.
  • ... in großen Datenmengen nach bestimmten Mustern zu suchen.

Automatische Antworten

CBDQ bietet Ihnen die Möglichkeit, auf Tweets anderer Nutzer/innen an Ihren Account automatisch zu antworten.

Aufgabe

Erstellen Sie eine "Magic 8-Ball"-Funktion, bei der Ihr Bot auf alle Tweets, die ein Fragezeichen enthalten, mit einer von 20 möglichen Antworten reagiert.

Literatur remixen

Was macht den Charakter eines literarischen Werkes aus? Können Sie eine CBDQ-Grammatik entwerfen, die nach einem bestimmten Text klingt, ohne dass die Tweets wortwörtlich dem Original entnommen sind?

Beispiel für einen "Remix"-Bot: Bototio

Werden Sie kreativ!

  • Tun Sie sich in kleinen Gruppen zusammen und wählen Sie gemeinsam ein literarisches Werk, das Sie gleich "remixen" werden.
    • Vorschläge: Harry Potter, Herr der Ringe, Kinderbücher von Erich Kästner oder Astrid Lindgren, Asterix, ...
  • Jedes Gruppenmitglied erstellt einen eigenen CBDQ-Bot zum gewählten Werk.
  • Welche Gemeinsamkeiten finden Sie zwischen Ihren Werken? Und welche Unterschiede?

Wenn die Gruppen Ihre Bots vorstellen, können die anderen Teilnehmenden raten, welches Werk die Inspirationquelle ist.

Bots zur Erschließung von Texten

AutoChirp

Mit CBDQ können wir jederzeit neue Tweets generieren.

Um stattdessen vorgefertigte Tweets in einer bestimmten Reihenfolge zu posten, sind Tools wie AutoChirp nützlich.

Ihre TSV-Datei können Sie entsprechend der Beispieldatei formatieren. Ich empfehle eine Verarbeitung in Notepad++ mit eingeschalteten Steuerzeichen! ¶

Was können Sie heute, was Sie gestern nicht konnten?

  • Phrasenstrukturregeln schreiben!
  • Sprachliche Ausdrücke regelbasiert generieren!
  • Reguläre Ausdrücke verwenden!
  • Literatur remixen!

Denkanstöße / Vorschläge für weiterführende Projekte

  • Das Kapital → Das Fapital
  • Horoskop-Bot, Rezept-Bot, Liebesbrief-Bot...
  • Welche Texte lassen sich besonders gut mit CBDQ nachahmen? Welche besonders schlecht?
  • Wie kann man auf Twitter mit Romanfiguren in Interaktion treten?
  • Reguläre Ausdrücke üben mit RegexCrossword, Regex Golf, oder dem Endgegner