160 likes | 254 Views
Herzlich Willkommen. zum 3. Vortrag Lexikalische Fehler - Zeichenanalyse Referenten: Sebastian Hochstetter Vande Winkelhausen. Inhalt. Problematik Häufigste Fehler Algorithmen zur automatischen Korrektur Prüfsummen Übersetzer Scannergenerator. Problematik.
E N D
Herzlich Willkommen zum 3. Vortrag Lexikalische Fehler - Zeichenanalyse Referenten: Sebastian Hochstetter Vande Winkelhausen
Inhalt • Problematik • Häufigste Fehler • Algorithmen zur automatischen Korrektur • Prüfsummen • Übersetzer • Scannergenerator
Problematik • Benutzungsoberfläche und -Schnittstelle • Datenbankanfragen • Suchmaschinen im Internet • ISBN-Nummern, Kreditkarten • Länderspezifische Besonderheiten • Tastaturlayout
Häufigste Fehler • 80% aller Rechtschreibfehler: • Vertauschen von 2 Buchstaben England -> Engalnd • Ein Buchstabe zuviel Canada -> Caanada
Häufigste Fehler • 80% aller Rechtschreibfehler: • Ein Buchstabe fehlt parallel -> paralel • Ein Buchstabe ist falsch Slashdot.org -> Slashdor.org
Lösungsansätze • Wörterbuch zum Vergleichen • Ausprobieren • Prüfsumme einbauen
Möglicher Algorithmus • Naiver Ansatz: • Vergleiche mit Wörterbuch • Wenn falsch geschrieben: wende alle möglichen Kombinationen an, um richtiges Wort zu finden. • Verbesserung: • Lasse mögliche falsche Buchstaben weg und vergleiche Anfang und Ende
Algorithmus für Namen • Beschränkung der Suchtabelle: • Erste Buchstabe des Nachnamens meistens richtig • Gewichtung der Buchstaben • Seltenere Buchstaben wiegen mehr als häufig auftretende
Gewichtung a b c d e f g h i j ... x y z James Martin 0 N N N 0 N N N 0 0 ... N N N Jim Marten3 0 0 0 3 0 0 03 8 ... 0 0 0 ----------------------------- 3 N N N 3 N N N 3 8 ... N N N Ähnlichkeit = 3+3+3+8+5+3+4+3 = 32
Gewichtung a b c d e f g h i j ... x y z James Martin 0 N N N 0 N N N 0 0 ... N N N John Merton0 0 0 0 3 0 0 40 8 ... 0 0 0 ----------------------------- 0 N N N 3 N N N 0 8 ... N N N Ähnlichkeit = 3+8+5+3+4+3 = 26
Prüfsumme (Codierung) • ISBN • Summe der ersten 9 Zahlen mod 11 • Codes auswählen • Q = {0,1,2}000, 011, 022, 102, 110, 121, 201, 212, 220
Übersetzer (Compiler) • Zeitersparnis bei der Entwicklung • Übersetzer sollte kleinere Tippfehler behandeln • Fehlererkennung mit vorgestellten Algorithmen und Schlüsselwörter-tabellen
Scanner- und Parsergenerator • LEX bzw. FLEX • YACC • StreamTokenizer