[Trennmuster] selektive Ligaturwahl

Guenter Milde milde at users.sf.net
Do Dez 18 21:20:22 CET 2014


Hallo Mico, hallo Trennmustler,

...
> Ich habe leider sämtliche Regeln zum Gebrauch vom
> "ß" vollkommen vergessen und verwende ausschliesslich "ss", wie es halt in der
> Deutsch-Schweiz üblich ist. Ich hoffe, dass das Nichtverwenden des ß-Buchstabens
> mit Euch OK ist.

Da wir bereits jetzt eine friedliche Koexistenz von Vertretern alter (und ganz alter) und neuer Rechtschreibung sowie de-DE und de-AT praktizieren, denke ich, dass auch die Verwendung von de-CH hier als Bereicherung gesehen wird --- immerhin wollen wir ja für alle diese Sprachvarianten die besten freien Trennmuster (und "Nebenprodukte") erstellen.

...
> Ich fände es natürlich toll falls das selnolig-Paket als Basis für weitere
> Anwendungen fungieren könnte und/oder falls ich neue Regeln zur Unterdrückung
> von Ligaturen Eurer Arbeit entlehnen dürfte. 
...

Zur Zeit sehe ich die Ansätze von selnolig und über die "qualifizierten Trennmuster" als Alternativen.  

Vielleicht ist eine Kombination der Ansätze "pattern" + "\nolig-/\keeplig-makros" sinnvoll, analog zum Zeilenumbruch, wo die Hauptarbeit mit den effizienten "pattern"  gemacht wird und \hyphen... Makro zur lokalen Anpassung zur Verfügung steht. Und die Varianten zur Ligaturunterdückung an den einmal gefundenen Stellen sind bei selnolig deutlich ausgefeilter.


Eine Zusammenarbeit wünsche ich mir aber auch bei der Validierung der Ergebnisse. Da ist es ein unschätzbarer Vorteil, wenn wir über zwei unabhängige Verfahren und Korpora verfügen.

...
> Mein Eindruck ist, dass Ligaturen nicht verwendet werden dürfen falls sie
> Wortfugen überbrücken. (Es gibt natürlich Ausnahmen, z.B. in Sachen "i" nach "f"
> oder "ff", oder "fl" am Ende eines abgekürzten Wortes, z.B. "Aufl." und
> "gefl.".) Meines Wissens nach sind in der deutschen Sprache alle Wortfugen auch
> Silben-Trennstellen, aber nicht alle Trennstellen sind Wortfugen. 

Wenn unter Wortfugen die Grenzen von Teilwörtern und zwischen Präfix und Hauptwort  verstanden werden, ja. Dagegen ist die Grenze vor Suffixen nicht automatisch auch Trennstelle, sondern es gelten die Trennregeln nach Sprechsilben, also höf-lich (Trennstelle = Morphemgrenze) aber af-fig (keine Trennug an der Morphemgrenze). 

Dies korreliert mit der Ligaturregel: "keine Ligatur vor -lich aber Ligatur vor -ig erlaubt".

Mein Vergleich der Ligaturregeln und Trennregeln im Duden legt die folgende Verallgemeinerung nahe:

  Im Deutschen wird keine Ligatur gesetzt, 
  wenn zwischen den verschmelzenden Buchstaben
  eine Morphemgrenze liegt, die gleichzeitig
  Trennstelle ist.

Ein Ligaturunterdrücker nach dieser Regel kann auf Basis der "Trennmusterliste" leicht erstellt werden, da in der Liste Trennstellen an Morphemgrenzen speziell ausgezeichnet sind. 
Bsp: af-fig; Tisch=bein; über<höf>lich 

Es existieren bereits ein Skript und eine "make"-Regel für Liangsche "hyphenation patterns", die nur solche Trennstellen beinhalten.

Die Stichprobe für "patgen" wird über ein simples Skript erstellt, welches alle "-" filtert und den Ausdruck "[<>=]+" in "-" wandelt (als "proof of concept", das kann sicher noch optimiert werden).
 
Die Mustererstellung aus der Stichprobe mit "patgen" kann als maschinelles Lernen beschrieben werden, wobei patgen automatisch einen optimalen hierarchischen Regelsatz findet und in Form der "pattern" speichert.

Das "pattern"-Format ist äußerst effizient für den Stringvergleich, Algorithmen zur Anwendung der pattern existieren im TeX-Kern, als C-Bibliothek (libhyphen), in Lua (padrinoma-Paket), Python und weiteren Skriptsprachen. 

Die Lua- und Python-Versionen können leicht modifiziert/erweitet und entweder als Präprozessor oder LuaTeX-Paket zum Setzen von ZWNJ oder "| oder wasimmer zwischen Ligaturkandidaten (ff,fi,fl, st, ...) genutzt werden (für Lua ist das bereits getan).  

...
> >  + Vielleicht das beste: Die oben beschriebenen Muster enthalten
> >    Informationen, die nicht auf einzelne Ligaturen zugeschnitten
> >    sind.  Das heißt, mit solchen Mustern lassen sich grundsätzlich
> >    beliebige Ligaturen behandeln.

Das wird besonders für den Fraktursatz interessant, wo Ligaturen aus ch, ck, tz, ... dazukommen.

...

> Im Moment enthält die Datei selnolig-german-patterns.sty ca. 700
> \nolig Regeln und ca. 330 \keeplig Regeln.
...

> Die Regeln basieren übrigens auf einem Korpus von ca. 350'000 einfachen und
> zusammengesetzten Wörtern die diverse ff, ffi, ffl, fi, fl, ft, und fft
> Kombinationen enthalten und deren Morphologie mit einem automatisierten tool
> eruiert wurde. (Das tool ist allerdings alles andere als fehlerfrei, so konnte
> ich dessen Vorgaben nicht ohne Einschränkungen verwenden.) Die Regeln sind somit
> recht umfassed, wenn auch mit Sicherheit nicht vollständig.

Hier können, denke ich, beide Seiten von einem "Übereinstmmungstest" deutlich profitieren.
So ein Vergleich könnte Schwachstellen und Lücken der beiden Ansätze finden helfen und die Entscheidung über einen "gemischten Ansatz" vorbereiten.

In diesem Sinne hoffe ich auf eine fruchtbare Zusammenarbeit.

Doch jetzt wünsch ich erst einmal frohe und erholsame Festtage.

Viele Grüße
Günter




Mehr Informationen über die Mailingliste Trennmuster