07.01.2013 Aufrufe

Konzeption und Implementierung eines ... - Stephan, Daniel

Konzeption und Implementierung eines ... - Stephan, Daniel

Konzeption und Implementierung eines ... - Stephan, Daniel

MEHR ANZEIGEN
WENIGER ANZEIGEN

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

7.2. TERM-DOKUMENT-MATRIX ERSTELLEN 86<br />

on ebenso wie ion Suffixe des Wortes Information. Somit gibt es für das Wort<br />

Information genau elf unterschiedliche Suffixe, eins für jeden Buchstaben. Wie<br />

von Zhang et al. dargestellt, werden zwei Suffix-Arrays benötigt - <strong>eines</strong> nor-<br />

mal von links nach rechts (Information, nformation, formation, . . . ), <strong>und</strong> <strong>eines</strong><br />

genau umgekehrt von rechts nach links (Information, Informatio, Informati,<br />

. . . ; dieses könnte wohl passender Prefix-Array genannt werden). Beide Arrays<br />

werden sortiert (das Suffix-Array normal <strong>und</strong> das Prefix-Array umgekehrt von<br />

rechts nach links), so dass die mehrfachen Vorkommen gleicher Wortfolgen in<br />

der durch die Sortierung hergestellten Ordnung direkt nacheinander stehen <strong>und</strong><br />

somit leicht erkannt werden.<br />

Der PhraseDetector <strong>und</strong> der SentenceDetector sind jeweils Producer.<br />

Ein Producer erzeugt Objekte, in diesen Fällen eben Phrase oder<br />

SentencesAndPhrases Objekte. Die verschiedenen Producer sind zusammen<br />

mit dem Tokenizer in Reihe geschaltet. Dieser steht am Anfang der Ket-<br />

te <strong>und</strong> bildet die Schnittstelle zum Lexer. Er ermöglicht es, über die er-<br />

kannten Token <strong>eines</strong> Dokumentes zu iterieren <strong>und</strong> implementiert dazu die<br />

Iterator <strong>und</strong> Iterable Interfaces. Diese gehören zum Standardumfang der<br />

Java-Klassenbibliothek <strong>und</strong> stellen somit die übliche Art <strong>und</strong> Weise dar, wie in<br />

Java über Datenmengen iteriert wird.<br />

Der SentenceProducer nutzt den Tokenizer, um über die Token zu iterieren,<br />

<strong>und</strong> erzeugt eine Reihe von Sentence Objekten. Der PhraseDetector, nach<br />

Tokenizer <strong>und</strong> SentenceDetector das Dritte Objekt in der Kette, ruft die<br />

Sentences vom SentenceDetector ab, indem er dessen produce() Methode<br />

mehrfach aufruft.<br />

Nach diesem Vorgang werden die gesammelten Token mit dem Snowball-<br />

Stemmer 1 auf ihre Stammform zurückgeführt. Dadurch werden beispielsweise<br />

die ähnlichen Worte ” laufen“ <strong>und</strong> ” läuft“ auf die gleiche Buchstabenfolge re-<br />

duziert, so dass sie in der später aufgebauten Tabelle dieselbe Stelle besetzen.<br />

Dieses ist ein übliches Vorgehen bei solchen <strong>und</strong> ähnlichen Textklassifizierungs-<br />

aufgaben. Damit die ursprünglichen Begriffe nicht verloren gehen, wird ein Ver-<br />

zeichnis angelegt, das für jedes ” gestemte“ Wort die dazugehörigen ursprüngli-<br />

chen Begriffe enthält. Dieses wird später für die Benennung wichtig.<br />

Danach wiederum werden die Token mit einer Liste von Stoppworten (sie-<br />

he Abschnitt 7.1) verglichen. Alle Token, die in dieser Liste wiedergef<strong>und</strong>en<br />

werden, werden an dieser Stelle fallen gelassen <strong>und</strong> tauchen somit in späteren<br />

1 WWW Adresse: http://snowball.tartarus.org

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!