Automatische Metrikanalyse

Norberto42 hat in einem Blogeintrag auf den Metricalizer2 hingewiesen. Das ist ein Projekt zur automatischen Analyse von Gedichten. So etwas steht schon länger auf meiner Liste von Programmierprojekt-Vorschlägen für Informatikstudenten – aber es ist nicht überraschend, dass es das schon gibt. Und auch nicht überraschend, dass das Projekt bisher noch kein Informatikstudent haben wollte.

Man gibt einen Gedichttext ein und klickt dann auf “Gedicht analysieren”. Die Reime werden richtig erkannt, selbst bei Reimen wie “Eiche” und “Gesträuche”, die traditionell als vollkommen akzeptabel gelten, von Schülern aber gerne mal nicht als Reim erkannt werden.

(Im Übermut und aus diesem Anlass habe ich den Schülern neulich ein Vokaldreieck an die Tafel gezeichnet, so mit hohen und tiefen und vorderen und hinteren Vokalen, und Umlauten. War natürlich erst mal kein Arbeiten mehr, weil jeder mit aaaah- und uuuh-Sagen und der Position der eigenen Zunge beschäftigt war.)

Aber am spannendsten ist natürlich die metrische Analyse. Ich habe nur einigermaßen regelmäßige Gedichte getestet, wie sie auch in der Schule drankommen, und das klappt: Jambisch, trochäisch, daktylisch. Einfache männliche oder weibliche Kadenzen sind kein Problem.

Nehmen wir mal die ersten drei Verse von Schillers “Der Ring des Polykrates” als Beispiel, weil ich darüber schon mal geschrieben habe.

Er stand auf seines Daches Zinnen,
Er schaute mit vergnügten Sinnen
Auf das beherrschte Samos hin.

  • Jambisch, 9 Silben in den ersten beiden Verse (und damit weibliche Kadenz), 8 Silben in der dritten Strophe.
  • Vers 1 und 2 reimen sich.
  • Bei “Samos” meint der Metricalizer einen Widerspruch zwischen Metrum und – tatsächlich aber falsch vermuteter – normaler Sprechbetonung auszumachen, da er glaubt, “Samos” würde die “famos” betont. Richtig hat er erkannt, dass “mit” in Vers 2 und “das” und “hin” in Vers 3 eigentlich unbetonte Wörter sind, die dennoch auf eine Hebung fallen.

Laut Metrum sind die die Silben 2, 4, 6 und 8 betont. Nicht alle vom Metrum vorgesehenen Hebungen werden aber gleich stark verwirklicht:

metricalizer

Vor allem die Hebungen in Silbe 4 sind anscheinend meist eher wenig betont. (Die Grafik bezieht sich auf alle untersuchten Verse.) Das widerspricht zumindest nicht mit einer eigenen Analyse.

Bei Conrad Ferdinan Meyer, “Der römische Brunnen” in seiner bekanntesten Fassung:

Aufsteigt der Strahl und fallend gießt
Er voll der Marmorschale Rund

erkennt er die Fußsubstitution gleich am Anfang:

metricalizer2

Leider muss man selber erschließen, was hier substituiert wurde, nämlich ein Jambus durch einen Trochäus. Diese weitergehende Analyse erhält man, wenn man sich die “Komplexität” des analysierten Gedichts anzeigen lässt. (Die Darstellungsmodi “Skansion” und “Vorlesen” sind dafür wenig brauchbar.)

Gewinnbrignend ist diese Komplexitätsanalyse etwa bei Rilkes “Spanische Tänzerin” (Blogeintrag). Die vielen Abweichungen vom Metrum werden gut erkannt.

Beim genialen “Trost und Rat” von Robert Gernhardt klappt das mit dem Differenz zwischen metrischer und natürlicher Betonung nicht ganz so gut, und den Witz in der letzten Strophe – dass die beiden betont zu lesenden und deshalb sogar gesperrt gedruckten Wörter eben ausgerechnet auf Senkungen fallen (also fein synkopiert sind) – kann der Metricalizer natürlich nicht erkennen.

Auch unregelmäßige Daktylen wie bei Heine (“Sie saßen und tranken am Teetisch”) sind schwierig, und bei etwas Albernem wie Eichendorffs Mandelkerngedicht klappt die Analyse auch nur halbwegs:

Zwischen Akten, dunkeln Wänden
Bannt mich, Freiheitsbegehrenden,
Nun des Lebens strenge Pflicht,
Und aus Schränken, Aktenschichten
Lachen mir die beleidigten
Musen in das Amtsgesicht.

Aber immerhin! Viele der merkwürdigen Betonungen am Versende fallen dem Metricalizer auf.

Insgesamt ein schönes Spielzeug. Hoffentlich komme ich bald dazu, Schüler damit experiemtnieren zu lassen.

3 Antworten auf „Automatische Metrikanalyse“

  1. Nettes Spielzeug. Bei Eingabe von Gryphius’ “Abend” (moderne Schreibung) bekomme ich dann allerdings Folgendes zu sehen, wenn ich das analysiert haben will:
    A problem occurred in a Python script. Here is the sequence of function calls leading up to the error, in the order they occurred.
    C:\inetpub\wwwroot\metricalizer\index.py in ()
    649 print(htmlResult)
    650
    651 if __name__ == ‘__main__’:
    => 652 main()
    653
    main =
    C:\inetpub\wwwroot\metricalizer\index.py in main()
    443 input = input.replace(‘\r’, ”)
    444
    => 445 poem = webservice.analyse(input)
    446
    447 saveSession(‘C:\\inetpub\\wwwroot\\metricalizer\\cache’, sid, poem)
    poem undefined, global webservice = , webservice.analyse = , input = ‘Der schnelle Tag ist hin/ die Nacht schwingt ihr…etzt die Einsamkeit. Wie ist die Zeit vertan!\n\n\n\n’
    C:\Python32\lib\site-packages\webservice2\webservice.py in analyse(text=‘Der schnelle Tag ist hin/ die Nacht schwingt ihr…etzt die Einsamkeit. Wie ist die Zeit vertan!\n\n\n\n’)
    19
    20 def analyse(text):
    => 21 poem = analysePoem(text)
    22 return poem
    23
    poem undefined, global analysePoem = , text = ‘Der schnelle Tag ist hin/ die Nacht schwingt ihr…etzt die Einsamkeit. Wie ist die Zeit vertan!\n\n\n\n’
    C:\Python32\lib\site-packages\webservice2\core\analysePoem.py in analysePoem(text=‘Der schnelle Tag ist hin/ die Nacht schwingt ihr…etzt die Einsamkeit. Wie ist die Zeit vertan!\n\n\n\n’, name=”)
    336 #analyze distichon
    337 distichonInstanz = Distichon()
    => 338 distichonInstanz.analyse(standardPoem)
    339
    340 ”’
    distichonInstanz = , distichonInstanz.analyse = <bound method Distichon.analyse of >, standardPoem =
    C:\Python32\lib\site-packages\webservice2\core\main\distichon\distichon.py in analyse(self=, poem=)
    460 pass
    461
    => 462 metrum = [1] + best_pattern[0] + distichon_pattern[int(not first)]
    463
    464 mismatch = calculateMismatch(metrum, pdic)
    metrum undefined, best_pattern = [], distichon_pattern = [[1, 0, 0, 1, 0], [1, 1, 0, 0, 1, 0, 0, 1]], builtin int = , first = True

    IndexError: list index out of range
    args = (‘list index out of range’,)
    with_traceback =

  2. Hallo liebe Kollegen,

    der Python-Fehler ist aller Wahrscheinlichkeit einem Sonderzeichen geschuldet, das noch nicht vom Metricalizer erkannt wird. Schickemir bitte den originalen Text als Unicode Textfile an die Kontaktadresse unter http://www.metricalizer.de, dann suchen wir gerne das entsprechende Zeichen heraus und nehmen es in die Liste der Sonderzeichen mit auf.

    Viele Grüße

    Klemens

Schreibe einen Kommentar

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