Der hier vorgestellte Tokenizer...
… zerlegt Zeichenfolgen in sinnvolle Wortstücke (In eine Liste).
… ist auf Webuser-Texte ausgelegt.
… erhält alle Zeichen außer Leerzeichen, Zeilenumbrüche und Tabs.
… ist auf deutsche Wörter ausgelegt und kann außer den Standard-ASCII-Zeichen ausschließlich mit folgenden Sonderzeichen umgehen: öäüÖÄÜ߀“„’´»«…
… arbeitet mit der Zeichenkodierung UTF8. Dies ist beim Input sehr wichtig, weil sonst die Sonderzeichen nicht richtig überprüft werden können. Der Output ist ebenfalls in UTF8 kodiert.
Vorgehensweise:
·
Es
wird eine Startliste erstellt, indem bei
allen Leerzeichen, Zeilenumbrüchen und Tabs aufgespalten wird.
·
Alle
Wörter werden in einen rekursiven
Algorithmus gesteckt. Das heißt, Teilstücke von
Wörtern können final eingetragen
und Restteilstücke erneut in denselben Algorithmus gesteckt
werden. Bleibt eine
Zeichenfolge bis zum Schluss nicht zugeordnet, wird diese in die
Finalliste
eingetragen.
An dieser Stelle
werden hauptsächlich
„reguläre Ausdrücke“ verwendet um
Teilstücke bzw. Tokens zu erkennen.
Ein
„partieller Match“ hat zur Folge, dass das
„gematchte“ Token in die finale Liste eingetragen
wird und der Rest rekursiv
weiterverarbeitet wird. Dabei bleibt die Reihenfolge der Tokens
erhalten
(„inorder“).
Es werden jedoch auch
„exakte Match“-Überprüfungen gemacht,
bei denen kein „Restteilstück“ mehr
übrig
bleibt.
· Zu jedem Token wird eine Information über das vorherige und nachfolgende Zeichens mitgenommen. So werden komplexere Bedingungen möglich