5.1.  Tokenisierer

5.1.1.  Grundproblem

Grundproblem: Vom Zeichenstrom zur Folge von Tokens

Rohdaten

Rohe, elektronisches Sprachdaten liegen in Dateien vor, welche nichts anderes als eine Folge von Einzelzeichen, d.h. ein kontinuierlicher Zeichenstrom sind.

Token: Einheit der Textsegementierung

Tokens sind die grundlegenden Analyseeinheiten nachgeschalteter sprachtechnologischer Systeme wie Wortartenbestimmung, Wortkorrektur, morphologische Analyse, Lexikonzugriff, syntaktische Analyse.

Grundfunktionen eines Programmes zur Tokenisierung (EVA-Prinzip)

5.1.2.  Zeichenkodierung

Was ist ein Zeichen auf dem Computer?

Was ist ein Zeichen auf dem Computer?

5.1.3.  Programme

Typische Beispiele für Tokenisierer
Tokenisierung aus einem Zeichenstrom oder einer Zeichenkette in eine Datenstruktur einer Programmiersprache

Beispiel 5.1.1 (Covingtons Tokenizer [COVINGTON 2003]).
Tokenisierer in Prolog für Englisch: Konsumiere eine Textdatei oder eine Benutzereingabe und produziere daraus eine Prolog-Liste.

Joe’s brother doesn’t owe us $4,567.89.

[ w([j,o,e]),                      % w = Wort  
  w([s]),  
  w([b,r,o,t,h,e,r]),  
  w([d,o,e,s,n,t]),  
  w([o,w,e]),  
  w([u,s]),  
  s(’$’),                           % s = Symbol  
  n([’4’,’5’,’6’,’7’,’.’,’8’,’9’]), % n = Zahl  
  s(’.’) ]

Typische Beispiele für Tokenisierer
Tokenisierung mit rein textuellem Output: Lese eine Textdatei ein und erzeuge daraus

Beispiel 5.1.2 (Schmids Tokenizer im UNIX-Stil [SCHMID 2006]).
Sprachunabhängiger Tokenisierer mit Befehlszeilen-Schnittstelle und Abkürzungsdatei


$ cat file.txt
"Bach’sche Musik
mag Dr. Fritz.  Ja."
$ cat ger-abbrev
Dr.
usw.


$ separate-punctuation +1 +s +l ger-abbrev file.txt
"
Bach’sche
Musik
mag
Dr.
Fritz
.

Ja
.
"

Typische Beispiele für Tokenisierer
Tokenisierung mit XML-Output (ev. aus XML-Input), d.h. in einer Auszeichnungssprache (engl. markup language).

Beispiel 5.1.3 (Der LT TTT Tokenizer [GROVER et al. 2000]).
April 20: the government collapsed this afternoon


pict

Abbildung 5.1: Einfachstes XML-Tokenisat


Typische Beispiele für Tokenisierer
Auf die Textsorte manuell angepasste Tokenisierer in einer Programmiersprache wie PERL, Python oder Xerox Finite State Tools, welche einen einfachen Umgang mit regulären Ausdrücken erlauben.

Definition 5.1.4 (Reguläre Ausdrücke (engl. regular expressions)). Ein regulärer Ausdruck ist eine relativ standardisierte Kurz-Notation, um Zeichenketten mit bestimmten Eigenschaften zu beschreiben.

Praktisch eingesetzt werden sie für die nicht-wörtliche Suche (engl. pattern matching), Suchen-und-Ersetzen und Segmentieren von Zeichenketten.

Einführung in reguläre Ausdrücke

Z.B. in unserem CLab: http://www.cl.uzh.ch/clab/regex