PaGAL Abschlussbericht
Programmierprojekt
am Lehrstuhl für Computerlinguistik, Uni Heidelberg
Programm zur automatischen
Generierung von Abkürzungen in Lexika - PaGAL
Teilnehmerinen:
Project Acronym: |
PaGAL |
Document-ID: |
X PaGAL-Abschlussbericht 01 |
Date: |
03/01/02 |
Title: |
PaGAL-Abschlussbericht |
Authors: |
Jutta Jäger, Meike Griese |
WP/Task: |
T 4.3 |
Abstract: |
Abschlussbericht des Programmierprojekts, inklusive Userdokumentation,
Screenshots |
Distribution: |
public |
1 ABSTRACT
2 PROJEKTBESCHREIBUNG
2.1 Projektziele
3 PROGRAMMABLAUF
3.1. PaGAL.pl
3.2. Lemma.pm
3.3. Abverz.pm und Verzei.pm
3.4. Adjektiv.pm
3.5. Lingu.pm
4 FEHLERANALYSE
4.1. "Echte" Fehler
4.2. Bugs
4.3. Inkonsistenzen und Ambiguitäten
5 OFFENE AUFGABEN
6 PROJEKTVERLAUF
1 ABSTRACT
Im Rahmen des Programmierprojekts 2000/2001 wurde eine Zusammenarbeit zwischen
den Studentinnen Jutta Jäger und Meike Griese und dem Verlagshaus
Bibliographisches Institut F.A. Brockhaus vereinbart. Seit einigen Jahren
werden die Lexika, darunter der Brockhaus in 15 Bänden, auch in elektronischer
Form angeboten. In der elektronischen Version werden im Gegensatz zur Printversion
keine Abkürzungen benötigt. Im 15-bändigen Brockhaus wurden
alle Abkürzungen von Hand aufgelöst, so daß Abkürzungen
und Langformen jetzt nebeneinander in der gleichen Tetxsubstanz existieren.
Die Aufgabe des Projekts war, die Langformen automatisch abzukürzen,
so dass in Zukunft nur noch Langformen geschrieben werden müssten.
Die Studentinnen erhielten den Auszug AbisS aus der SGML-Textsubstanz
des Nachschlagewerks Brockhaus in fünfzehn Bänden. In dieser
Substanz waren die Kurz- und Langformen vollständig nebeneinander
enthalten; in Tags mit der folgenden Struktur:
<ak><kf>engl.</kf><lf>englischen</lf></ak>
zurück
2 PROJEKTBESCHREIBUNG
2.1 Projektziele
Es gab mehrere Projektziele, die sich gegenseitig beinflussen:
1. Die intellektuell erstellten Abkürzungen analysieren und Regeln
aufstellen
2. Diese Regeln, wenn möglich, in einem Programm umzusetzen, daß
die Abkürzungen automatisch erstellt
Die Analyse und Dokumentation des bislang intellektuellen Abkürzungsverfahrens
sollte eine Grundlage für den Verlag darstellen, dieses eventuell
zu standardisieren.
Das Programm sollte die intellektuellen Abkürzungsregeln soweit
wie möglich nachvollziehen, eine Übereinstimmung von 100 % galt
aber schon bei Beginn des Projekts als nicht möglich. Nach der letzten
Auswertung weist das Programm im Verhältnis zu den vorgefundenen Abkürzungen
eine Fehlerquote von ca. 10 % auf. Genaueres in statistik.txt.
In dem Projekt wurde nur der Textauszug aus dem 15-bändigen Brockhaus
bearbeitet. Denkbare Erweiterungen wären gewesen:
1. Ausweitung des Programms auf die anderen Nachschlagewerke
des Verlags, mit entsprechend veränderbaren Regel-Parametern.
2. Automatisches Erkennen der bislang getaggten
Langformen.
Verglichen mit den von den Redakteuren erstellten Abkürzungen
generiert PaGAL % der Abkürzungen identisch. Bei dieser Fehlerquote
sind aber auch "unechte" Fehler wie Abweichung durch ein Leerzeichen enthalten.
Außerdem gibt es Inkonsistenzen im Vergleichsmaterial (siehe 2.3.),
sodass die tatsächliche Fehlerquote geringer ist.
zurück
3. Programmablauf
PaGAL besteht aus einer Hauptfunktion (PaGAL.pl) , die verschiedene Module
aufruft. Diese Module bearbeiten die verschiedenen Abkürzungsarten:
i) Lemma -> Lemma.pm
ii) Abkürzungsverzeichnis -> Abverz.pm
iii) Adjektive -> Adjektiv.pm
Außerdem gibt es gibt es drei weitere Hilfmodule:
i) Lingu.pm: stellt linguistische Funktionen zur Verfügung
ii) Statistik.pm: erstellt eine Statistikdatei und die Ausgabe-Listen
(vgl. User-Dokumentation)
iii) Verzei.pm: liest das Abkürzungsverzeichnis (Abk_txt) und
das Verzeichnis der biblischen Namen (Bibel_txt) ein und erstellt daraus
einen Hash.
zurück
3.1 PaGAL.pl
Die Hauptfunktion öffnet die Textsubstanz und durchsucht sie eintragsweise
nach <ak>-Tags (Trennmarke für einen Eintrag ist der Tag </b5>).
Pro Eintrag wird ein Lemma gematcht. Der Eintrag wird nach Langformen durchsucht
und jede gefundenen Langform zuerst an Lemma.pm übergeben. Wenn dort
keine Abkürzung generiert wird (d.h. die Langform entspricht nicht
dem Lemma), wird sie an Abverz.pm weitergereicht. Falls auch dort keine
Übereinstimmung gefunden wird als dritte Möglichkeit Adjektiv.pm
aufgerufen. Jedes Abkürzungsmodul gibt ein Array zurück, das
[kurz|vorne|lang|hinten] enthält; vorne, bzw. hinten sind die Reste,
die nach dem Patternmatching übrig blieben. Nun wird Lingu.pm aufgerufen
das Flektionsendungen und Fugenmorpheme erkennt. Die so analysierten Teile
werden zur Abkürzung zusammengesetzt. Die eventuell generierte Abkürzung
wird in Statistik.pm mit der in der Textsubstanz gefundenen Abkürzung
verglichen und eventuell in die Mistakelist, bzw. Liste aufgenommen.
zurück
3.2 Lemma.pm
In Lemma.pm wird nach Übereinstimmung zwischen Lemma und Langform
gesucht. Im einfachsten Fall wird der erste Buchstabe mit Punkt als Abkürzung
generiert. Eine Besonderheit stellen Mehrwortlemma dar, hier wird der erste
Buchstabe von jedem einzelnen Wort + Punkt durch Leerzeichen oder Bindestrich
verbunden.
zurück
3.3 Abverz.pm und Verzei.pm
Abverz.pm ruft beim ersten Aufruf Verzei.pm auf. In Verzei.pm werden zwei
Hashs generiert, die einer Langform die dazugehörige Kurzform zuordnen.
Der eine Hash enthält den Großteil der Abkürzungsverzeichnis-Einträge
und alle aus Bibel_txt. Der andere enthält Konjunktionen und Präpositionen,
die nicht in Zusammensetzungen auftreten.
Die Langform wird mit allen Langformen des ersten Hashs verglichen;
gibt es mehrere Übereinstimmungen, wählt das Modul die Längere.
Wird die Langform mit den Langformen des zweiten Hashs verglichen, wird
nur bei 100%iger Übereinstimmung gematcht.
zurück
3.4 Adjektiv.pm
Hier wird die Langform auf die möglichen Adjektivendungen -lich, -lig
-isch und ihre Flektionen durchsucht und diese Endungen durch -l.
bzw. nur Punkt ersetzt.
zurück
3.5. Lingu.pm
Lingu.pm wird nachdem eine der drei Abkürzungen erstellt wurde aufgerufen.
Der Rest der Langform, der hinter der Abkürzung noch eventuell steht,
wird hier analysiert.
Handelt es sich um eine Flektionsendung oder das Fugenmorphem -s- ,
wird es gelöscht. Handelt es sich um keine dieser Alternativen, wird
der Rest nicht verändert.
Da Lingu.pm nicht mit einem Lexikon arbeitet, sind nur die Fugenmorpheme
zu erkennen, die zwingend nach einer bestimmten Endung des Bestimmungswortes
stehen. Das -s- wird gestrichen. Ist die Langform großgeschrieben,
wird der hintere Rest großgeschrieben und durch Bindestrich mit der
Abkürzung verbunden, anderenfalls wird er unverändert angehängt.
zurück
4 FEHLERANALYSE
Die in der Mistake-List verzeichneten Fehler lassen sich kategorisieren:
4.1 echte Fehler (durch den Algorithmus bedingt)
Fugenmorphem wird nur dann erkannt, wenn die Endung des Bestimmungswortes
-ung, -tum, -ling, -ion lautet.
Für alle anderen Fälle ist ein Lexikon nötig. Eine Silbenbau-Prüfung
könnte einen Teil der Fehler beheben:
Langform |
vorhandene Kurzform |
generierte Kurzform |
Abendmahlsfeier |
A.-Feier |
A.-Sfeier |
Flektionsendungen werden in einigen Fällen nicht erkannt:
Die Pluralendng -ien ist nicht vorgesehen.
Flektionsendung wird bei Mehrworttermen nur beim letzten Wort
erkannt. Ist das erste Wort flektiert matcht Lemma oder Verzeichnis gar
nicht.
Lemma |
Langform |
vorhandene Kurzform |
generierte Kurzform |
deutsche Musik |
deutscher Musik |
d. M. |
dt. Musik |
In einigen Fällen enthält das Lemma oder der Verzeichniseintrag
selbst eine Endung. Die Langform ohne Endung wird nicht gematcht.
Lemma |
Langform |
vorhandene Kurzform |
generierte Kurzform |
Aale |
Aal |
A. |
0 |
PaGAL führt immer nur eine Abkürzung durch, auch wenn in einer
Langform mehrere Abkürzungsvorgänge enthalten sind. Hier
entscheidet der Algorithmus, dass die zuerst gematchte oder längste
Langform abgekürzt wird.
Verwaltungsdistrikt |
Verw.-Distr. |
Verw.-Distrikt |
Die angegebenen Abkürzungen werden von PaGAL nicht berücksichtigt:
diese sind im Eintrag selbst definiert und stellen eine Sonderregelung
der Lemma-Abkürzung dasr.
Reichsabgeabenordnung |
Reichs-AO |
Reichs-A. |
Flektionsendungen werden immer gestrichen. Geographische Namen
stellen eigentlich eine Ausnahme dar, die von PaGAL nicht berücksichtigt
wird.
Übergeneralisiertes Matchen: PaGAL kennt keine Ausschlusskriterien.
Es erkennt nicht, dass -liche kein Kompositumsbestandteil ist, sondern
eine Adjektivendung. Das übergeneralisierte Matchen stellt bei Lemma-
und Verzeichnis-Abkürzung ein Problem dar, nicht aber bei der Adjektiv-Abkürzung.
Mittelalterliche |
Mittelalterl. |
MA.-Liche |
Es gibt Fälle in denen dies auch durch ein Lexikon nicht einfach zu
lösen wäre:
Afrikanische |
Afrikan. |
A.-Nische |
In der vorhandenen Kurzform sind bei Aufzählungen teilweise Ellipsen
enthalten. PaGAL kann diese nicht nachvollziehen.
Mehlbananen |
Mehl- |
Mehl-B. |
Umlaut wird nicht erkannt. PaGAL kann bisher nur Endungen der
Langform wegstreichen. Eine mögliche Erweiterung wäre eine Vergleichsoperation,
die in einer Tabelle "zulässige" Abweichungen von der Grundform (d.h.
der Form, die als Lemma oder im Verzeichnis hinterlegt ist) nachschlägt.
Lemma |
Langform |
vorhandene Kurzform |
generierte Kurzform |
Abfall |
Abfälle |
A. |
0 |
zurück
4.2 Bugs
Das Grundwort eines Kompositums wird im Abkürzungsverzeichnis oder
Lemma gematcht. Teilweise muss case-insenstitive gematcht werden. Das hat
offensichtlich die folgenden Fehler produziert:
Verpackungsverordnung |
Verpackungs-VO |
Verpackungsvo |
Goethe-Institut |
Goethe-Inst. |
Goethe-inst. |
Flektionsendung -er wird nicht oder nicht immer erkannt:
Die SGML-Darstellung des ß: ß wird als Adjektivendung
behandelt:
der Große |
d.&spvgev;Gr. |
der Gro&szl. |
In Lemma.pm wird das Lemma von möglichen Satzzeichen bereinigt.
Dennnoch wurde in der Fehlerliste folgendes gefunden:
Agesilaos&spvgev;II. |
Agesilaos&spvgev;II |
A. |
0 |
zurück
4.3 Inkonsistenzen und Ambiguitäten
Die Kompositazerlegung und -abkürzung ist inkonsistent in der Vergleichsbasis.
Verschiedene Varianten wurden gefunden.
Verwaltungssitz |
Verw.sitz |
Verw.-Sitz |
Ebenso die Abkürzungen der Verzeichniseinträge z.B.
griechisch |
griech. / grch. |
grch. |
Einige Langformen sind ambig zerlegbar; ob aus den vorgefundenen Abkürzungen
eine Regel abgeleitete werden kann, muss geprüft werden.
Nationaldemokratische |
Nationaldemoktrat. |
N.-Demokratische |
Westindische |
Westind. |
W-Indische |
Flektionsendungen werden unterschiedlich behandelt: einige werden an
die Abkürzung drangehängt, auch wenn es sich nicht um einen geographischen
Namen handelt:
Wissenschaften |
Wiss.en |
Wiss. |
Die Lemmaabkürzung weist in einigen Fällen Abweichungen von
der Regel auf: Kommen nur Teile des Lemma als Langform vor, so sind sie
teilweise trotzdem als Lemma abgekürzt:
Lemma: ad hominem |
Vorkommen: hominem |
h. |
0 |
zurück
5 OFFENE AUFGABEN
Nach Beendigung des Projekts stellen sich verschiedene Aufgaben als Grundlage
für die Verbesserung des Programms:
-
Einbindung eines Lexikons oder Erweiterung des Regelkatalogs zur korrekteren
Kompositazerlegung
-
Behandlung der Mehrwortterme
-
Umlaut und lückenlose Erkennung der Flektionsendungen durch erweiterte
Vergleichsoperation
-
Parametrisierung für verschiedene Textsubstanzen (s.
2.1.1)
-
selstständiges Erkennen der Langformen (s.2.1.2)
zurück
6 PROJEKTVERLAUF
Grundsätzlich lief das Projekt so ab, wie im Proposal vorgesehen (bis
auf die Termine). Schwierigkeiten ergaben sich bei der Überlegung,
ein Lexikon bzw. Morphologieanalysetool einzubinden. Da den Projektteilnehmern
zu Beginn des Projekts beides nicht zur Verfügung stand, war es nicht
möglich, in einem Versuch die Einbindung auszutesten. Später
waren dann beide Ideen zeitlich nicht mehr machbar. Das vom BI vorgeschlagene
Programm MPro-IR einzubinden, hätte den vorgesehenen Programmablauf
stark verändert. Dies schien zu komplex, da das System sehr viel leistungsfähiger
ist als benötigt und PaGAL viele linguistische Aufgaben selbst lösen
kann. Das eigentlich notwendige Lexikon war leider nicht verfügbar.
Die Idee des Proposals, eine Über- und eine Untergeneralisierung
zu implementieren, wurde so nicht durchgeführt. Beide Alternativen
wurden aber immer wieder während des Implementierens der einzelnen
Module bei den Pattern-Matching-Operationen angewendet.
zurück