Opened 9 years ago

Closed 8 years ago

Last modified 8 years ago

#50 closed enhancement (fixed)

normalization in German text

Reported by: wschmidle Owned by: jwillenborg
Priority: major Milestone:
Component: language-technology Version:
Keywords: Cc:
Parent Tickets: #144

Description

Ä Ö Ü ä ö ü ß - sollen nicht normalisiert werden. (Der Bindestrich wird zurzeit ganz weggelassen.)

Subtickets

Attachments (1)

MpdlNormalizer.java (52.4 KB) - added by jwillenborg 9 years ago.

Download all attachments as: .zip

Change History (10)

comment:1 Changed 9 years ago by wschmidle

Zum Beispiel wird Prestel-Verlag zu PrestelVerlag normalisiert, und Fußmärsche zu Fussmaersche.

comment:2 Changed 9 years ago by wschmidle

Beachte: dieses Ticket bezieht sich nur auf deutschsprachige Texte. Für andere Sprachen gibt es andere Normalisierungsregeln. Beispielsweise sollte in lateinischen Texten das "ß" in Serenißimi oder eße zu Serenissimi resp. esse normalisiert werden.

comment:3 Changed 9 years ago by jwillenborg

  • Type changed from defect to enhancement

Changed 9 years ago by jwillenborg

comment:4 Changed 9 years ago by jwillenborg

  • Owner set to jwillenborg

Falls hier Änderungen gewünscht werden, dann sollte das nicht in kleinen Häppchen passieren, denn das kostet mich dann jedesmal extra Zeit. Bitte also bei Änderungswünschen einen Text mit allen Änderungswünschen möglichst für alle Sprachen schreiben, der mit den anderen Nutzern abgesprochen wurde. Sonst ist das ein Hin und Her und kostet nur unnötig meine Zeit.

Anbei als Attachment die Java-Routine dazu, dort siehe die Methode:

public String normalize(String s, int[] offsets)

comment:5 Changed 9 years ago by wschmidle

Okay, ich werde konkrete Listen für die verschiedenen Sprachen machen. Es wird allerdings immer mal vorkommen, dass man noch etwas ändern muss. Und wir hatten ja den Plan, Normalisierungen mit Lex/Flex statt mit fest programmierten Java-Klassen zu machen.

Kurzfristige Lösung für Deutsch: In dieser Methode muss man, wenn ich es recht verstehe, für die Umlaute und ß einfach hinter dem ersten if (language.equals("de")) die Zeilen

case '\u00c4': replace = "Ae"; break;
case '\u00d6': replace = "Oe"; break;
case '\u00dc': replace = "Ue"; break;
case '\u00df': replace = "ss"; break;
case '\u00e4': replace = "ae"; break;
case '\u00f6': replace = "oe"; break;
case '\u00fc': replace = "ue"; break;

auskommentieren. Ob man den Bindestrich, d.h.

case '\u00ad': break; // soft hyphen
case '-': break;

auszukommentieren kann, ohne dass es an Zeilenenden oder sonstwo irgendwelche Nebenwirkungen hat, kann ich nicht sagen. Aber in anderen Sprachen, z.B. Latein, wird der Bindestrich jedenfalls nicht "normalisiert". (Den soft hyphen würde man dabei nur der Systematizität halber mit auskommentieren; bei der Anzeige ist er kein Problem.) Und ob man das "é", d.h.

case '\u00e9': replace = "e"; break;

normalisieren möchte, um Wörter im Wörterbuch zu finden, oder ob das ein Hack für Arboreal war, muss ich nochmal schauen.

Last edited 9 years ago by wschmidle (previous) (diff)

comment:6 Changed 9 years ago by wschmidle

Und ich halte das nicht-Auflösen der deutschen Umlaute nicht für ein enhancement, sondern das Auflösen der Umlaute für einen defect.

Last edited 9 years ago by wschmidle (previous) (diff)

comment:7 Changed 8 years ago by jwillenborg

  • Resolution set to fixed
  • Status changed from new to closed

Ich würde die Umlaute auch gern drin lassen, aber aufgrund der Besonderheit, dass unsere deutsche Morphologie (Celex) in den Originaldaten alle Umlaute zu "ae", "ue" etc. aufgelöst hat, kann ich bei der Normalisierung nicht darauf verzichten. Die Normalisierung wird ja sowohl bei der Indexierung als auch bei der textPollux-Darstellung mit Links zum Wörterbuch (demnächst DWDS) verwendet. Insofern können wir nur hoffen, mal eine bessere deutsche Morphologie zu bekommen, dann könnte ich es ändern, aber das kann noch länger dauern. Insofern ist dieser Punkt für mich erstmal erledigt.

In der Textdarstellung kann man übrigens auch die Originaldarstellung wählen, dann sieht man die Umlaute wieder.

Den Bindestrich-Fall: "case '-': break;" habe ich in der Normalisierung auskommentieren können, so dass er in der neuen normalisierten Darstellung dann erscheint.

Diese Änderungen sind bisher lokal im Test-System gemacht worden und werden Anfang 2011 in den Prototypen überführt.

comment:8 Changed 8 years ago by wschmidle

Siehe jetzt hier. Die Architektur der Normalisierung muss als ganzes geändert werden, deshalb mache ich dieses spezielle Ticket nicht wieder auf.

comment:9 Changed 8 years ago by wschmidle

  • Parent Tickets set to 144
Note: See TracTickets for help on using tickets.