WordSuggester (Version 1.0)
Bachelor-Gesellenstück SS2005
von Sinian Zhang
Lehrstuhl für Computerlinguisitk, Universität Heidelberg

Abstract

Das Bachelor-Gesellenstück WordSuggester ist vom Studenten Sinian Zhang allein entworfen und entwickelt.

Der WordSuggester(Version 1.0), mit seiner Benutzerschnittstelle(GUI), ist eine lexikalische Nachschlagedatenbank für die englische Wörter, durch diese Datenbank sind die sogenannten "am meisten in der WWW assoziierten" Wortstämme bzw. Wörter für ein vom Benutzer eingegebenes Zielwort nachzuschlagen, die sehr oft, aber nicht unbedingt, mit dem Zielwort eine "enge" lexikalisch-semantische Relation haben. Durch diese Datenbank sind auch die Wörter oder Begriffe nachzuschlagen, die mit dem Zielwort in verschiedenen Wortarten durch eine lexikalisch-semantische Relation(Synonym, Antonym, Hyperonym, Hyponym, Holonym, Meronym, etc.) verknüpft sind.

Beim WordSuggester handelt es sich um zwei Systeme. Das erste System, der Hauptbestandteil des Gesellenstücks, ist von Google Web APIs Service und Apache Jakarta Lucene unterstützt, die Daten des Systems werden durch das Runterladen und Analysieren von Webseiten gewonnen, die Datenanalyse basiert auf eine Kombination von zwei statistischen Algorithmen. Diese Datenmenge in diesem System stellt keine komplette Datenbank/Thesaurus dar, sie ist erst durch Nutzen dieses Systems auf- und ausgebaut, in diesem Sinne ist WordSuggester auch dem Benutzer ein Tool, falls die Daten für ein Zielwort nicht vorhanden ist, durch einen kontrollierbaren Prozess die Daten schnell zu gewinnen und dabei zur Datenbank des ersten Systems beizutragen. Das zweite System ist von JWord unterstützt, die Daten des zweiten Systems basieren auf WordNet-Datenbank/Thesaurus.
Einordnung des Gesellenstücks

Das Anwendungsprogramm als Produkt des Gesellenstücks bietet dem Benutzer zwei Datenbanken zur Verfügung, es dient als ein Nachschlagwerk, es hilft dem Benutzer eventuell beim Suchen im Internet, sein Suchwort(Query) zu erweitern, es hilft auch dem Benutzer bei der Textproduktion und Texterfassung, seinen Text zu bereichern.
Ziel des Gesellentstücks

Das Gesellenstück stammt aus einem Seminarprojekt Local Association Clustering.

- In diesem Projekt wurde der Algorithmus "Local Association Clustering" zum Thema "Query Expansion" beim Hauptseminar Information Retrieval implementiert. Dieser Algorithmus basiert auf dem gemeinsamen Auftreten(Co-Occurence) von Wortstämmen bzw. Wörtern innerhalb eines Textes, die Idee dahinter ist, dass zwei Wortstämme/Wörter, die sehr oft in einem Text mehrmals auftreten, relevant und zueinander assoziiert sind. Auf dieser Basis wird ein anderer Algorithmus nämlich "Local Metric Clustering" in dieses Gesellenstück dazu eingebaut, dieser Algorithmus berücksichtigt auch die Distanz zwischen zwei Wortstämmen/Wörtern, das heißt, wenn zwei Wortstämme/Wörter nicht nur oft gemeinsam in einem Text auftreten, sondern auch oft nah voneinander in einem Text stehen, z.B. innerhalb eines Satzes, sind sie eher noch "stärker" relevant und zueinander assoziiert. Sicherlich ist das ein Ziel, die Aufgabe Query Expansion durch die Kombination von zwei Algorithmen in diesem Gesellenstück zu verbessern.

- Bei oben den Algorithmen zur Query Expansion wird eine relativ kleine Dokumentenmenge analysiert, solche Algorithmen sind unter "Lokalen Strategien" zu klassifizieren, im Gegensatz dazu gibt es auch "Globale Strategien", diese Strategien basieren auf einer Thesaurus-Struktur, die durch statistische oder linguistische Verfahren über eine große Dokumentenmenge(oder das Gesamtsystem einer Sprache) konstruiert werden kann. Eben im Gesellenstück wird WordNet-Datenbank/Thesaurus eingeführt, was einigermaßen als eine Ergänzung zu den zwei lokalen Verfahren dient, und damit der Benutzer mehr verschiedene Wörtereinträge aus verschiedenen Verfahren in zwei Systemen zum Vergleichen und Auswählen hat.

- Das Seminarprojekt ist bloß die Implementierung eines Algorithmus, die Funktionalität ist da und das Programm läuft fehlerfrei, aber viele Probleme(geschildert im Folien zum Referat) bleiben ungelöst, vor allem das Problem des Zeitaufwandes, der durch das Verarbeiten und Analysieren von Großdatenmenge und das Verbinden und Runterladen von Menge Webseiten verursacht sind. Zur Optimierung des Gesamtprogramms sollen die solchen verschiedenen Probleme im Gesellenstück möglichst berücksichtigt und gelöst werden.

- Das Programm des Seminarprojektes ist "primitiv", es ist per Kommandozeile ausgeführt, viele Parameter zur Kontrolle des Programmslaufs muss man in den Quell-Codes ändern, sie wieder kompilieren und das Programm laufen lassen. Es ist auch ein Ziel im Gesellenstück, das Programm durch eine Benutzerschnittstelle(GUI) mit vielen Menüs, Buttons, Dialogs, etc. benutzerfreundlicher und leichter kontrollierbar zu machen, auch dabei wird das Lernziel erreicht, und zwar das GUI-Toolkit Java-Swing mal richtig zu lernen und verwenden.

Links

  Abschlussvortrag (PDF-Version) | Abschlussvortrag (PowerPoint-Version)

  Download

  INSTALL (Anweisungen über Kompilation und Installation)

  README (Überblick über das Programm und seine Benutzung)

  JavaDoc (Dokumentation über die Packages, Klassen und Methoden)

  Klassendiagramm (Überblick über die Klassenstruktur)


Letze Änderung am 25. Mai 2005, Sinian Zhang (ZhangSinian@hotmail.com)