Wortzählungen nach Zeilenposition

Im Manuskript sind nicht alle »Wörter« an allen Positionen in der Zeile mit gleicher Häufigkeit auf. Es gibt »Wörter«, die bevorzugt am Ende einer Zeile auftreten, und es gibt »Wörter«, die bevorzugt am Anfang einer Zeile auftreten. Ich ziehe daraus den Schluss, dass jede Zeile eines Manuskriptes eine Informationseinheit ist, aber was bedeutet bei diesem Manuskript schon ein solcher Schluss…

Die Untersuchung dieser Erscheinung ist relativ einfach mit meiner Datenbank der Transkriptionen möglich. Ich habe heute ein kleines Python-Skript geschrieben, das solche Zählungen durchführt. Unsichere Leerzeichen werden dabei nicht berücksichtigt, sondern als vollwertige Worttrenner gezählt, um die Verarbeitung einfach und effizient zu gestalten.

Mein Skript steht hier zum freien Download, aber vor der Verwendung müssen die Zugangsdaten für die Datenbank im Quelltext angepasst werden. (Wenn dies nicht getan wird, steigt das Skript während der Verbindung zum Datenbankserver mit einer Fehlermeldung aus.)

Download-Link: Skript zur Zählung der Worthäufigkeiten an Positionen in der Zeile

Technische Anmerkung: Dieses Skript verwendet eine spezielle Funktion des MySQL RDBMS, so dass weitere Anpassungen nötig sein könnten, wenn ein anderes RDBMS verwendet werden soll. Von der Benutzung des CREATE TEMPORARY TABLE abgesehen, ist das SQL ANSI-konform, so dass eine solche Anpassung einfach sein sollte. Die einfachste Vorgehensweise ist die Löschung oder Kommentierung des Schlüsselwortes TEMPORARY im Quelltext.

Format der Ausgabe

Das Skript gibt eine Zeile für jedes »Wort« aus, das mehr als einmal in der gewählten Transkription auftritt und das vollständig lesbar ist. Nicht vollständig lesbare »Wörter« werden nicht berücksichtigt.

Jede Zeile besteht aus mehreren Feldern, die durch Tabulatoren getrennt sind.

Das erste Feld ist immer das »Wort« in EVA. (Wer ein anderes Alphabet für die Transkription verwendet, kann dies relativ leicht im Quelltext ändern. Die Datenbank ist dafür vorbereitet.) Darauf folgt in Klammern die Häufigkeit dieses Wortes.

Die folgenden Felder enthalten die Position, an der dieses »Wort« auftritt. Darauf folgen in Klammern die Häufigkeit, mit der dieses »Wort« gezählt wurde, ein Leerzeichen und eine Angabe der Häufigkeit in Prozent.

Wenn man den pflanzenkundlichen Teil der Transkription von Takeshi Takahashi extrahiert, sieht die Ausgabe für das »Wort« aim etwa folgendermaßen aus:

aim (2)    4 (1 50%)    8 (1 50%)

Um einen besseren Eindruck von der Ausgabe des Skriptes zu vermitteln, stelle ich hier eine derartige Aufbereitung zum Download. Diese beiden Analysen haben auf meinem recht langsamen Arbeitsrechner jeweils einige Sekunden gedauert. Ein zeitgemäßer Rechner wird die Ergebnisse beinahe unmittelbar ausgeben. Die meiste Arbeit wird übrigens innerhalb der Datenbank verrichtet, so dass es sich lohnen kann, einen schnellen Datenbankserver zu verwenden.

Download-Link: Analyse der Häufigkeiten von Wörtern an bestimmten Positionen im pflanzenkundlichen Teil in der Transkription von Takeshi Takahashi

Benutzung des Skriptes

Das Skript kann mit Optionen aufgerufen werden, die in Unix-üblicher Weise mit einem Minuszeichen eingeleitet werden. Die folgenden Optionen können verwendet werden:

  • -h
    Anzeige eines Hilfetextes für die möglichen Optionen
  • -t<code>
    Auswahl einer Transkription mit dem jeweiligen Code
  • -l<lang>
    Auswahl der Currier-Sprachen. Wenn hier AB angegeben wird, denn werden nur Seiten mit einer bekannten Currier-Sprache extrahiert, so dass auch diese Angabe sinnvoll ist
  • -i<illu>
    Auswahl von Seiten mit einem bestimmten Illustrationstyp. Es ist zum Beispiel möglich, aber wenig sinnvoll, wenn man Seiten des kosmologischen oder astrologischen Teils einbezieht, da hier kreisförmige Diagramme auftreten, in denen die Leseposition für den Zeilenanfang willkürlich gewählt ist.
  • -r
    Die Analyse ermittelt die Position vom Zeilenende aus, nicht vom Anfang der Zeile. Dies gibt einen besseren Blick auf »Wörter«, die sich am Zeilenende zu häufen scheinen; ansonsten geht diese Erscheinung wegen der unterschiedlichen Zeilenlängen etwas unter.

Erste Anmerkungen

Diese Analyse hat bislang vor allem das bestätigt, was ich vorher schon wusste. Die »Wörter« treten nicht an allen Positionen in der Zeile gleich verteilt auf. Allerdings ist mir (und anderen) jetzt eine Möglichkeit gegeben, diese Erscheinung genauer zu untersuchen. Der Blick richtet sich jetzt auch auf bislang unverdächtige »Wörter«.

Zum Beispiel tritt das »Wort« chodaly im pflanzenkundlichen Teil drei Mal auf, und zwar immer an der vorletzten Stelle einer Zeile.  Das gleiche gilt für das »Wort« chokal, dass ebenfalls dreifach und immer an der vorletzten Stelle auftritt. Die Feinstruktur dieser ungleichmäßigen Verteilung der »Wörter« auf die Zeilenpositionen ist meines Erachtens noch nicht genügend untersucht, was auch daran liegen mag, dass es bislang keine geeigneten Werkzeuge für solche Untersuchungen gab. Deshalb fielen nur die auffällig oft am Ende auftretenden »Wörter« wie daiin ins Auge, das in 55 Prozent der Fälle die letzten drei Positionen innerhalb einer Zeile einnimmt.

Interessanterweise widersprechen einige Erscheinungen meinen Erwartungen. Zum Beispiel sind generell »Wörter« mit einem Gallow zum Beginn der Zeile gehäuft, aber es gibt auch spezielle Ausnahmen. Das 18fach auftretende »Wort« okain findet sich zum Beispiel in über 50 Prozent der Fälle auf den letzten beiden Positionen einer Zeile. Das 4fach auftretende »Wort« okary findet sich ausschließlich am Zeilenende.

Ausblick und Pläne

In weiteren Untersuchungen sollte überprüft werden, ob es relativ häufige »Wörter« gibt, die sich gleichmäßig über alle Zeilenpositionen verteilen. Wenn es solche »Wörter« gibt, müssen sie eine besondere Bedeutung haben. Wenn es solche »Wörter« nicht gibt, verrät das eine weitere, überraschende Eigenschaft des verwendeten Schrift- oder Codiersystemes.

Tags »

Autor:
Datum: Sonntag, 6. April 2008 18:38
Trackback: Trackback-URL Themengebiet: Hacking

Feed zum Beitrag: RSS 2.0 Diesen Artikel kommentieren

Ein Kommentar

  1. 1

    […] Dieses Skript ist kein Beispiel guten Programmierstils, aber es läuft.   […]

Kommentar abgeben