markovify – eine kurze Anleitung

Eine einfache Methode zur automatischen Generierung von Texten auf der Grundlage eines Trainingskorpus ist die Modellierung von sogenannten Markov Chains. Ganz kurz gesagt geht es darum, für Sequenzen von Wörtern die wahrscheinlichsten Fortsetzungen zu bestimmen, so wie es etwa die AutoVervollständigung auf unseren Smartphones tut. Dies geschieht auf der Basis von Ngrammen und ihrer Verteilung in einem Korpus, so dass der Output ein Mindestmaß an Kohärenz aufweist. Mit dem Python Package markovify kann man so etwas sehr einfach umsetzen. Hier erkläre ich kurz, wie es geht.

How to

In diesem Ordner findet sich ein Script sowie zwei Textdateien, die für Experimentierzwecke genutzt werden können: Shakespeares Sonette und sämtliche State of the Union-Reden der US-amerikanischen Präsidenten. Laden Sie sich alle Dateien auf Ihren Rechner, am besten in einen gemeinsamen Ordner.

Wie man dann auf Mac-Systemen weiter vorgeht, habe ich kürzlich in einem personalisierten Tutorialvideo erklärt, das ich hier recycle.

 

 

Für Windows-Systeme sind wahrscheinlich noch ein paar vorbereitende Schritte notwendig, dann aber kann wie auf Mac-Systemen vorgegangen werden:

Wenn alles klappt, kann man mit dem State of the Union-Korpus dann Sätze wie diese hier generieren:

The tribes occupying the territory or other by an effective prosecution or removal of such real felicity and resist the tendency to produce beneficial results.

Between the States, this means to remedy abuses which have never at any sacrifice.

Das ist natürlich Nonsense, aber der Stil oder der Sound der Originaltexte wird ganz gut imitiert. Sie können natürlich auch eigene Textkorpora (im UTF-8 Format!) verwenden, sie sollten aber eine Mindestgröße von etwa 100.000 Wörtern haben. Ein Beispiel für ein ganzes Buch, das so generiert wurde, ist “Germania Markoviana” von Hannes Bajohr, das Sie hier herunterladen können.

Troubleshooting

Ein paar mögliche Fehlerquellen bzw. -behebungen:

  • pip ist nicht installiert, also muss es manuell nachinstalliert werden wie hier beschrieben.
  • Das Textkorpus ist nicht in UTF-8 encodiert. V.a. auf Windows-Rechnern wird oft das systemeigene Encoding ANSII verwendet, das nicht kompatibel ist.
  • Evtl. muss beim Ausführen des Scripts explizit python3 aufgerufen werden.

Die universalste aller Methoden zur Fehlerbehebung ist einer treffenden Aussage von Kathrin Passig folgend übrigens diese: Suchen Sie sich jemanden, der oder die Python in Grundzügen beherrscht, und lassen Sie sich bei der Einrichtung helfen. Oft sind es Kleinigkeiten, die anfangs Probleme machen und die von Erfahreneren meist rasch erkannt werden.


Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.