wiki:normalization/6

Version 14 (modified by Wolfgang Schmidle, 13 years ago) (diff)

--

4. Wie soll normalisiert werden?

Grundgedanken

Das Hauptziel der Normalisierung ist eine moderne Schreibweise des Textes, zum Beispiel u/v-Schreibweise in Latein.

Außerdem:

  • Die Normalisierungsregeln sollten einfach formulierbar sein.
  • die Normalisierungsschicht sollte so einfach wie möglich sein, aber nicht einfacher:
    • muss mit offenen Klassen umgehen können (Chinesisch)
  • die Normalisierungen für die Anzeige und für Pollux/Donatus sollten so ähnlich wie möglich sein (aber nicht ähnlicher)
  • Wenn etwas sprachspezifisch und nicht buchspezifisch ist, sollte es zur Normalisierung und nicht zur Regularisierung gehören.
  • Bei Wörtern, die zwar regularisiert werden müssten, aber nicht regularisiert sind, sollte die Normalisierung den Fehler nicht verschleiern.

Regularisierung und Normalisierung

Details der Regularisierung werden hier? diskutiert. Ausgangspunkt für die Normalisierung ist ein Text, der bereits <reg>enthält. Im Idealfall bedeutet das:

  • Fehler im Text korrigiert
  • keine Abkürzungszeichen mehr im Text
  • keine PUA-Zeichen mehr im Text

Natürlich muss die Normalisierung mit der Textversion arbeiten, die sie vorfindet. Formal gesagt: Für Wörter mit <reg> und einem norm-Attribut in diesem <reg> arbeitet die Normalisierung nicht mit dem originalen Wort, sondern mit der Version im norm-Attribut. Bei Wörtern ohne <reg>, oder mit einem <reg> ohne norm-Attribut, wird das originale Wort verwendet.

Es ist nicht immer einfach zu entscheiden, ob etwas regularisiert oder normalisiert werden soll. Beispielsweise ist "q;" ein Abkürzungszeichen und wird regularisiert, während "ę" kein Abkürzungszeichen ist und daher nicht regularisiert, sondern normalisiert wird.

In der untenstehenden Tabelle sind viele Beispiele für das Zusammenspiel von Regularisierung und Normalierung zu sehen.

Textanzeige und Wörterbücher

Normalisierung meint normalerweise die Normalisierung für die Textanzeige. Abweichende Normalisierungen für Pollux/Donatus werden zwar auch angegeben, aber ich weiß nicht genau, wie die Schnittstelle zu den jeweiligen Wörterbüchern funktioniert und welche Kodierungen dabei verwendet werden. Beispielsweise weiß ich nicht, an welcher Stelle der Unterschied zwischen Groß- und Kleinbuchstaben nivelliert wird, um ein Wort in Großbuchstaben trotzdem im Wörterbuch zu finden.

In der Tabelle gehe ich vorläufig davon aus, dass die Normalisierung (Groß- zu Kleinbuchstaben, Entfernen unnötiger Diakritika, chinesische Standardzeichen, Gravis wird Akut) auf unserer Seite stattfindet, und dass die Wörterbücher mit Unicode umgehen können und kein Betacode etc. erwarten.

Diakritika

Für Diakritika bedeutet Normalisierung, dass sie einfach entfernt werden.

  • Heutzutage als überflüssig erachtete Diakritika wie in aër und verò werden normalisiert, können aber noch zur Lemma-Disambiguierung oder zumindest zur Wortform-Disambiguierung beitragen.
  • Bedeutungstragende Diakritika werden nicht normalisiert. Beispielsweise wird eiuſdẽ zu eiusdẽ, aber nicht zu eiusde normalisiert. Durch Weglassen der Tilde kann offensichtlich nicht die richtige Wortform herauskommen. Stattdessen gbit es drei mögliche Fälle:
    • Es kommt gar keine echte Wortform heraus. Dann ist man nicht weiter als mit der originalen Form. Beispiele: eiuſdẽ wird zu eiusde und ſcīa wird zu scia.
    • Es kommt das falsche Lemma heraus, d.h. der Fehler wird kaschiert. Beispiel: itẽ wird zu ite. (Es gibt allerdings wohl nur wenige Beispiele, wo wirklich das falsche Lemma herauskommt.)
    • Es kommt die falsche Wortform im richtigen Lemma heraus: zum Beispiel reſiduũ wird zu residuu. Spätestens bei einer automatisierten linguistischen Analyse des Satzes wird sich die falsche Wortform als Problem erweisen.
  • Diakritika, die in der entsprechenden Sprache gar nicht vorkommen sollten, werden nicht normalisiert. Es ist nicht die Aufgabe der Normalisierung, die Textqualität stillschweigend zu verbessern.
  • Genauso Unicode-Fehler durch identisch aussehende Zeichen. Zum Beispiel ά (03AC) wird nicht zu ά (1F71) normalisiert. Es ist Aufgabe eines Workflow-Skriptes, solche Zeichen zu finden bzw. zu ersetzen.

Beispiele

Die folgende Tabelle zeigt einige Wörter vom Rohtext über das XML bis zum Anzeigesystem. Die Wörter sind nach Sprachen sortiert. In der Transkription gibt es zwei Versionen, den Rohtext und den bearbeiteten Rohtext. Der bearbeitete Rohtext entsteht, wenn man die Schreibweisen in den DESpecs in Unicode umsetzt. Dieser Schritt entspricht dem Anzeigemodus "Original". Im XML-Text werden mit <reg> zum einen die bekannten Textkorrekturen gemacht (das entspricht dem Anzeigemodus "Regularized"; der jeweilige type der Korrektur ist hier nicht angegeben), zum anderen gibt es in <reg> ein Attribut, in das alle Informationen aus dem Rohtext verschwinden, die wir nicht gut in Unicode darstellen können (das entspricht dem Anzeigemodus "Original" mit Checkbox "faithful"). Die Normalisierung teilt sich auf in eine Normalisierung für die Textanzeige (das entspricht dem Anzeigemodus "Normalized") und einer Normalisierung für Wörterbücher. In der Kommentarspalte wird jeweils die Besonderheit des Wortes genannt.

Transkription <reg> (im XML) Normalisierung (System) Kommentar
Rohtext nachbearbeitet @faithful @norm Anzeige Donatus/Pollux
Original faithful Regularized Normalized
Latein vnum = 1) unum v wird zwischen Konsonanten zu u
diuer$arum diuerſarum = diversarum u zwischen Vokalen wird zu v
DIVERSARVM = DIVERSARUM diversarum Großbuchstaben
periti{$s}imo peritißimo = peritissimo ß in Latein wird normalisiert
aër = aer aer 2) Trema: "kein Diphthong"
verò = vero vero 2) Gravis
hîc = hic hic 2) Zirkumflex
re$iduũ reſiduũ reſiduum residuum Abkürzungszeichen Tilde
re$idu\~u reſiduũ reſiduum residuum andere Schreibweise im Rohtext
$ph{ae}ræ ſphęræ = sphaerae ę ist kein Abkürzungszeichen
itaq; itaque = Abkürzung mit Semikolon
{quis} 5) u.a. quod = MUFI, offizielles Unicode-Zeichen
idem\'{que} idem́ 7) idemque = MUFI, PUA: &q3app (E8BF)
$enatori\'{que} (ſenatoriq́ꝫ) ſenatori{q3-it-a} ſenatorique senatorique kein Font enthält E8BF in kursiv 8)
<001>dã ꝗdã quidam = MUFI-Zeichen als Teil eines Wortes
ſcīa ſcientia scientia Wortliste
tertij = tertii j wird zu i
tert{ij} tertij = tertii einfache Ligatur
Deutsch Wasserstraße = = ß im Deutschen wird nicht normalisiert
Käse = = Umlaute
Tee-Ei = = Bindestrich
Fraktur z{uo} z zu = MUFI, PUA: &uosup (E72D)
z{uo} zuͦ = zu Alternative: combining letter o (0366)
Chinesisch 歴 (6B74) = 歷 (6B77) 6) Zeichenvariante in Unicode
中<国V> 中{国V} (中国) 3) 中{⿴口玉} 4) = Zeichenvariante nicht in Unicode
Griechisch ἀλλὰ ... = = ἀλλά ... Gravis wird für Wörterbuch zu Akut
βασιλεύς = = ϐασιλεύς: letter variation
{το}ῖς {το}ῖς (τοῖς) {το}ῖς = einfache Ligatur
τ{ὴν} τ{ὴν} (τὴν) τὴν τήν schwierige Ligatur
{τῶν} {τῶν} (τῶν) {τῶν} = Abbreviatur
  1. "=" in Regularisierung: es gibt kein <reg>, d.h. Regularized = Original (das gilt auch, wenn es kein @norm gibt); "=" in Normalisierung: die Wortform wird nicht normalisiert
  2. falls möglich, verwende die Diakritika zur Disambiguierung
  3. in Original-Spalte in Klammern: neues Original, sobald es <reg> mit faithful-Attribut gibt
  4. automatisiert eventuell eine Zwischenstufe 中<reg faithful="{国}" type="unresolved">国</reg>, damit die Suche nicht bricht; per Hand <reg faithful="中{⿴口玉}">中国</reg> (Wortgrenzen beachten, IDS-Sequenz einfügen)
  5. Semantisches {quis} wird in den DESpecs noch auf optisch umgestellt, eventuell auf den etwas länglichen MUFI-Namen {qslstrok}; {que} mit Makron kann zum Beispiel im Alvarus auch quam bedueten, also zu {q3app} oder kürzer {q3}?
  6. Es ist wohl auch im Original-Textmodus nicht sinnvoll, die Zeichenvariante an das Wörterbuch zu senden.
  7. Um die PUA zu vermeiden, könnte man statt <reg norm="idemque">idem́</reg> auch <reg faithful="idem́" norm="idemque">idemq́ꝫ</reg> schreiben, siehe hier?.
  8. Beachte die Klammern in der Original-Spalte. Zur Erläuterung siehe hier?.

Standard-Normalisierungen in allen Sprachen

  • ſ wird zu s
  • Es gibt keine Normalisierungsregeln für Satzzeichen.

Latein

  • Im Gegensatz zum Deutschen wird ß wie in eße oder serenißimi normalisiert.
  • ę wird zu ae
  • ij wird zu ii
  • Diakritika:
    • überflüssige Diakritika sind aër, verò, hîc
    • bedeutungstragende Diakritika sind reſiduũ
    • andere Diakritika werden nicht normalisiert
  • Medievalist characters wie ꝙ (A759) sollten regularisiert sein. Wenn sie doch noch enthalten sind, werden sie nicht normalisiert.
  • u/v: Malcolms Algorithmus für das Italienische kann (mit korrigiertem und angepasstem Umgang mit getrennten Wörtern) für das Lateinische übernommen werden. Sinnvoll ist allerdings wohl eine Neu-Implementierung in Lex. Beispiele für Malcolms Algorithmus:

vnum unum
diuerſarum diversarum
DIVERSARVM DIVERSARUM
PARVVS PARUUS
octauum octavum
loquuti loquuti

Überflüssige Diakritika können zur Lemma- und-Wortform-Disambiguierung verwendet werden. Details müssen noch geklärt werden.

Beachte, dass Donatus ein Kodierungsproblem hat: Wahrscheinlich wird ISO 8859-1 verwendet.

Italienisch

Über Italienisch weiß ich zu wenig. Aber zumindest die u/v-Regeln gelten auch hier.

Englisch

Gibt es sprachspezifische Normalisierungen?

Französisch

Über Französisch weiß ich zu wenig.

Deutsch

Die Beispiele in der Tabelle besagen, dass Umlaute und ß nicht normalisiert werden, im Gegensatz zum Lateinischen.

Darüber hinaus ist eine orthographische Normalisierung deutscher Texte schwierig. Eventuell wird es mehrere verschiedene Normalierungsregeln in Abhängigkeit vom Alter des Textes geben.

Fraktur

Mir ist noch nicht klar, ob {uo} mit einem MUFI-PUA-Zeichen oder als zuͦ geschrieben werden sollte. Diese Entscheidung findet aber vor der Normalisierung statt. Im ersten Fall findet die Normalisierung "zu" vor, im zweiten Fall "zuͦ".

Für die Normalisierung gibt es also die Regel: uͦ wird zu u.

Chinesisch

Die Normalisierung im Chinesischen funktioniert über eine Zeichenliste, in der jeweils ein oder mehr Zeichenvarianten auf ein Standardzeichen zurückgeführt werden. Beispielsweise wird das Zeichen 歴 (6B74) zu 歷 (6B77) normalisiert. (Beachte: der Unicode-Codepoint des Standardzeichens kann höher sein als der Codepoint der Zeichenvariante.)

Im Chinesischen gibt es eine Schwelle, unter der eine Zeichenvariante nicht mehr sinnvoll vom Standardzeichen unterschieden werden kann. Diese Entscheidung ist aber im Text bereits getroffen worden. Die Normalisierung ist nur noch rein technischer Akt: Ersetze das Unicode-Zeichen 歴 durch das-Unicode-Zeichen 歷, etc.

Es liegt in der Natur der Sache, dass die Zeichenliste eine offene Klasse ist. Die Liste wird regelmäßig ergänzt werden. Im Idealfall sollte dies möglich sein, ohne dass Programmcode angepasst werden muss. Insbesondere sollten der Mechanismus und die Liste selbst in getrennten Dateien stehen.

Auch im Original-Modus soll das Standardzeichen an das Wörterbuch geschickt werden.

Arabisch

Über Arabisch weiß ich zu wenig.

Keilschrift

Über Keilschrifttexte weiß ich zu wenig.

Griechisch

Im griechischen Text sollten alle Ligaturen regularisiert sein. Noch im Text vorhandene Ligaturen werden nicht normalisiert.

Im Text können middle dots enthalten sein, die ebenfalls nicht normalisiert werden.

Beachte bei der Kommunikation mit Pollux das Problem mit dem Sigma (Ticket #64):

  • Anzeige im Text sollte richtig sein
  • link sollte richtig sein
  • Wörterbuch-Eintrag sollte richtig sein

Sind dafür Änderungen an Donatus / Pollux nötig? Oder brauchen wir ein kleines Konvertierungsmodul?