c o m p u t e r l i n g u i s t i k
 ::  literatur ::  linguistik ::  photographie  :: 
 ::  home ::  kontakt ::  links ::  intern :: 

>> Benutzermodellierung in eCommerce-System (03.07.03)


Kompositatrennung mit Perl

Zur => Auswertung (Statistik in Tabellenform, ca. 60k)
und eine kurze methodische Beschreibung:

Der zu analysierende Text wird über übliche Dateizugriffverfahren angesprochen. Der Text wird durch eine optimierte split-Funktion in seine Wortbestandteile zerlegt. Die einzelnen Worte gelangen nach bestimmten Kriterien (z.B. Länge des strings) als Einträge in ein alphabetisch sortiertes Array. Zur Kompositaanalyse ist es ratsam, nur auf Substantive Rücksicht zu nehmen. Das Programm leistet in keiner Weise Verbalkompositazerlegungen. Die erste print-Ausgabe zeigt dann auch die der weiteren Analyse zugrundeliegenden Substantive. Da mit den einfachsten Mitteln gearbeitet wird, mussten alle Wörter nach Sonderzeichen (d.h. u.a. nach dem "Satzanfang", das Programm "registriert" den Satzanfang durch eine vorherige Zeichenkette wie ". " oder "? ") entfernt werden, da - wenn nicht - auch grossgeschriebene Präpositionen und Pronomina als Substantive aufgeführt worden wären. Bei einer der Minimalpaaranalyse verwandten Suchstrategie sind diese Bestandteile oft potentielle Fehlerquellen (Knall / Er / Knall-Er : Knaller).

Die Substantive werden zwecks schnelleren Zugriffes in eine hash-table übertragen. Der eigentliche Analyseprozess beginnt: Vom Wortende an wird ein String mit dem Startwert "2" Zeichen für Zeichen inkrementiert, das erste Zeichen wird grossgestellt. Dieser sich ständig verändernde String wird in der Hash-Table gesucht. Gibt es eine Fundstelle (Montag -> Ag -> Tag -> Treffer !), haben wir nur einen Hinweis auf ein mögliches Kompositum. Es ist zu sehen, ob der restliche Teil (Montag - Tag = Mon) ebenfalls in der Hashtable aufgeführt ist. Sofern im zugrundeliegenden Text kein Schreibfehler vorhanden sein sollte, finden wir nicht "Mon", sodass der String weiter inkrementiert wird, bis er die Gesamtlänge des Substantivs erreicht hat. Bei "Montag" liegt demnach kein Kompositum vor, denn diese benötigen mindestens zwei Bestandteile. "Montagabend" hingegen trennte sich - sofern "Montag" und "Abend" in der hash-table einzeln aufgeführt werden - so:

Montagabend -> Nd -> End -> Bend -> Abend (ex. in hash-table) -> existiert auch (Montagabend-Abend=Montag) ? -> Montag (ex. in hash-table) -> "zeige TeilA und TeilB mit Bindestrich" -> Montag - abend

Der Fall "Komposita=Substantiv.Singular.Nominativ+Substantiv.Singular.Nominativ" ist tatsächlich sehr frequentiert, allerdings darf man dies bei einer solchen Analyse nicht als Normalfall betrachten. "Montagsmüdigkeit" z.B. ist eine sog. adhoc-Bildung, die ebenfalls zerlegt werden soll. Das Wort "montags" ist allerdings a) kein Substantiv und viel wichtiger b) Das "s" in "Montagsmüdigkeit" ist ein sog. Fugen-S, d.h. "s" gehört hier nur morphologisch zu "Montag", nicht aber zum Lexem "Montag". Die Mehrzahl von Montag wird darüberhinaus auch nicht mit "s" gebildet. Für diesen Sonderfall - oder ist bei Komposita das Fugen-S nicht ein Regelfall ? - müssen im Quellcode Reparaturmechanismen vorhanden sein, die das gerade untersuchte Substantiv/Kompositum auf das Vorhandensein eines Fugen-S "abklopfen".

Fortsetzung folgt ... Um einen Eindruck zu gewinnen:

Quelltext => sämtliche Artikel der Zeitschrift "Computer Zeitung" von 1996
Ergebnis => Liste aller Substantive und zerlegten Einheiten
Auf Anfrage ! Wer den Textkorpus (+ Ergebnis) benötigt, erhält diesen umgehend per eMail (ca. 900 K).

www.marcelfrank.de