Changes between Version 2 and Version 3 of normalization/1


Ignore:
Timestamp:
Dec 10, 2010, 11:56:58 AM (13 years ago)
Author:
Wolfgang Schmidle
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • normalization/1

    v2 v3  
    33== 1. Wie werden Wörter zurzeit normalisiert? ==
    44
    5 Im folgenden gehe ich alle Sprachen einzeln durch. Zuerst werden jeweils die Normalisierungen in der Arboreal-Klasse [attachment:OrthographicRules.java OrthographicRules] aufgelistet, danach werden die Änderungen in der Backend-Klasse [attachment:MpdlNormalizer.java MpdlNormalizer] (siehe auch [source:hg/software/eXist/mpdl-modules/src/de/mpg/mpiwg/berlin/mpdl/lt/analyzer/MpdlNormalizer.java hier]) aufgelistet.
     5In Arboreal wird jede Sprache getrennt normalisiert. Im folgenden gehe ich die Sprachen einzeln durch. Zuerst werden jeweils die Normalisierungen in der Arboreal-Klasse [attachment:OrthographicRules.java OrthographicRules] aufgelistet, danach werden die Änderungen in der Backend-Klasse [attachment:MpdlNormalizer.java MpdlNormalizer] (siehe auch [source:hg/software/eXist/mpdl-modules/src/de/mpg/mpiwg/berlin/mpdl/lt/analyzer/MpdlNormalizer.java hier]) aufgelistet.
    66
    77In den Tabellen wird immer zuerst die normalisierte Form genannt, und dann alle Formen, die in dieselbe Form normalisiert werden. Beispiel:
     
    1616
    1717";" wird getilgt, wenn das Zeichen direkt davor kein Buchstabe ("Character.isLetter") ist.
    18 
    19 Malcolm: Linguistic note: /u/ and /v/ are rarely phonemic in Latin, as in
    20   * alui 's/he nourished' vs. alvi 'of a belly',
    21   * volui 's/he wished' or 'it rolled' vs. volvi 'to be rolled',
    22   * (in)seruit 's/he joined together' vs. (in)servit 's/he serves'.
    2318
    2419|| -- || combining ò (0300) combining ó (0301) combining ô (0302) soft hyphen (00AD)  ||
     
    4338|| -- || 〈 (2329) 〉 (232A)  ||
    4439
    45 
    46 Beachte: Zirkumflex (z.B. û 00FB, ê 00EA) wird normalisiert, aber nicht Tilde (z.B. ũ 0169, ẽ 1EBD)
     40Das Zirkumflex (z.B. û 00FB, ê 00EA) wird normalisiert, aber nicht die Tilde (z.B. ũ 0169, ẽ 1EBD).
    4741
    4842Backend zusätzlich:
     
    5448=== Italienisch ===
    5549
    56 Regeln:
    57  * j: ij wird zu ii
    58  * t: tio wird zu zio (i und o können auch groß sein)
    59  * h am Wortanfang wird getilgt, außer bei hai, hanno, ho*  ('h' only appears at the beginning of some pres. indic. forms of 'avere' -- with the exception of some unimportant loanwords in modern Italian (which I choose to ignore))
    60  * hyphen/soft hyphen wird vor whitespace getilgt, soft hyphen wird durch hyphen ersetzt
    61 
     50Regeln für u/v:
    6251 * u wird zu v, wenn direkt davor und danach ein Vokal (d.h. A E I O U Æ Œ in groß/klein) steht (hyphen/soft hyphen davor wird übersprungen)
    6352 * v wird zu u, wenn direkt davor und danach ein Konsonant (d.h. B C D F G H K L M N P Q R S T V W X Z in groß/klein sowie ſ ß) steht (hyphen/soft hyphen danach wird übersprungen). Am Anfang eines Wortes oder wenn direkt davor kein Buchstabe ist, reicht ein Konsonant danach.
    64 Beachte den Unterschied zur einfachen Regel "v wird u" im Lateinischen. Beispiele für Malcolms Algorithmus:
     53Die Regeln für u/v stehen im Gegensatz zur einfachen Regel "v wird zu u" im Lateinischen. Lateinische Beispiele für Malcolms Algorithmus:
    6554 
    6655|| vnum || unum ||
     
    7665while ((((c_n = s.charAt(y)) == '-') || (c_n == '\u00ad')) && (y++ < s.length() - 1));
    7766}}}
     67
     68weitere Regeln:
     69 * j: ij wird zu ii
     70 * t: tio wird zu zio (i und o können auch groß sein)
     71 * h am Wortanfang wird getilgt, außer bei hai, hanno, ho*  ('h' only appears at the beginning of some pres. indic. forms of 'avere' -- with the exception of some unimportant loanwords in modern Italian (which I choose to ignore))
     72 * hyphen/soft hyphen wird vor whitespace getilgt, soft hyphen wird durch hyphen ersetzt
    7873
    7974Wortanfang definiert als whitespace oder ’ (2019) oder \
     
    10196
    10297Backend:
    103 
    104 Regeln für u, j, v, t, h, hyphen nicht übertragen wegen Programmfehler(n)
    105 
    106 stattdessen die lateinischen Regeln übernommen (allerdings ohne j, v, "q;", ";", combining characters, soft hyphen, 〈 〉). 
    107 Die zusätzlichen e-Varianten sind ebenfalls nicht übernommen, stattdessen eine neue Regel "ẍ (1E8D) wird zu e" (gemeint ist ẽ (1EBD), was auch in den zusätzlichen Regeln für Latein vorkommt).
     98 * Regeln für u, j, v, t, h, hyphen nicht übertragen wegen Programmfehler(n)
     99 * Stattdessen die lateinischen Regeln übernommen (allerdings ohne j, v, "q;", ";", combining characters, soft hyphen, 〈 〉).
     100 * Die zusätzlichen e-Varianten sind ebenfalls nicht übernommen, stattdessen eine neue Regel "ẍ (1E8D) wird zu e" (gemeint ist ẽ (1EBD), was auch in den zusätzlichen Regeln für Latein vorkommt).
    108101
    109102=== Englisch ===
     
    112105
    113106Backend: wie bei Latein; wieder ohne j, v, "q;", ";", aber mit combining characters, soft hyphen, 〈 〉. Wieder zusätzlich mit ẍ (1E8D).
    114 
    115107
    116108=== Französisch ===
     
    197189|| -- || hyphen (002D) soft hyphen (00AD)  ||
    198190
    199 Optisch identisch, aber "Tonos" (der monotonische Akzent im modernen Griechisch) wird zu "Oxia" (der Akut im Altgriechischen).
     191ά έ ή ί ό ύ ώ: Optisch identisch, aber "Tonos" (der monotonische Akzent im modernen Griechisch) wird zu "Oxia" (der Akut im Altgriechischen).
    200192
    201193Tippfehler: \uu1f7d statt \u1f7d bei ώ
     
    249241|| ι (03B9) || ί (03AF)  ||
    250242
    251 Diese Regeln sind offenbar nicht oft verwendet worden.
    252 
     243Weiterer Tippfehler bei Ί (1FDB).
     244
     245Die Codepoints 1F58, 1F5A, 1F5C, 1F5E in der Klasse von Υ sind im Gegensatz zu 1F59, 1F5B, 1F5D, 1F5F in Unicode nicht belegt, denn Υ mit Spritus lenis ("psili") gibt es nicht.
    253246
    254247Backend: genauso
     
    256249=== Weiteres ===
    257250
    258 In Arboreal werden alle Buchstaben eines Wortes außer dem ersten in Kleinbuchstaben normalisiert. (Ausnahme natürlich u.a. Chinesisch.) In der Backend-Version wurde dies weggelassen.
     251In Arboreal werden alle Buchstaben eines Wortes außer dem ersten zu Kleinbuchstaben normalisiert (Ausnahme natürlich u.a. Chinesisch). In der Backend-Version wurde dies weggelassen.
    259252
    260253In der Backend-Version gibt es zusätzlich eine Methode "deNormalizeToRegExpr". Diese Methode erstellt Teile von regexes, die für Latein, Deutsch und Englisch wohl aus einer normalisierten Form alle Wortformen finden soll, die zu dieser Wortform normalisiert werden. Die Implementation scheint allerdings fehlerhaft zu sein. Ein Beispiel: Wasserstraße wird normalisiert zu Wasserstrasse, daraus wird in "deNormalizeToRegExpr" wiederum "Waßerstraße|Wass[eé]rstrass[eé]". Es werden also die Wortformen Waßerstraße, Wasserstrasse, Wassérstrasse, Wasserstrassé und Wassérstrassé gefunden, aber nicht die originale Form Wasserstraße.