10.2
 Entwicklung

10.2.1
 Tools

Nutzen von klassischen Software-Engineering-Tools 

Versionskontrolle: Z.B. CVS (www.nongnu.org/cvs) oder git

Nutzen von klassischen Software-Engineering-Tools 

Systemkompilation: Z.B. GNU make (www.gnu.org/software/make)

Makefile-Beispiel 

make-Regel im Deutsch-Morphologieprojekt für Binärkompilation


# In Datei Makefile gespeicherte Regel:
%.xfst.bin : %.xfst                                            # Abhängigkeit
    xfst -e ’source $<’ -e ’save defined $@’ -stop             # Shell-Befehl

Falls eine Komponente eine Datei mit der Endung .xfst.bin (sog. target) benötigt : Schaue, ob eine Datei ohne Endung .bin (sog. prerequisite) existiert. Überprüfe (rekursiv) die Abhängigkeiten der prerequisite und generiere sie allenfalls neu. Falls das target älter ist als die prerequisite, führe den entsprechenden UNIX-Shell-Befehl aus ($@ ist Make-Platzhalter für target und $< für prerequisite).

Beispiel 10.2.1 (Aufruf von make).


$ make adj.xfst.bin                # Erzeuge Ziel adj.xfst.bin
                                   # indem folgender Befehl ausgeführt wird
xfst -e ’source adj.xfst’ -e ’save defined adj.xfst.bin’ -stop

10.2.2
 Inhalt

Linguistische Analyse und Planung 

Formale linguistische Analyse

Ein Morphologiesystem benötigt eine möglichst gründliche vorangehende linguistische Analyse, welche die Klassen, Regeln und Ausnahmen möglichst detailliert zur Verfügung stellt.

Abstraktion und systematisches Wissen

“The ability to speak multiple languages, though admirable, doesn’t make one a formal linguist any more than having a heart makes one a cardiologist.”

[BEESLEY und KARTTUNEN 2003b, 283]

Unterspezifikation linguistischer Beschreibung

Bei der Implementation handgeschriebener Regelsysteme ergeben sich immer unvorhergesehene Überraschungen trotz aller Planung : Unsicherheiten, Ungenauigkeiten, Unvollständigkeiten. Dies ist auch bei handgeschriebenen wissenschaftlichen Grammatiken der Fall.

Linguistische Analyse 

Repräsentation der lexikalischen Seite

Die exakte Form der Lemmata ist eine Design-Entscheidung des Lexikographen.

Linguistische Analyse 

Repräsentation der lexikalischen Seite

Die Anzahl, Form und Abfolge von morphologischen Tags ist eine Design-Entscheidung des Lexikographen.

Empfohlene Tags nach Xerox-Konvention  
Im Anhang G [BEESLEY und KARTTUNEN 2003a], welcher im gedruckten Buch keinen Platz mehr fand, sind diverse sprachübergreifende morphologische Tags mit ihrer linguistischen Bedeutung aufgeführt.

Beispiel 10.2.2 (Xerox-Mehrzeichensymbol-Tags im +-Format).

+Noun    ! noun(house)  
+Prop    ! proper noun(John)  
+Art     ! article (like English the and a)  
+Det     ! determiner (like this,that,those)  
+Dig     ! digit-based word  
+Aug     ! augmentative  
+Dim     ! diminutive  
...

Die Laufzeit-Applikation lookup zur morphologischen Analyse behandelt Tags mit der +-Konvention defaultmässig effizient als Mehrzeichensymbole.

10.2.3
 Applikationen

Ein Kernsystem mit mehreren Runtime-Applikationen 

Gemeinsames Kernsystem

Runtime-Anwendungen

Runtime-Anwendungen 

Beispiel 10.2.3 (Modifikation von Kern-System durch Ersetzungsregeln).

read regex StrictGermanCoreNetwork  
.o. [ü (->) u e ] .o. [ö (->) o e ]  
.o. [ä (->) a e ] .o. [ß (->) s s ];

Relaxierung von Kern-Systemen zur Laufzeit

Das lookup-Tool erlaubt morphologische Analysestrategien, welche fehlerorientiert relaxieren und zur Laufzeit die Komposition von Transduktoren simulieren:

Klein-/Grossschreibung 

Beispiel 10.2.4 (Grossschreibung).
Wie kann man Grossschreibung von normalerweise kleingeschriebenen Wörtern erlauben?

Beispiel 10.2.5 (Kapitalisierung).
Wie kann man durchgängige Grossschreibung erlauben wie in “Dieses Verhalten ist KRANK!!!”?

lookup-Strategien mit “virtueller” Komposition  

Alternativ-Analysen, nur falls bisher keine gefunden

Analysen mit Relaxierung sollen nur dann gemacht werden, wenn keine “normale” Analyse möglich ist. [BEESLEY und KARTTUNEN 2003b, 433]

  1. FST-Variablen :


    deaccent     allow-deaccentuation.fst
    normalize    allow-allcaps.fst
    analyser     deutsch.fst
  2. Virtuelle Komposition : Schreibe die FST-Variablen hintereinander!
  3. Strategien


    analyser                          # Versuche zuerst normale Analyse
    allcap analyser                   # Sonst entkapitalisiere zuerst
    deaccent allcap analyser          # Sonst deakzentiere vor Entkapitalisierung