Konzeption und Implementierung eines ... - Stephan, Daniel
Konzeption und Implementierung eines ... - Stephan, Daniel
Konzeption und Implementierung eines ... - Stephan, Daniel
Erfolgreiche ePaper selbst erstellen
Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.
auth+xml+doc=sxdoc<br />
gpg<br />
<strong>Konzeption</strong> <strong>und</strong> <strong>Implementierung</strong> <strong>eines</strong><br />
Clusteringmechanismus für ein Online<br />
Informationssystem<br />
instant messaging<br />
group mail/forum<br />
images<br />
graphs<br />
authenticate doc publish doc to the net<br />
xml+doc=xdoc archive<br />
map a:b multiple vocabularies<br />
forward query to specialized system<br />
crawl and index only certain websites<br />
group chat<br />
Diplomarbeit<br />
<strong>Daniel</strong> <strong>Stephan</strong><br />
stephan@danielstephan.com<br />
share bibliographies bibster<br />
related docs in the net<br />
jambalaya<br />
search the net<br />
protégé<br />
eclipse rcp<br />
webobjects<br />
springframework<br />
struts<br />
webwork 2<br />
jung<br />
judge<br />
weka<br />
yellow pages<br />
mail<br />
job offers<br />
networking<br />
tables numeric<br />
textual<br />
graphic<br />
binary<br />
classify<br />
postnuke PHP<br />
12. August 2005<br />
share documents docster<br />
meta search<br />
classify page in cluster<br />
java<br />
.NET<br />
java<br />
Paperball<br />
specialized system<br />
experts<br />
communication<br />
data entries<br />
desktop search<br />
nutch<br />
crawl<br />
rich client<br />
web client<br />
java algorithms<br />
knowledge<br />
p2p<br />
Search Engine<br />
technology<br />
DataMining<br />
Clustering<br />
goal<br />
prediction<br />
description<br />
Recommendations<br />
Navigation<br />
Orienteering<br />
Teleporting<br />
Classification<br />
vis ually<br />
textually<br />
list clusters to in- or exclude from search<br />
formulate query<br />
create set<br />
name sets<br />
noname sets<br />
information trends<br />
purchase need (if like a then like b)<br />
infer information from data<br />
provide overview<br />
Usage based<br />
Content based<br />
graph<br />
list<br />
tree<br />
search within search results<br />
add links to the cluster(s) the doc. belongs to<br />
step by step navigating<br />
navigate to similar documents<br />
search by example<br />
grouping search results<br />
flat<br />
hierarchical<br />
alternative thesaurus<br />
automate procedure<br />
ordering by similarity<br />
aid navigation<br />
vivisim o<br />
clusty.com<br />
bmj.com<br />
aaas.org
Inhaltsverzeichnis<br />
I. Einleitung 1<br />
1. Überblick über Inhalt <strong>und</strong> Prozesse 3<br />
1.1. Einleitung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3<br />
1.2. Der Prozess . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4<br />
1.3. Entwicklungsumgebung . . . . . . . . . . . . . . . . . . . . . . . 5<br />
2. Business Analyse 9<br />
2.1. Ausgangssituation . . . . . . . . . . . . . . . . . . . . . . . . . . 9<br />
2.2. Ziele . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10<br />
2.3. Herausforderungen . . . . . . . . . . . . . . . . . . . . . . . . . . 11<br />
3. Marktanalyse 15<br />
3.1. Kriterien Auswahl . . . . . . . . . . . . . . . . . . . . . . . . . . 15<br />
3.2. Konkurrenten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17<br />
3.2.1. FIZ-Technik e.V. . . . . . . . . . . . . . . . . . . . . . . . 17<br />
3.2.2. FIZ Karlsruhe / STN Online Services . . . . . . . . . . . 19<br />
3.2.3. Deutsches Maritimes Kompetenz Netz (DMKN) . . . . . 20<br />
3.2.4. HWWA - Hamburgisches Welt-Wirtschafts-Archiv . . . . 20<br />
3.2.5. MarineTalk . . . . . . . . . . . . . . . . . . . . . . . . . . 22<br />
3.2.6. MarineNet . . . . . . . . . . . . . . . . . . . . . . . . . . 23<br />
3.3. Wissenschaftliche Angebote . . . . . . . . . . . . . . . . . . . . . 23<br />
3.3.1. Netacademy, a scientific community . . . . . . . . . . . . 23<br />
3.3.2. SpringerLink . . . . . . . . . . . . . . . . . . . . . . . . . 26<br />
3.3.3. ACM Portal . . . . . . . . . . . . . . . . . . . . . . . . . . 27<br />
3.4. Technisch Relevantes . . . . . . . . . . . . . . . . . . . . . . . . . 29<br />
3.4.1. Clusty / Vivísimo . . . . . . . . . . . . . . . . . . . . . . 29<br />
3.4.2. carrot 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
Inhaltsverzeichnis iv<br />
II. Definition 33<br />
4. Technische Analyse 35<br />
4.1. Ist-Analyse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35<br />
4.1.1. Komponenten <strong>und</strong> Schnittstellen . . . . . . . . . . . . . . 35<br />
4.1.2. Prozesse . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36<br />
4.1.3. Datenmodell . . . . . . . . . . . . . . . . . . . . . . . . . 37<br />
4.1.4. Einschränkungen . . . . . . . . . . . . . . . . . . . . . . . 42<br />
4.2. Prototyp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43<br />
4.2.1. Oberflächenprototyp . . . . . . . . . . . . . . . . . . . . . 43<br />
4.2.2. Prozess: Cluster erzeugen . . . . . . . . . . . . . . . . . . 45<br />
4.2.3. Datenmodell . . . . . . . . . . . . . . . . . . . . . . . . . 47<br />
4.2.4. Komponenten <strong>und</strong> Schnittstellen . . . . . . . . . . . . . . 47<br />
5. Wissenschaftliche Analyse 51<br />
5.1. Information Retrieval . . . . . . . . . . . . . . . . . . . . . . . . 51<br />
5.2. Knowledge Discovery in Databases . . . . . . . . . . . . . . . . . 54<br />
5.3. Repräsentation von Dokumenten . . . . . . . . . . . . . . . . . . 56<br />
5.3.1. Einordnung in Situation des ISL . . . . . . . . . . . . . . 57<br />
5.3.2. Das Dokument als Wortsack (aka word-bag) . . . . . . . . 57<br />
5.3.3. Methoden für die Beschränkung auf wesentliche Features 59<br />
5.3.4. Latent Semantic Indexing . . . . . . . . . . . . . . . . . . 62<br />
5.4. Clustering . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66<br />
III. Umsetzung 69<br />
6. Statisches Modell 71<br />
6.1. Data Objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71<br />
6.2. Data Access Objects . . . . . . . . . . . . . . . . . . . . . . . . . 71<br />
6.3. Data Access Commands . . . . . . . . . . . . . . . . . . . . . . . 75<br />
7. Dynamisches Modell 83<br />
7.1. Stoppworte finden . . . . . . . . . . . . . . . . . . . . . . . . . . 83<br />
7.2. Term-Dokument-Matrix erstellen . . . . . . . . . . . . . . . . . . 84<br />
7.3. Matrix Berechnungen . . . . . . . . . . . . . . . . . . . . . . . . 87<br />
7.4. Cluster Analyse . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89<br />
7.5. Cluster Benennung <strong>und</strong> Matrizen . . . . . . . . . . . . . . . . . . 90
v Inhaltsverzeichnis<br />
8. Verwendung des Programms 93<br />
8.1. Installation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93<br />
8.2. Benutzeroberfläche . . . . . . . . . . . . . . . . . . . . . . . . . . 94<br />
8.3. Konfiguration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96<br />
IV. Abschluss 99<br />
9. Ergebnisse <strong>und</strong> Fazit 101<br />
9.1. Technische Perspektive . . . . . . . . . . . . . . . . . . . . . . . . 101<br />
9.1.1. Testdaten . . . . . . . . . . . . . . . . . . . . . . . . . . . 101<br />
9.1.2. Laufzeit . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101<br />
9.1.3. Qualität . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102<br />
9.1.4. Ausblick . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104<br />
9.2. Fachliche Perspektive . . . . . . . . . . . . . . . . . . . . . . . . . 106<br />
9.2.1. Potentiale . . . . . . . . . . . . . . . . . . . . . . . . . . . 106<br />
9.2.2. Ausblick . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107<br />
9.3. Fazit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110<br />
Glossar 111<br />
Literaturverzeichnis 115
Inhaltsverzeichnis vi
Tabellenverzeichnis<br />
4.1. Dataobject . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40<br />
4.2. Dataobject (Fortsetzung) . . . . . . . . . . . . . . . . . . . . . . 41<br />
9.1. Laufzeit bei 521 Dokumenten . . . . . . . . . . . . . . . . . . . . 102<br />
9.2. Laufzeit bei 1684 Dokumenten . . . . . . . . . . . . . . . . . . . 102
Tabellenverzeichnis viii
Abbildungsverzeichnis<br />
1.1. Das Prototypen-Modell . . . . . . . . . . . . . . . . . . . . . . . 5<br />
2.1. ISL-Strategie-Komponenten . . . . . . . . . . . . . . . . . . . . . 10<br />
3.1. Vergleichstabelle . . . . . . . . . . . . . . . . . . . . . . . . . . . 18<br />
3.2. Beispiel einer MarineNet Suchmaske . . . . . . . . . . . . . . . . 24<br />
3.3. Inhalt von Drewry, angeboten von MarineNet . . . . . . . . . . . 25<br />
3.4. Erweiterte Suche im ACM Portal . . . . . . . . . . . . . . . . . . 28<br />
4.1. System-Komponenten . . . . . . . . . . . . . . . . . . . . . . . . 36<br />
4.2. Erfassungsprozess . . . . . . . . . . . . . . . . . . . . . . . . . . . 38<br />
4.3. Rechercheprozess . . . . . . . . . . . . . . . . . . . . . . . . . . . 39<br />
4.4. Screenshot der Suchmaske . . . . . . . . . . . . . . . . . . . . . . 41<br />
4.5. Recherche-Formular . . . . . . . . . . . . . . . . . . . . . . . . . 44<br />
4.6. Verweis auf ähnliche Dokumente . . . . . . . . . . . . . . . . . . 45<br />
4.7. Clustering Prozess . . . . . . . . . . . . . . . . . . . . . . . . . . 46<br />
4.8. Datenstruktur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48<br />
4.9. System-Komponenten . . . . . . . . . . . . . . . . . . . . . . . . 48<br />
5.1. Tabellarische Darstellung aus [VR79] . . . . . . . . . . . . . . . 54<br />
5.2. KDD Prozess von Fayyad et al. . . . . . . . . . . . . . . . . . . . 55<br />
6.1. Datenobjekte, relationale Sicht . . . . . . . . . . . . . . . . . . . 72<br />
6.2. Datenobjekte, objektorientierte Sicht, Teil 1 . . . . . . . . . . . . 73<br />
6.3. Datenobjekte, objektorientierte Sicht, Teil 2 . . . . . . . . . . . . 74<br />
6.4. DAO Struktur, Teil 1 . . . . . . . . . . . . . . . . . . . . . . . . . 76<br />
6.5. DAO Struktur, Teil 2 . . . . . . . . . . . . . . . . . . . . . . . . . 77<br />
6.6. DAO Struktur, Teil 3 . . . . . . . . . . . . . . . . . . . . . . . . . 78<br />
6.7. Data Access Commands, Teil 1 . . . . . . . . . . . . . . . . . . . 79<br />
6.8. Data Access Commands, Teil 2 . . . . . . . . . . . . . . . . . . . 80<br />
6.9. Beispiel: BatchAssign Command . . . . . . . . . . . . . . . . . . 81
Abbildungsverzeichnis x<br />
7.1. Wort Häufigkeiten . . . . . . . . . . . . . . . . . . . . . . . . . . 84<br />
7.2. Ablauf Text Analyse . . . . . . . . . . . . . . . . . . . . . . . . . 85<br />
7.3. Ablauf Matrix Berechnung . . . . . . . . . . . . . . . . . . . . . . 87<br />
7.4. Ablauf Cluster Analyse . . . . . . . . . . . . . . . . . . . . . . . 89<br />
7.5. Klassendiagramm Cluster Algorithmen . . . . . . . . . . . . . . . 91<br />
7.6. Klassendiagramm für Matrizen <strong>und</strong> SVD Ergebnisse . . . . . . . 92<br />
8.1. Bildschirmfoto des Cluster Browsers . . . . . . . . . . . . . . . . 94<br />
8.2. Bildschirmfoto des Menüs . . . . . . . . . . . . . . . . . . . . . . 95<br />
8.3. Ausschnitt der Komponentenkonfiguration . . . . . . . . . . . . . 96
Teil I.<br />
Einleitung
1. Überblick über Inhalt <strong>und</strong> Prozesse<br />
1.1. Einleitung<br />
Diese Diplomarbeit entsteht in Zusammenarbeit mit dem Institut für Seever-<br />
kehrswirtschaft <strong>und</strong> Logistik (ISL) im Rahmen der neuen sich dort entwickeln-<br />
den Online-Strategien. Aus den Gesprächen, die mit dem ISL geführt wurden,<br />
kristallisierte sich heraus, dass sich das ISL unter anderem als Anbieter für<br />
spezialisierte Informationen sehen <strong>und</strong> auf dieser Basis neuartige Dienstleistun-<br />
gen generieren möchte. Das derzeitig existierende Angebot umfasst die Litera-<br />
turdatenbank Seabase, dabei soll es jedoch k<strong>eines</strong>falls bleiben. Es ist geplant,<br />
zusätzlich zu den Literaturhinweisen aus dem F<strong>und</strong>us des ISL weitere Quellen<br />
zu erfassen <strong>und</strong> verstärkt Online-Resourcen oder gar Informationen von Part-<br />
nerunternehmen einzubeziehen. Zudem ergibt die ausschließliche Ausrichtung<br />
des ISL auf Literaturhinweise aus den Bereichen Seewirtschaft <strong>und</strong> Logistik ein<br />
vergleichsweise konzentriertes System aus Schlagworten <strong>und</strong> zugehörigen Lite-<br />
raturhinweisen, so dass deren Unterschiede subtil sind. Die Schwierigkeit für die<br />
Nutzer besteht darin, die richtigen Schlagworte oder Deskriptoren auszuwählen,<br />
damit die Ergebnisse wirklich für das Suchziel relevant sind. Bei größerem Um-<br />
fang der angebotenen Information wächst die Anforderung an die Methodik der<br />
Recherche, auch bei großen Datenmengen hilfreiche Ergebnisse zu ermöglichen.<br />
Aus diesem Gr<strong>und</strong> entschied man sich dafür, den Kontext der Arbeit bei der Re-<br />
cherchemethodik anzusiedeln. Die Arbeit zielt nun darauf ab, einen innovativen<br />
Recherche-Mechanismus zu entwickeln. Mehr zum ISL findet sich in Abschnitt<br />
2.1 (Seite 9).<br />
Die Arbeit beginnt zunächst mit einer generellen Betrachtung der Umgebung,<br />
in der sich das Informationssystem des ISL befindet. Dazu wurden Angebote<br />
anderer Firmen kurz betrachtet <strong>und</strong> beschrieben, um zeigen zu können, wie sich<br />
das Angebot des ISL (in Bezug auf die Suchmethodik) im Vergleich darstellt.<br />
Dies geschieht in Kapitel 3 (Seite 15).<br />
In Kapitel 6 (Seite 71) wird die Architektur der technischen Realisierung
1.2. DER PROZESS 4<br />
beschrieben <strong>und</strong> Kapitel 9 (Seite 101) erläutert die erzielten Ergebnisse <strong>und</strong><br />
gibt einen Ausblick auf weitere Möglichkeiten.<br />
Sofern in den Formulierungen dieser Arbeit der Nutzer oder beispielsweise<br />
der Suchende angesprochen wird, so sei hiermit versichert, dass natürlich auch<br />
weibliche Suchende <strong>und</strong> Nutzer, sprich Nutzerinnen, mit eingeschlossen sind.<br />
1.2. Der Prozess<br />
Im Rahmen dieser Arbeit wird ermittelt, wie ein Clustering Verfahren eingesetzt<br />
werden kann, um Rechercheergebnisse zu optimieren. Dabei wird eine mögliche<br />
Lösung vorgeschlagen, <strong>und</strong> für diese ein Prototyp (vgl. Seite 116 in [Bal98])<br />
entworfen <strong>und</strong> dargestellt. Der Prototyp soll die Funktionsfähigkeit des Algo-<br />
rithmus an einem Beispiel mit echten Daten des ISL demonstrieren. Der Ablauf<br />
der Arbeit orientiert sich wegen der Forschungsnatur am Prototypen-Prozess-<br />
Modell (vgl. Seiten 114ff in [Bal98]).<br />
Das Modell wird laut Quelle unter anderem dann verwendet, wenn sich die<br />
Realisierbarkeit nicht vorab garantieren lässt. Das Modell erlaube es zudem, den<br />
Auftraggeber von der prinzipiellen Durchführbarkeit der Idee zu überzeugen.<br />
Beides sind im Kontext dieser Arbeit zutreffende <strong>und</strong> überzeugende Argumente.<br />
Abbildung 1.1 gibt die Darstellung der Quelle wieder. Der hellblaue Bereich<br />
kennzeichnet die Aspekte, die das Prototypen-Modell anderen Modellen hin-<br />
zufügt. ” Die Gesamtgrafik zeigt eine Ergänzung der traditionellen Modelle um<br />
Prototypen.“ (vgl. Seite 118 in [Bal98]) Die vier Kernprozesse finden sich in den<br />
traditionellen Modellen ebenso wieder, werden aber jeweils durch Prototypen-<br />
Aspekte erweitert <strong>und</strong> sind deshalb nur zum Teil in den blauen Bereich gezeich-<br />
net.<br />
Die Quelle merkt an, eine Voraussetzung für ein erfolgreiches Umsetzen des<br />
Modells sei die aktive Beteiligung der Endbenutzer am Prototyping-Prozess,<br />
erwähnt aber ebenso, dass die Vorgehensweise letztlich von der untersuchten<br />
Fragestellung abhängt. Im Rahmen dieser Diplomarbeit wurde sicherlich we-<br />
niger Kontakt zu den Nutzern gepflegt, als dies die Erdenker des Modells im<br />
Kopf hatten. Aber schließlich handelt es sich hierbei um eine Diplomarbeit <strong>und</strong><br />
um kein (wirtschaftlich motiviertes) Softwareprojekt. Das zu erreichende Ziel<br />
ist viel eher die Darstellung der generellen Anwendbarkeit in dem konkreten<br />
Umfeld des ISL.<br />
Diese Arbeit vollzieht also keinen vollständigen Entwicklungsprozess, an des-
5 1.3. ENTWICKLUNGSUMGEBUNG<br />
K<strong>und</strong>e<br />
Aquirieren<br />
Demo Prototyp<br />
Planen<br />
Prototypen-Modell<br />
Prototyp Labormuster Pilotsystem<br />
Definieren Entwerfen Implementieren<br />
Durchführbarkeitsstudie Produktmodell Produktarchitektur Produkt<br />
Änderungen<br />
Benutzer<br />
Erweiterungen<br />
Änderungen<br />
Abbildung 1.1.: Das Prototypen-Modell<br />
sen Ende ein einsatzfähiges Produkt steht, denn dies würde den Rahmen der<br />
Diplomarbeit sprengen. Der Autor hat sich stattdessen auf die ersten Schritte<br />
beschränkt. Es wird geplant, definiert <strong>und</strong> entworfen, jedoch nicht implemen-<br />
tiert. Dementsprechend beschränkt sich die <strong>Implementierung</strong>sleistung auf die<br />
erstellten Prototypen <strong>und</strong> Labormuster. Es gibt einen Demo-Prototypen, der<br />
in Abschnitt 4.2 (Seite 43) dargestellt wird <strong>und</strong> einen (vertikalen) Prototypen,<br />
der in Kapitel 6 (Seite 71) beschrieben wird.<br />
1.3. Entwicklungsumgebung<br />
Diese Arbeit entsteht mithilfe von spezialisierten Werkzeugen, die jeweils ihre<br />
Aufgabe im Gesamtprozess haben. Beispielsweise werden, um die Gedanken zu<br />
strukturieren <strong>und</strong> zielgerichteter vorzugehen, einige Mindmaps entworfen. Eine
1.3. ENTWICKLUNGSUMGEBUNG 6<br />
Mindmap fixiert ziellos umherirrende Gedanken <strong>und</strong> ermöglicht oder erleich-<br />
tert es, nützliche Ideen von solchen zu trennen, die das Thema nicht treffen.<br />
Die hierfür verwendete Software heißt FreeMind <strong>und</strong> ist unter der URL free-<br />
mind.sourceforge.net 1 herunterzuladen. Ein Exemplar einer solchen Map ist auf<br />
der Titelseite zu sehen.<br />
Während der Ermittlung der Anforderungen des ISL wird das generische<br />
Werkzeug Protégé verwendet. Dieses erlaubt, eine beliebige Datenstruktur zu<br />
definieren, <strong>und</strong> bietet automatisch passende Eingabeformulare für die verschie-<br />
denen Datenobjekte an. Das Werkzeug ist für die Entwicklung von Ontologien<br />
gedacht <strong>und</strong> spezialisiert sich somit begrifflich auf Dinge wie Klassen, Instanzen<br />
<strong>und</strong> benannte Beziehungen dazwischen. Für die Dokumentation der Anforde-<br />
rungen wird eine passende Datenstruktur mit Protégé definiert. Diese beinhaltet<br />
Klassen wie Requirement oder Person <strong>und</strong> vervollständigt diese mit Beziehun-<br />
gen wie ” depends-on“ zwischen Requirements oder ” needs“ zwischen Person <strong>und</strong><br />
Requirement. Um das Ergebnis kommunizieren zu können, wird ein einfaches<br />
Export-Plugin entwickelt, welches die Daten in eine XML Datei exportiert, die<br />
daraufhin mittels XSL-T in eine für gängige Browser lesbare Form (HTML <strong>und</strong><br />
PDF) umgewandelt werden kann. Auf diese Weise hat der Anforderungsanalyst<br />
auf der einen Seite eine strukturierte Eingabemöglichkeit, die die Beziehungen<br />
der Anforderungen untereinander in einer logisch formell korrekten Form ablegt,<br />
<strong>und</strong> auf der anderen Seite kann er eine lesbare Form der Anforderungen auto-<br />
matisch erzeugen. Dies ist jedoch durch kommerzielle Produkte, die sich auf<br />
die Dokumentation <strong>und</strong> Verwaltung von Anforderungen spezialisieren, besser<br />
möglich. Insbesondere können diese Werkzeuge mehrere Mandanten verwalten<br />
<strong>und</strong> professionell Versionierung betreiben, was mit dieser generischen Art <strong>und</strong><br />
Weise schlecht bis gar nicht funktioniert. Protégé ist somit zwar kein perfek-<br />
tes Werkzeug für diese Aufgabe, aber es ist kostenlos <strong>und</strong> durch eigene Plug-<br />
ins erweiterbar. Herunterzuladen auf protege.stanford.edu 2 . Das Export-Plugin<br />
liegt zusammen mit dem nötigen XSL-T Stylesheet <strong>und</strong> der verwendeten Klas-<br />
senstruktur für Protégé unter dieser URL vor: www.danielstephan.com/thesis/<br />
prot-req.zip 3 .<br />
Zur Unterstützung des Softwaredesigns wird der Enterprise Architect von<br />
Sparx Systems 4 in der Version 5.0 verwendet. Um Ro<strong>und</strong>trip-Engineering durchführen<br />
1 WWW Adresse: http://freemind.sourceforge.net<br />
2 WWW Adresse: http://protege.stanford.edu<br />
3 WWW Adresse: http://www.danielstephan.com/thesis/prot-req.zip<br />
4 WWW Adresse: http://www.sparxsystems.com.au/
7 1.3. ENTWICKLUNGSUMGEBUNG<br />
zu können, muss die Software Java-Quellcode erzeugen sowie selbigen mittels<br />
Reverse Engineering wieder einlesen können. Vergleichbare Software mit dieser<br />
Funktion von Borland (Together 2005 for JBuilder, derzeit für EUR 1740) <strong>und</strong><br />
NoMagic (MagicDraw Professional, derzeit für EUR 255) erwiesen sich vergli-<br />
chen mit dem Enterprise Architect, USD 95, als zu kostspielig.<br />
Die Implementation verwendet die aktuellste Version der Sprache Java (ja-<br />
va.sun.com/j2se/1.5.0 5 ) <strong>und</strong> wird mit der leistungsfähigen Open-Source Ent-<br />
wicklungsumgebung Eclipse (www.eclipse.org 6 ) durchgeführt.<br />
Der Text der Arbeit selber wird, der innovativen Natur ihres Inhalts folgend,<br />
weder mit einer üblichen Textverarbeitung noch (direkt) mit Latex, des im wis-<br />
senschaftlichen Umfeldes üblichen Textsatzsystems, verfasst. Stattdessen wird<br />
die XML Variante des ursprünglich auf SGML basierenden Formats Docbook<br />
verwendet (siehe www.oasis-open.org/docbook 7 ). Der Gr<strong>und</strong> für diese Wahl ist<br />
in erster Linie die Neugier des Autors. Da es sich um ein XML basiertes Format<br />
handelt, wird der Text mit einem XML Editor verfasst. Es handelt sich bei dem<br />
XML Editor um , der unter www.oxygenxml.com 8 zu beziehen ist.<br />
Die Software liefert sämtliche für Docbook nötigen Stylesheets mit. Die Styles-<br />
heets sind alternativ unter docbook.sourceforge.net/projects/xsl/ 9 zu beziehen.<br />
Da der Autor im Rahmen des Schreibens festgestellt hat, dass die mit Docbook<br />
erzeugten Ergebnisse nicht ausreichend perfekt gesetzt sind, hat er nach Alter-<br />
nativen gesucht. Das Ergebnis dieser Suche kann auf www.danielstephan.com/<br />
dbp.html 10 nachgelesen werden.<br />
Somit existiert letztendlich der Text in Form von XML im Docbook For-<br />
mat, der Satz jedoch wird von LATeX durchgeführt. Dank DBP existiert ein<br />
funktionierender Prozess von XML über LATeX zu PDF.<br />
5 WWW Adresse: http://java.sun.com/j2se/1.5.0/<br />
6 WWW Adresse: http://www.eclipse.org/eclipse/<br />
7 WWW Adresse: http://www.oasis-open.org/committees/tc home.php?wg abbrev=<br />
docbook<br />
8 WWW Adresse: http://www.oxygenxml.com<br />
9 WWW Adresse: http://docbook.sourceforge.net/projects/xsl/<br />
10 WWW Adresse: http://www.danielstephan.com/dbp.html
1.3. ENTWICKLUNGSUMGEBUNG 8
2. Business Analyse<br />
2.1. Ausgangssituation<br />
Das ISL besitzt nach eigenen Aussagen mit einem Bestand von über 80000 er-<br />
fassten Einträgen eine der größten Literatur-Datenbanken im Bereich der See-<br />
verkehrswirtschaft. Diese Daten hätten für das ISL bzw. für dessen K<strong>und</strong>en<br />
einen hohen Wert. Da Informationen per se immer mehr ausschließlich im In-<br />
ternet gesucht würden <strong>und</strong> sich immer weniger K<strong>und</strong>en persönlich in die Räume<br />
des Instituts begäben, würde das nicht genutzte Potential der Datenbank im-<br />
mer größer <strong>und</strong> der Betrieb der Datenbank infolgedessen immer teurer werden.<br />
Daher wurde schnell klar, dass der Datenbestand ins Internet gebracht werden<br />
muss, um hier der Nachfrage zu begegnen, der ” offline“ immer seltener entge-<br />
gengetreten werden kann.<br />
Belegt wurde die Einsicht durch eine Studie [ISL01], die das ISL zusammen<br />
mit Roland Berger <strong>und</strong> PriceWaterhouseCoopers im Auftrage des B<strong>und</strong>esmini-<br />
steriums für Wirtschaft <strong>und</strong> Technologie (BMWi) bis Ende 2001 durchgeführt<br />
hatte. Diese Studie belegte insbesondere den gewachsenen Stellenwert des Inter-<br />
nets in Bezug auf die Informationsbeschaffung in Unternehmen der maritimen<br />
Wirtschaft. Obwohl laut Studie nur 17,5% der Informationen aus dem Internet<br />
bezogen würden (der persönliche Kontakt erbringt nach wie vor die meisten<br />
relevanten Informationen), wäre das Internet als ein wichtiges Medium der In-<br />
formationsbeschaffung zu sehen, weil die Tendenz zur online Nutzung immanent<br />
gegeben sei. Der Gr<strong>und</strong> der noch eher geringen Nutzung könnte im mangelhaf-<br />
ten Angebot liegen. Die Studie stellt fest, dass mehr als 90% der Befragten<br />
die übermäßige Informationsflut als Belastung empfänden. Die Menge an In-<br />
formationen führe zu einem hohen Aufwand bei der Selektion der relevanten<br />
Informationen. Zudem seien die Informationen oft nicht aktuell.<br />
Diesen Erkenntnissen folgend wurde die Strategie etabliert, Inhalte des ISL im<br />
Rahmen <strong>eines</strong> Portals online anzubieten <strong>und</strong> ein Geschäftsmodell zu entwickeln,<br />
das die erkannten Herausforderungen adressiert.
2.2. ZIELE 10<br />
Business Strategie<br />
Profile<br />
Selektion<br />
Inhalte<br />
Abbildung 2.1.: ISL-Strategie-Komponenten<br />
Ein Ergebnis dieser Bemühungen ist bereits zum jetzigen Zeitpunkt erkenn-<br />
bar. Und zwar werden bereits einige Angebote online verkauft. Für diesen Zweck<br />
hat das ISL einen Online-Shop eingerichtet. Dort werden eine Handvoll re-<br />
gelmäßiger Publikationen des ISL angeboten. Diese Publikationen werden nach<br />
Aussage des ISL vom Markt nachgefragt. Es handelt sich dabei um vergleichs-<br />
weise hochwertige Publikationen. Eine Publikationen wie das Jahrbuch kostet<br />
zum Beispiel inklusive CD-ROM knapp 300 Euro. Zusätzlich gibt es das Ship-<br />
ping Statistics and Market Review, welches 9 Mal im Jahr erscheint, jeweils mit<br />
etwas unterschiedlichen Schwerpunkten. Es kostet inkl. CD-ROM 470 Euro pro<br />
Jahr 1 .<br />
2.2. Ziele<br />
Das übergeordnete strategische Ziel des ISL ist es, Informationen anzubieten<br />
<strong>und</strong> über deren Individualisierung Geld zu verdienen. Dieses Hauptziel lässt<br />
sich, wie in Abbildung 2.1 dargestellt, aus drei Komponenten aufbauen, ohne<br />
die es nicht oder schwer verwirklicht werden kann.<br />
Ein Kernpunkt <strong>und</strong> somit die erste Komponente sind die Inhalte, die ange-<br />
1 Stand: Juli 2005
11 2.3. HERAUSFORDERUNGEN<br />
boten werden sollen. Hier gilt es, eine ansprechende Auswahl sicherzustellen. In<br />
diesem Zusammenhang strebt das ISL eine Zusammenarbeit mit Partnerorgani-<br />
sationen an, deren Inhalte zusammen mit denen des ISL in einem gemeinsamen<br />
System angeboten werden sollen. Zudem wurde erkannt, dass die Nutzer die<br />
Inhalte in aller Regel unverzüglich erwarten. Sofern möglich sollen somit In-<br />
halte in digitaler Form (Volltexte, Statistiken, Tabellen) vorgehalten <strong>und</strong> vom<br />
zahlenden K<strong>und</strong>en auf Knopfdruck abgerufen werden.<br />
Das Angebot kann nur dann für die K<strong>und</strong>en interessant sein, wenn die Men-<br />
ge an hilfreichen Inhalten groß genug ist. Diese Erkenntnis liefert im Um-<br />
kehrschluss die Forderung, dass K<strong>und</strong>en die gewünschten Inhalte auf einfache<br />
Weise aus dem F<strong>und</strong>us selektieren können müssen <strong>und</strong> somit das System ent-<br />
sprechend mächtige Recherchemechanismen aufweist, die die zweite Komponen-<br />
te darstellen. Diese soll die Strukturen der Informationslandschaft offensichtlich<br />
machen <strong>und</strong> geeignete Navigationselemente bereitstellen, damit sich der K<strong>und</strong>e<br />
zurechtfindet <strong>und</strong> einfach eine Vielzahl für ihn relevante Inhalte finden kann.<br />
Um das Informationsangebot wertvoller zu gestalten, soll es individuell auf<br />
den Nutzer zugeschnitten werden, dies schließt den Kreis. Das wiederum setzt<br />
die Existenz von individuellen K<strong>und</strong>enprofilen voraus, auf deren Basis perso-<br />
nalisierte Angebote maßgeschneidert werden können. Diese Angebote beinhal-<br />
ten einen automatischen Benachrichtigungsdienst über neue Dokumente, die<br />
zum K<strong>und</strong>enprofil passen, der mittels E-Mail realisiert werden soll, sowie ei-<br />
ne Möglichkeit, fehlende Informationen (unbefriedigte Nachfrage) online zu<br />
bemängeln. Letzte Funktion soll die K<strong>und</strong>enwünsche erkennbar machen <strong>und</strong><br />
das ISL in die Lage versetzen, auf die Nachfrage besser zu reagieren.<br />
Auf diese Arbeit bezogen können natürlich nicht alle Ziele des ISL umgesetzt<br />
werden. Daher konzentriert sie sich auf die zweite Komponente <strong>und</strong> entwickelt<br />
eine innovative Recherchetechnologie.<br />
2.3. Herausforderungen<br />
Um zu verstehen, welche Herausforderungen für die Recherche in Informations-<br />
systemen wie dem des ISL existieren, sollte man zunächst wissen, wie eine solche<br />
Recherche abläuft. Was ist also Recherche? Recherche wird hier als Oberbegriff<br />
für die Suche nach Informationen verstanden. Im Kontext dieser Arbeit sind<br />
es speziell die Suchvorgänge, die mit Hilfe <strong>eines</strong> Informationssystems wie der<br />
ISL Seabase durchgeführt werden. Aber betrachten wir einmal, wie das typische
2.3. HERAUSFORDERUNGEN 12<br />
Nutzerverhalten während einer solchen Suche aussieht.<br />
Der Ablauf einer typischen Recherche beginnt, sobald ein Nutzer ein Defizit<br />
oder ein Interesse entwickelt <strong>und</strong> nach Informationen sucht, die den neu aufge-<br />
kommenen Bedarf befriedigen. Der Nutzer wird möglicherweise nicht zuerst das<br />
Internet aufsuchen, sondern stattdessen zunächst seine eigenen Bücher, sowie<br />
Dateien <strong>und</strong> Datenbanken durchforsten <strong>und</strong> eventuell noch jemanden anrufen,<br />
aber spätestens danach sucht er das Internet auf <strong>und</strong> landet hoffentlich zügig<br />
auf den Webseiten des ISL.<br />
Wie in [TAAK04] von Teevan et al. dargelegt wurde, gibt es für den Nutzer<br />
im Internet im groben zwei Methoden, ans Ziel zu gelangen. Die eine Methode<br />
besteht darin, eine möglichst exakte Suchanfrage zu formulieren, die die gesuch-<br />
ten Informationen ausreichend exakt beschreibt, so dass das System direkt das<br />
Gesuchte liefert. Diese Vorgehensweise nennt das genannte Paper Teleporting.<br />
Der Nutzer teleportiert sich im übertragenen Sinne direkt zu der gewünschten<br />
Information. Im Buch [RM02] von Rosenfeld <strong>und</strong> Morville wird es The Perfect<br />
Catch genannt <strong>und</strong> jedoch dargelegt, dass dieses sehr simple Vorgehen alleine<br />
oft nicht zum Ziel führt.<br />
Dafür gibt es mehrere Gründe, zum einen weiß der Nutzer manchmal nicht<br />
genau genug, wonach er sucht. In diesem Falle muss er seine Suche allgemeiner<br />
halten, sich erst einmal umschauen <strong>und</strong> das Angebot ” spielerisch“ erforschen.<br />
Anders ausgedrückt: der Nutzer muss sich zunächst orientieren <strong>und</strong> Teleporting<br />
ist für ihn nicht möglich.<br />
Und selbst wenn er weiß, wonach er sucht, so ist die Sprache, die er für<br />
die Suche verwendet nicht notwendigerweise die selbe, mit der die gesuchte<br />
Information erfasst wurde. Dabei ist mit Sprache noch nicht einmal Sprache<br />
im Sinne von Französich oder Deutsch, sondern eher die Wortwahl gemeint, die<br />
bei unterschiedlichen Menschen unterschiedlich ausfällt. [RM02] fragt in diesem<br />
Zusammenhang ” ’PDA’, ’Handheld’ oder ’Handheld PC’“?<br />
Alle hier betrachteten Autoren stellen jeweils auf ihre Weise fest, dass ein<br />
Nutzer die Schwierigkeiten durch ein mehrschrittiges Vorgehen zu überwinden<br />
versucht, bei dem sich Orientierung/Browsen <strong>und</strong> Direktsuche abwechseln. Tee-<br />
van et al. nennen dies Orienteering <strong>und</strong> belegen empirisch dessen bevorzugte<br />
Nutzung. [Bat89] nennt es Berrypicking, weil der Nutzer über verschlungene<br />
Pfade durch den Informationsraum wandert <strong>und</strong> auf dem Wege die Beeren<br />
pflückt, die ihn interessieren. Im Paper von Teevan et al. wird vermutet, dass<br />
diese kombinierte, aus mehreren Schritten bestehende Suche die kognitiven Pro-
13 2.3. HERAUSFORDERUNGEN<br />
zesse von Nutzern weniger fordert <strong>und</strong> deshalb bevorzugt wird. Sie haben empi-<br />
risch festgestellt, dass Nutzer bevorzugen, einigen Verweisen zu folgen <strong>und</strong> sich<br />
dadurch Schritt für Schritt dem Ziel anzunähern, anstatt eine exakte Anfrage<br />
anzugeben <strong>und</strong> direkt zum Ziel zu gelangen. Das gilt sogar, wenn der Suchende<br />
genau weiß, wo das Gesuchte liegt, <strong>und</strong> er oder sie sogar ohne weiteres in der<br />
Lage wäre, die Anfrage exakt genug zu formulieren.<br />
Ein Informationssystem sollte folglich ein mehrschrittiges, iteratives Vorge-<br />
hen erlauben oder gar besonders unterstützen. Das ISL ist dafür bereits gut<br />
aufgestellt, denn der gepflegte, ausführliche Thesaurus ist eine gute Gr<strong>und</strong>la-<br />
ge dafür, Orientierungshilfen anbieten zu können. Ein darüber hinausgehendes<br />
Clustering kann dies noch verbessern.
2.3. HERAUSFORDERUNGEN 14
3. Marktanalyse<br />
3.1. Kriterien Auswahl<br />
Es gilt nun herauszufinden, wie die Suche in online Informationssystemen in der<br />
Praxis vom Rest der Welt organisiert wird. Es sollen dadurch übliche Vorge-<br />
hensweisen demonstriert <strong>und</strong> der Ansatz dieser Arbeit in einen Kontext gesetzt<br />
werden. Dokumente, Webseiten oder Dateien in Datenbanken zu suchen ist ein<br />
ganz zentraler Faktor, der sich mit der Zunahme der Menge an Informationen,<br />
die sich in den Datenbanken dieser Welt verstecken, an zunehmender Wich-<br />
tigkeit erfreut. Daher bieten so gut wie alle Informationssysteme mehr oder<br />
weniger ausführliche Unterstützung für die Recherche in ihren Systemen an.<br />
Die Auswahl der betrachteten Informationssysteme beinhaltet eine Reihe de-<br />
rer, die bereits vom ISL als relevante Konkurrenz auf dem Markt erkannt wor-<br />
den waren. Darüberhinaus werden einige allgemein bekannte Online-Dienste<br />
betrachtet, sowie auch solche die ähnliche Ansätze in anderen Märkten verfol-<br />
gen. All diese Dienste werden hier nach einer Reihe von Kriterien ausgewertet.<br />
Die Kriterien stützen sich sowohl auf die technische Umsetzung des Angebots,<br />
als auch auf dessen Wirksamkeit in Bezug auf wirtschaftliche Faktoren. Im fol-<br />
genden sollen die Kriterien aufgelistet <strong>und</strong> erläutert werden.<br />
Community Beinhaltet das Angebot Dienste für eine virtuelle Gemeinschaft?<br />
Derartige Dienste erlauben die Wertschöpfung zwischen K<strong>und</strong>en <strong>und</strong> erhöhen<br />
somit die Wertigkeit des Angebots mit Hilfe von Netzwerkeffekten.<br />
Zielgruppe An wen richtet sich das Angebot in erster Linie?<br />
Erfassung Auf welche Weise kommen die Daten ins System? Erfasst der Anbie-<br />
ter selber oder verkauft er den Zugriff auf Datenbanken anderer Firmen?<br />
Erfassung durch K<strong>und</strong>en Können K<strong>und</strong>en eigene Dokumente in das System<br />
einpflegen?
3.1. KRITERIEN AUSWAHL 16<br />
Suche mittels boolschen Operatoren Sind Begriffe mittels UND/ODER be-<br />
liebig kombinierbar?<br />
Suche auf der Basis einer Taxonomie Sind die Dokumente mit Schlagworten<br />
versehen, die untereinander in einer oder mehreren Spezialisierungsbezie-<br />
hungen stehen (Taxonomie)?<br />
Suche ähnlicher Begriffe möglich Ist das System in der Lage, trotz Tippfehler<br />
sinnvolle Ergebnisse zu liefern?<br />
Volltextsuche Suche im Volltext des Angebots ist möglich.<br />
Clustering Der Suchmechanismus gruppiert die Suchergebnisse automatisch.<br />
Angebot ist aktuell Ist das Angebot aktuell? Monate alte Neuigkeiten weisen<br />
auf ein schlecht gepflegtes System hin <strong>und</strong> werden kaum Nutzer anziehen.<br />
Viele brandaktuelle Artikel wiederum zeugen von einem erfolgreichen An-<br />
gebot mit echtem Nutzwert .<br />
Angebot beinhaltet digitale Dokumente Sind die Dokumente online zu bezie-<br />
hen <strong>und</strong> zu lesen?<br />
Angebot beinhaltet Reports über Rohdaten Steht hinter dem Angebot eine<br />
Datenbank , deren Inhalte in Form von Tabellen <strong>und</strong> Graphen ohne text-<br />
liche Beschreibung dargeboten werden?<br />
Angebot beinhaltet kostenpflichtige Suchergebnisse Sind die Ergebnisse des<br />
verwendeten Suchmechanismus kostenpflichtig?<br />
Angebot beinhaltet kostenpflichtige Dokumente Sind einzelne Dokumente käuf-<br />
lich zu erwerben?<br />
Angebot beinhaltet kostenpflichtigen Systemzugang Ist der Zugang zum Sy-<br />
stem oder zu Teilen des Systems pauschal kostenpflichtig?<br />
Marketingplattform Es besteht eine Möglichkeit für Partner <strong>und</strong> andere Fir-<br />
men, auf der Web Site Werbung zu machen. Sei es durch Banner oder<br />
” sponsored news“.<br />
Werbefinanziert Die Angebote finanzieren sich hauptsächlich durch Werbung.<br />
Yellow Pages Das System beinhaltet Verzeichnisse von Firmen <strong>und</strong> Produkten.
17 3.2. KONKURRENTEN<br />
Die Ergebnisse sind in Abbildung 3.1 (Seite 18) nachzulesen.<br />
3.2. Konkurrenten<br />
3.2.1. FIZ-Technik e.V.<br />
FIZ Technik e.V. 1 ist ein gemeinnütziger technisch-wissenschaftlicher<br />
Verein. Mitglieder sind: VDMA e.V. (Verband Deutscher Maschinen-<br />
<strong>und</strong> Anlagenbau), VTDI e.V. (Textil) <strong>und</strong> FWD e.V. (Werkstoffe)<br />
sowie die Industrieunternehmen <strong>und</strong> Forschungseinrichtungen: Ro-<br />
bert Bosch GmbH, Stuttgart, DaimlerChrysler AG, Stuttgart, Sie-<br />
mens AG, München, MAN B&W Diesel AG, Augsburg <strong>und</strong> Fraunhofer-<br />
Gesellschaft, München.<br />
Das Fachinformationszentrum Technik erstellt bibliographische Datenbanken<br />
<strong>und</strong> bietet diese in elektronischer Form an. Dazu werden jährlich ca. 120000 Do-<br />
kumente aus Fachzeitschriften, Tagungsbänden, Forschungsberichten <strong>und</strong> Dis-<br />
sertationen ausgewertet <strong>und</strong> gespeichert. Über 300 Mitarbeiter sind mit dieser<br />
Aufgabe betreut. Auch hier wird, ebenso wie beim ISL, jedes ausgewertete<br />
Dokument mit einem Kurzreferat versehen, in Kategorien einsortiert <strong>und</strong> ver-<br />
schlagwortet. Der dazugehörige Thesaurus umfasst jeweils etwa 50000 deutsche<br />
<strong>und</strong> englische Begriffe.<br />
Die Recherche in den Datenbanken ist prinzipiell kostenpflichtig. Dabei un-<br />
terscheidet die Preisliste 2 zwischen dem normalen Zugriff über die Online-Suche<br />
sowie einem speziellen Pauschaltarif für größere Organisationen, die die Recher-<br />
che aus dem eigenen Intranet heraus erlauben möchten. Der Preis für den nor-<br />
malen Zugriff setzt sich aus der Login-Gebühr von e5,40, die entsprechend bei<br />
jedem Login-Vorgang anfällt, einer sog. Anschaltzeit, die auf eine nicht näher<br />
spezifizierte Art <strong>und</strong> Weise aus dem Suchaufwand der Datenbank errechnet<br />
wird (durchschnittlicher Preis ca. e100 pro St<strong>und</strong>e), sowie einer Dokumentaus-<br />
gabegebühr , die je nach Datenbank <strong>und</strong> Format zwischen e1,50 <strong>und</strong> e2,50<br />
schwankt <strong>und</strong> pro angezeigter Bibliographie abgerechnet wird, zusammen. Die<br />
Anschaltzeiten <strong>und</strong> Dokumentausgabegebühren schwanken je nach abgefragter<br />
Datenbank, ebenso wie die Pauschalpreise. Diese schwanken für Großunterneh-<br />
men von e3885,- bis e65200,- pro Datenbank pro Jahr. KMUs <strong>und</strong> Fachhoch-<br />
1 WWW Adresse: http://www.fiz-technik.de<br />
2 WWW Adresse: http://www.fiz-technik.de/download/preise.pdf
3.2. KONKURRENTEN 18<br />
T : Techniker / Ingenieure<br />
W : Wissenschaftler<br />
M : Manager<br />
Community<br />
☑ ☑<br />
Zielgruppe TW MTW MTW WM TMW TMW M TMW TW<br />
Erfassung durch Anbieter ☑ ☑ ☑ ☑ ☑ ☑ ☑<br />
Erfassung durch K<strong>und</strong>en ☑ ☑ ☑<br />
Suche mittels booleschen Operatoren ☑ ☑ ☑ ☑ ☑ ☑<br />
Suche syntaktisch ähnlicher Begriffe möglich ☑ ☑ ☑ ☑ ☑<br />
Volltextsuche ☑ ☑ ☑ ☑ ☑ ☑ ☑<br />
Clusteranalyse ☑<br />
Suche auf der Basis einer Taxonomie ☑ ☑<br />
Angebot ist relativ aktuell ☑ ☑ ☑ ☑ ☑ ☑ ☑/- ☑ ☑<br />
Angebot beinhaltet digitale Dokumente ☑ ☑ ☑ ☑ ☑ ☑<br />
Angebot beinhaltet Reports über Rohdaten ☑<br />
Angebot beinhaltet kostenpflichtige Suchergebnisse ☑<br />
Angebot beinhaltet kostenpflichtige Dokumente ☑ ☑ ☑ ☑<br />
Angebot beinhaltet kostenpflichtigen Systemzugang ☑ ☑ ☑<br />
Marketingplattform ☑ ☑ ☑ ☑<br />
Werbe finanziert ☑ ☑<br />
Yellow Pages<br />
☑ ☑ ☑ ☑ ☑ ☑<br />
Abbildung 3.1.: Vergleichstabelle<br />
www.fiz-technik.de<br />
www.hwwa.de<br />
www.dmkn.de<br />
www.netacademy.org<br />
www.springerlink.com<br />
www.marinetalk.com<br />
www.marine-net.com<br />
www.clusty.com<br />
portal.acm.org<br />
Marktvergleich
19 3.2. KONKURRENTEN<br />
schulen zahlen zwischen e788,- <strong>und</strong> e13020,-. Es gibt 10 FIZ-Technik-eigene<br />
Datenbanken <strong>und</strong> 16/17 fremde Datenbanken, die FIZ-Technik lizensiert <strong>und</strong><br />
integriert hat. Der Autor stellt fest, dass das Preissystem auf ihn durch die<br />
vielen Einzelposten abschreckend wirkt. Hier wäre eine Mischkalkulation mit<br />
weniger einzelnen Posten eventuell eher anzuraten.<br />
FIZ Technik nutzt Volltextsuche <strong>und</strong> erlaubt die Verknüpfung mittels bool-<br />
schen Operatoren. Zusammen mit dem aufwendigen Thesaurus ist die Methodik<br />
recht fortschrittlich, wenn auch kompliziert. Es wird kein Clustering durch-<br />
geführt.<br />
3.2.2. FIZ Karlsruhe / STN Online Services<br />
Das FIZ Karlsruhe ist eine 1977 gegründete gemeinnützige Gesellschaft mit<br />
dem Auftrag, Fachinformationen bereitzustellen. Dieses tut sie insbesondere<br />
dadurch, dass sie im Rahmen des STN Online Service in Kooperation mit der<br />
American Chemical Society (ACS) <strong>und</strong> der Japan Science and Technology Cor-<br />
poration (JST) weltweit existierende Datenbanken in ihr System integriert. Fer-<br />
ner werden auch eigene Datenbanken erstellt <strong>und</strong> gepflegt. Unter anderem zählt<br />
hierzu die Zeitschriftendatenbank der Thieme Verlagsgruppe 3 sowie das System<br />
von vascoda 4 . Die Preise 5 sind nicht sehr weit von denen von FIZ-Technik ent-<br />
fernt <strong>und</strong> sind eher etwas höher. Die Anschaltzeit ist auch hier zu finden <strong>und</strong><br />
scheint ein branchenübliches Phänomen darzustellen. Auffällig ist im Vergleich<br />
zu FIZ-Technik, dass die Gebühr für die Anzeige bzw. den Druck (Dokument-<br />
ausgabegebühr ) drei mal so hoch ist <strong>und</strong> je nach Datenbank auch Preise von<br />
über e20,- für diesen Posten zu sehen sind.<br />
Der Fokus liegt hier eher in der Integration von Datenbanken (im Rahmen<br />
von STN) sowie im Auftritt als IT Dienstleister. Dadurch ist die Anzahl der<br />
Datenbanken wesentlich höher als bei FIZ Technik, deren Hauptarbeit in der<br />
Erfassung <strong>und</strong> Pflege der eigenenen Datenbanken zu stecken scheint. Die genaue<br />
Anzahl der Datenbanken geht aus der oben genannten Preisliste, in der jede<br />
Datenbank einzeln aufgelistet ist, hervor.<br />
3 WWW Adresse: http://www.thieme-connect.de<br />
4 WWW Adresse: http://www.vascoda.de<br />
5 WWW Adresse: http://www.stn-international.de/service/prices/EUROde.pdf
3.2. KONKURRENTEN 20<br />
3.2.3. Deutsches Maritimes Kompetenz Netz (DMKN)<br />
Das DMKN hat den Anspruch, Wissen im maritimen Umfeld zu sammeln <strong>und</strong><br />
verfügbar zu machen. Ins Leben gerufen hat es das Deutsche Marine Insti-<br />
tut, die Marine-Offizier-Vereinigung (MOV) e.V. <strong>und</strong> die Marine-Offizier-Hilfe<br />
(MOH) e.V. gemeinsam mit Kooperationspartnern. Auf der Website kann man<br />
nach Artikeln, Studien, Berichten <strong>und</strong> ähnlichen Dokumenten recherchieren <strong>und</strong><br />
bekommt die Dokumente auch gleich in elektronischer Form auf den Schirm<br />
geliefert. Zudem kann man sich im ExpertNet ein Bild von den Experten aus<br />
Wirtschaft <strong>und</strong> Wissenschaft im Bereich der maritimen Wirtschaft <strong>und</strong> Technik<br />
machen. Als <strong>eines</strong> der wenigen maritimen Angebote im Internet beinhaltet das<br />
DMKN auch ein Forum , in dem sich Interessierte untereinander austauschen<br />
können.<br />
Interessant ist, dass das öffentliche Forum von den Nutzern dieses Systems<br />
fast völlig ignoriert wird. Obwohl offenbar die Artikel <strong>und</strong> sonstigen informa-<br />
tiven Beiträge regelmäßig aktualisiert werden <strong>und</strong> somit von einem lebendigen<br />
System zeugen, gibt es keinerlei Interesse am persönlichen Austausch. Die mei-<br />
sten im System verzeichneten Experten sind offenbar damit zufrieden, aufge-<br />
listet worden zu sein <strong>und</strong> haben keine eigenen Beiträge ins System gebracht.<br />
Die absolute Mehrheit der Beiträge stammt aus der Zeitschrift MarineForum,<br />
die von den Betreibern des DMKN herausgegeben wird. Diese Erkenntnis re-<br />
lativiert den zuerst entstandenen Eindruck <strong>eines</strong> lebendigen Systems. Offenbar<br />
ist der größte <strong>und</strong> beinahe einzige Anbieter von Informationen im DMKN der<br />
Betreiber des DMKNs selber.<br />
Seit Ende 2004 beteiligt sich das ISL am DMKN <strong>und</strong> bietet im Rahmen <strong>eines</strong><br />
Kompetenzzentrums für die Seeverkehrswirtschaft eigene Inhalte an.<br />
Die Recherchemöglichkeiten des DMKN erlauben Anfragen mit boolschen<br />
Operatoren (AND/OR). Zusätzlich erlaubt das System die Suche mittels Wort<br />
Varianten, sowie mittels einer syntaktischen Ähnlichkeit (dort Fuzzy Suche ge-<br />
nannt).<br />
3.2.4. HWWA - Hamburgisches Welt-Wirtschafts-Archiv<br />
Das Hamburgische Welt-Wirtschafts-Archiv ist eine wissenschaftliche Service-<br />
einrichtung, dessen Ziel es ist, Informationen zu sammeln, aufzubereiten, zu<br />
bewerten <strong>und</strong> verfügbar zu machen. Es analysiert weltwirtschaftliche Fragestel-
21 3.2. KONKURRENTEN<br />
lungen, informiert <strong>und</strong> berät. Aktueller Hinweis 6 : Das HWWA ist aktuell als<br />
Auslaufmodell zu betrachten. Es gehörte lange Zeit zur Leibniz Gemeinschaft<br />
<strong>und</strong> wurde damit öffentlich gefördert. Nach einigen sehr kritischen Evaluierun-<br />
gen hat sich die Gemeinschaft jedoch dazu entschlossen, das Institut nicht weiter<br />
zu fördern. Teile des HWWA werden zukünftig im neugegründeten Wirtschafts-<br />
institut HWWI aufgehen <strong>und</strong> bleiben daher mindestens zum Teil erhalten.<br />
Alle Dienstleistungen des HWWA zu beleuchten, würde zu weit führen. Im<br />
Kontext dieser Arbeit ist allerdings der Bereich der Kataloge <strong>und</strong> der Online-<br />
Publikationen interessant. Das HWWA bietet keine Community Features an.<br />
Der online Zugriff wird über die URL http://webopac.hwwa.de/seitevor.htm 7<br />
ermöglicht.<br />
Kataloge<br />
Das HWWA bietet online Nachweise von Büchern, Periodika, <strong>und</strong> Aufsätzen<br />
aus Zeitschriften <strong>und</strong> Sammelwerken in gedruckter oder elektronischer Form,<br />
Firmen <strong>und</strong> Körperschaften mit weiterführenden Links an. Ausserdem Presse-<br />
artikel, Geschäftsberichte, Spezialsammlungen etc.<br />
Für diesen Zweck existiert ein ausgefeilter Suchmechanismus, der auf ei-<br />
nem komplexen Thesaurus basiert. Alle wichtigen Suchfunktionen (Ähnlichkeit,<br />
boolsche Operationen, Volltext. . . ) sind vorhanden.<br />
Online Publikationen<br />
Das Angebot umfasst im Zusammenhang mit dem elektronischen Dokumen-<br />
tenarchiv des HWWA sowohl Nachweise nicht-elektronischer Dokumente als<br />
auch solche von elektronischen Dokumenten. Letztere sind im Archiv teilweise<br />
im Volltext verfügbar. Dabei unterscheidet der Katalog zwischen frei verfügba-<br />
ren, HWWA-intern verfügbaren, sowie kostenpflichtig verfügbaren Dokumen-<br />
ten. Falls möglich verweist der Katalog auf den Anbieter des Dokumentes, bei<br />
dem es dann bezogen werden kann. Verfügbare Volltexte liegen im PDF-Format<br />
auf HWWA-Servern oder beim Anbieter selber. Im letzteren Fall verweist der<br />
Katalog auf den Anbieter.<br />
Neben den Angeboten, die über den Katalog zu erreichen sind, bietet das<br />
HWWA spezielle Informationsdienste an. Häufig sind die Produkte online im<br />
6 Pressemitteilung: http://idw-online.de/pages/de/news117649<br />
7 WWW Adresse: http://webopac.hwwa.de/seitevor.htm
3.2. KONKURRENTEN 22<br />
PDF oder HTML Format verfügbar - teilweise kostenfrei <strong>und</strong> teilweise kosten-<br />
pflichtig.<br />
3.2.5. MarineTalk<br />
MarineTalk versteht sich als Informationsanbieter im maritimen Sektor. Das<br />
Angebot umfasst Informationen über spezielle Produkte <strong>und</strong> darüber, wer sie<br />
herstellt. Zudem werden ca. alle sechs Wochen aktuelle Entwicklungen im ma-<br />
ritimen Sektor sowohl über neue Produkte als auch über allgemeine Themen in<br />
den News-Bereich eingepflegt.<br />
Das Angebot beinhaltet im Rahmen der Wer-Macht-Was-Suche (Buyers Gui-<br />
de) Kurzvorstellungen der Unternehmen, die als Werbe-Möglichkeit für die ver-<br />
zeichneten Unternehmen beworben werden. Den Unternehmen werden verschie-<br />
dene Werbe-Pakete angeboten, von denen <strong>eines</strong> gratis, <strong>eines</strong> 10 USD im Monat<br />
<strong>und</strong> <strong>eines</strong> 20 USD im Monat kostet. Im letzten Falle wird eine bis zu 6 Seiten<br />
umfassende Firmendarstellung angeboten, während in der Gratisversion weder<br />
Email noch Homepage des verzeichneten Unternehmens angegeben werden kann<br />
<strong>und</strong> sich ausschließlich auf Adresse <strong>und</strong> Telefon beschränkt wird. Das mittlere<br />
Angebot bietet die Möglichkeit, Verweise auf die Firmen Homepage sowie eine<br />
Email Adresse hinzuzufügen <strong>und</strong> erlaubt zusätzlich, eine textliche Kurzbeschrei-<br />
bung der Firma mit in das Listing aufzunehmen. Diese Beschreibung ist auch<br />
für die Suche effektiv. Wie viele K<strong>und</strong>en welches Angebot nutzen fällt laut Ma-<br />
rineTalk allerdings unter das Geschäftsgeheimnis, so dass auf diese Information<br />
verzichtet werden muss.<br />
Die Suchfunktion umfasst eine Schlagwortsuche, sowie spezifische Eingren-<br />
zungen. Beispielsweise ist es möglich, die Suche nach Anbietern auf ein Land<br />
oder auch einen bestimmten Hafen zu beschränken. Firmen, die sich in das Ver-<br />
zeichnis eintragen lassen möchten, haben die Möglichkeit, bis zu 50 Stichworte<br />
anzugeben, unter denen sie gef<strong>und</strong>en werden können. Die Stichworte sind aller-<br />
dings beliebig <strong>und</strong> unterliegen keiner festen Struktur, wie es in einem Thesaurus<br />
der Fall wäre.<br />
Das MarineNet bearbeitet jede Einsendung manuell <strong>und</strong> prüft insbesonde-<br />
re die gewünschten Schlagwörter auf Duplikate. Je nach Qualität der einge-<br />
sendeten Artikel/News wird der Beitrag entweder editiert oder auf der Basis<br />
der eingesendeten Information neu geschrieben. Dieses Vorgehen garantiert ein<br />
gleichbleibend hohes Qualitätsniveau der Beiträge.
23 3.3. WISSENSCHAFTLICHE ANGEBOTE<br />
3.2.6. MarineNet<br />
Das MarineNet ist eine japanische Unternehmung, die Informationen <strong>und</strong> Dienst-<br />
leistungen für die maritime Wirtschaft anbietet. Der Fokus des Angebots liegt<br />
dabei auf dem Zusammenbringen von Käufer <strong>und</strong> Verkäufer maritimer Produk-<br />
te <strong>und</strong> Dienstleistungen. Dem entsprechend bietet das Unternehmen Schiffs-<br />
Auktionen , Preisinformationen von Gebraucht-Schiffen sowie die Möglichkeit,<br />
online nach Chartering-Informationen zu suchen <strong>und</strong> somit die Frage zu beant-<br />
worten, ob im Hafen X ein geeignetes Schiff liegt, welches gechartert werden<br />
kann. Im letzteren Falle vermittelt MarineNet kostenfrei zwischen dem Suchen-<br />
den <strong>und</strong> dem Schiffs-Eigner bzw. stellt mindestens den Kontakt her.<br />
Die meisten Funktionalitäten sind nur für Mitglieder des Systems (kosten-<br />
pflichtig) zu erreichen. Es gab in keinem gratis zu erreichenden Teil des Online-<br />
Angebots eine Suche.<br />
Es gibt jedoch in den verschiedenen nach Bezahlung zu erreichenden Berei-<br />
chen jeweils spezielle, auf das jeweilige Angebot zugeschnittene Suchmethoden.<br />
Dezu gehören allerdings keine Schlagwort-Suche oder gar hinterlegte Thesauri<br />
. Die Leistungen umfassen meistens Listen, beispielsweise von zu verkaufenden<br />
Frachtern oder in der letzten Zeit durchgeführten Besitzänderungen etc.<br />
Von Interesse dürfte allerdings sein, dass das MarineNet ausgewählte Sta-<br />
tistiken aus dem F<strong>und</strong>us der Beratungsfirma Drewry 8 in das eigene Angebot<br />
integriert. Die Bedingungen des Nutzungsvertrages zwischen MarineNet <strong>und</strong><br />
Drewry fallen sicherlich unter das Geschäftsgeheimnis, so dass hier auch nicht<br />
weiter geforscht wurde.<br />
Dazu ist zu bemerken, dass vereinzelt veraltete Inhalte (Statistik überarbeitet<br />
2002. . . ) im System zu finden sind.<br />
3.3. Wissenschaftliche Angebote<br />
3.3.1. Netacademy, a scientific community<br />
Die Netacademy ist ein System für wissenschaftliche Gemeinschaften, das vom<br />
MCM, Institut für Medien <strong>und</strong> Kommunikationsmanagement 9 ins Leben geru-<br />
fen wurde <strong>und</strong> die von den Teilnehmern für die Publikation von Forschungser-<br />
gebnissen <strong>und</strong> News genutzt wird. Auf diese Weise soll ein zentrales Repository<br />
8 WWW Adresse: http://www.drewry.co.uk<br />
9 WWW Adresse: http://www.mcm.unisg.ch/
3.3. WISSENSCHAFTLICHE ANGEBOTE 24<br />
Abbildung 3.2.: Beispiel einer MarineNet Suchmaske
25 3.3. WISSENSCHAFTLICHE ANGEBOTE<br />
Abbildung 3.3.: Inhalt von Drewry, angeboten von MarineNet
3.3. WISSENSCHAFTLICHE ANGEBOTE 26<br />
entstehen, wodurch es Nachfragern erleichtert wird, die Dokumente zu finden.<br />
Wissenschaftler bieten ihre Ergebnisse zwar häufig online an, tun dies aber in<br />
der Regel über ihre Homepage . Wenn man nun die Menge der wissenschaftlich<br />
tätigen Personen zugr<strong>und</strong>e legt <strong>und</strong> daraus die Zahl der Homepages ableitet,<br />
wird man sicherlich eine stolze Menge an Orten im Internet ermitteln, an denen<br />
wissenschaftliche Dokumente abgelegt sein könnten. Die Netacademy konsoli-<br />
diert nun zumindest schon mal die Ergebnisse der teilnehmenden Wissenschaft-<br />
ler, sofern diese Ihre Dokumente in das System einpflegen.<br />
Viele Publikationen sind kostenlos zu bekommen, sofern man sich am System<br />
angemeldet hat. Interessant wird es jedoch bei kostenpflichtigen Dokumenten,<br />
die ebenso in der Netacademy registriert sind. Konkret handelt es sich dabei um<br />
regelmäßig erscheinende Journale, die es einerseits in Form <strong>eines</strong> Abonnements<br />
gedruckt zu kaufen gibt <strong>und</strong> deren Beiträge andererseits neben einigen weiteren<br />
kostenpflichtigen Dokumenten einzeln über das Portal Ingenta 10 zu erwerben<br />
sind, welches sich auf wissenschaftliche Publikationen spezialisiert hat. Einzeln<br />
sind die Dokumente ausschließlich in elektronischer Form zu bekommen.<br />
Über die Usability der Netacademy lässt sich streiten, aber das Prinzip des<br />
Modells ist klar: Sämtliche kostenpflichtigen elektronischen Inhalte werden über<br />
das größere Portal abgewickelt. Dort sind die Dokumente durch die Suchfunk-<br />
tion einer vermutlich größeren Nutzergruppe zugänglich. Zudem werden die<br />
Bezahlungsmodalitäten weitgehend von Ingenta übernommen, was den admi-<br />
nistrativen Aufwand verringert.<br />
Die Suchfunktion ist simpel gehalten <strong>und</strong> erlaubt die freie Eingabe <strong>eines</strong> oder<br />
mehrerer Begriffe. Die Ergebnisse lassen sich auf Dokumentarten einschränken.<br />
3.3.2. SpringerLink<br />
Hierbei handelt es sich um das Online Informationssystem des Springer Ver-<br />
lages, der sich in erster Linie an den professionellen <strong>und</strong> wissenschaftlichen<br />
Nutzer wendet <strong>und</strong> hochwertige Publikationen aus dem wissenschaftlichen <strong>und</strong><br />
wirtschaftlichen Umfeld verlegt.<br />
Das SpringerLink Angebot des Verlages konzentriert sich ausschließlich auf<br />
Produkte des Verlages. Es ermöglicht dem Leser, hochwertige wissenschaftliche<br />
Journale online zu lesen. Zu diesem Zweck bietet SpringerLink eine ausgefeilte<br />
Suchfunktion, sowie den Zugriff auf Abstracts <strong>und</strong> Inhaltsangaben der Publika-<br />
10 WWW Adresse: http://www.ingentaselect.com
27 3.3. WISSENSCHAFTLICHE ANGEBOTE<br />
tionen kostenfrei an. Volltexte werden ausschließlich kostenpflichtig für 35 USD<br />
pro Artikel angeboten.<br />
Es gibt keine Community Features, Experten Verzeichnisse o.ä.<br />
3.3.3. ACM Portal<br />
Die ACM ist bereits seit langer Zeit (1947 gegründet) in der Informatik eine<br />
feste Größe. Sie nennt sich selbst eine Society, also eine Gesellschaft. Sie strebt<br />
an, das wissenschaftliche Arbeiten im Computing-Sektor zu unterstützen <strong>und</strong><br />
bietet ihren Mitgliedern einiges an Unterstützung. Sie finanziert sich vermutlich<br />
in erster Linie über die Mitgliedsbeiträge <strong>und</strong> ihre Publikationen, die sie ver-<br />
legt <strong>und</strong> die, so wie zum Beispiel ihr Journal ” Communications of the ACM“,<br />
weltweit höchste Anerkennung erlangt haben.<br />
Das Angebot umfasst neben einer langen Liste selbstverlegter Journale <strong>und</strong><br />
Konferenzprotokolle den Zugang zu ausgewählten Büchern <strong>und</strong> Kursen für<br />
Software-Entwickler <strong>und</strong> Studenten, die für zahlendes Publikum sogar im Voll-<br />
text vorliegen. Die Bücher sind nicht herunterladbar, aber jederzeit online ein-<br />
sehbar - jedenfalls solange die Subskription der ACM-Mitgliedschaft aktiv ist.<br />
Es gibt jedoch auch Netzwerk-Lizenzen für Firmen <strong>und</strong> Universitäten, die es<br />
erlauben, bestimmte IP-Bereiche freizuschalten, so dass alle Zugriffe aus den<br />
jeweiligen Netzen heraus automatisch erlaubt sind. Die hiesigen Universitäten<br />
nutzen dieses attraktive Angebot in der Regel auch. (Der Autor dieser Zeilen<br />
ist dennoch ACM Mitglied, denn so hat er auch von zu Hause direkten Zugriff.)<br />
Als besonders interessant im Kontext dieser Arbeit stellt sich das ACM Por-<br />
tal 11 dar. Es handelt sich dabei um ein Informationssystem, welches den Zugriff<br />
auf Publikationen des ACM mit Hilfe <strong>eines</strong> Such-Mechanismus erlaubt. Die-<br />
ses Portal integriert zusätzlich den sogenannten ACM Guide, der das Angebot<br />
auf Publikationen anderer Verlage ausdehnt. Laut ACM Angaben beinhaltet<br />
der Guide bibliographische Daten von mehr als 800000 Publikationen, die von<br />
wissenschaftlichen Anbietern weltweit angeboten werden. Die Integration dieser<br />
weltweiten Quellen beschränkt sich auf die Erfassung <strong>und</strong> Verlinkung der Pu-<br />
blikationen. Um auf die Volltexte Zugriff zu haben, muss der Nutzer mit dem<br />
jeweiligen Anbieter Kontakt aufnehmen <strong>und</strong> zum Beispiel das Buch kaufen,<br />
wenn es <strong>eines</strong> ist, oder auch eine kostenpflichtige Mitgliedschaft eingehen.<br />
Der Suchmechanismus ist wie üblich zweigeteilt. Es gibt eine einfache Suche,<br />
die für alle kostenlos benutzbar ist, <strong>und</strong> eine erweiterte Suche (siehe Abbildung<br />
11 WWW Adresse: http://portal.acm.org
3.3. WISSENSCHAFTLICHE ANGEBOTE 28<br />
Abbildung 3.4.: Erweiterte Suche im ACM Portal
29 3.4. TECHNISCH RELEVANTES<br />
3.4) für den zahlenden K<strong>und</strong>enkreis. Bei der Benutzung des Systems fiel bereits<br />
auf, dass oft die erweiterte Suche nötig wurde, um die gewünschten Suchergeb-<br />
nisse hinreichend exakt zu beschreiben. Besonders wichtig wird dieses Feature<br />
in Zusammenhang mit der Beschränkung auf 200 ausgegebene Publikationen,<br />
denn selbst wenn sich das gesuchte Dokument in der Liste befinden müsste, so<br />
hat man doch erst darauf Zugriff, wenn es sich unter den ersten 200 befindet.<br />
Um das zu garantieren, sind so exakte Suchanfragen nötig, die nur durch die<br />
erweiterte Suche möglich sind.<br />
Die erweiterte Suche ermöglicht wie in Abbildung 3.4 gezeigt, dass die Suche<br />
gezielt auf einzelne Felder wie zum Beispiel Autorname, ISBN oder Titel be-<br />
schränkt werden kann. Außerdem wird eine Klassifikation angeboten ( ” CCS“),<br />
die die Dokumente thematisch in eine hierarchische Struktur einbindet <strong>und</strong> die<br />
natürlich auch für die Suche verwendet werden kann.<br />
Volltexte des ACM sind direkt über das Portal online als PDF zu bekommen,<br />
sofern es sich um Journal-Artikel oder Konferenzprotokolle handelt. Bücher<br />
sind nicht als Volltext vorhanden. Da das ACM sehr anerkannte Journale be-<br />
sitzt <strong>und</strong> die Artikel durchweg von hoher wissenschaftlicher Qualität sind, sind<br />
die Volltexte bei der wissenschaftlichen Auseinandersetzung mit informations-<br />
technischen Themen unabkömmlich. Diese Volltexte stellen also einen deutlich<br />
wahrnehmbaren Wert dar. Daher ist der Zugriff auf sie den zahlenden K<strong>und</strong>en<br />
vorbehalten.<br />
Lange Rede kurzer Sinn: das Portal ist zwar zunächst gratis zu testen. Um<br />
es aber wirklich effektiv <strong>und</strong> erfolgreich zu nutzen, benötigt man zwingend<br />
eine kostenpflichtige vollwertige Mitgliedschaft. Die Gratisnutzung ist somit ein<br />
Köder für K<strong>und</strong>en, die durch die spielerische Erforschung des Gratisbereichs<br />
des Portals einen Eindruck des Umfanges des Angebots bekommen können.<br />
Dieses Vorgehen kann nach Ansicht des Autors auch für das ISL eine mögliche<br />
Herangehensweise darstellen.<br />
3.4. Technisch Relevantes<br />
3.4.1. Clusty / Vivísimo<br />
Die Firma Vivísimo stellt Clustering Software her, die sie (sicherlich nicht bil-<br />
lig) unter der Bezeichnung Vivísimo Clustering Engine (VCE) anbietet. Eine<br />
Besonderheit des Vorgehens ist, dass das Clustering on-the-fly ausgeführt wird.<br />
Es gibt kein vollständiges Clustering des Datenbestandes. Stattdessen werden
3.4. TECHNISCH RELEVANTES 30<br />
ausschließlich die Such-Ergebnisse einem Ad-Hoc Clustering unterworfen. Da<br />
das System darauf ausgerichtet ist, die Ergebnisse einer Suchmaschine zu clu-<br />
stern, betrachtet es Titel <strong>und</strong> Abstract, den Suchmaschinen üblicherweise au-<br />
tomatisch liefern. Laut Vivísimo beinhaltet der Clustering Algorithmus zwar<br />
keinerlei Vorwissen (Thesauri oder Ähnliches), wurde aber von den Entwick-<br />
lern speziell darauf ausgerichtet Cluster zu erzeugen, die beachten, ” what users<br />
wish to see when they examine clustered documents“ (vivisimo.com 12 ).<br />
Zudem bietet sie ein Produkt namens Clusty 13 an. Dabei handelt es sich<br />
um eine Meta-Suchmaschine, die verschiedene Suchmaschinen abfragt, deren<br />
Ergebnisse sammelt <strong>und</strong> mittels VCE clustert. Interessanterweise fragt Clus-<br />
ty nicht mehr nur gewöhnliche Suchmaschinen ab, sondern erlaubt zusätz-<br />
lich die Suche in weiteren Quellen wie zum Beispiel einer Preissuchmaschine<br />
(www.bizrate.com 14 ) oder einer Bildersuchmaschine (picsearch.com 15 ). Es exi-<br />
stiert somit eine gemeinsame Oberfläche für die Suche in mehreren unterschied-<br />
lichen Quellen. Hervorzuheben ist die Integration der Kategorisierung von biz-<br />
rate.com. Bizrate hat die Produkte in Kategorien einsortiert, wie zum Beispiel<br />
Men’s T-Shirts oder Women’s T-Shirts bei Shirts. Diese Kategorien zeigt es<br />
zusätzlich zu den automatisch ermittelten Clustern an. Probier-Link 16<br />
Mit Clusty lassen sich sehr einfach eigene Erfahrungen mit Clustering Ange-<br />
boten sammeln. Das Vorgehen von Clusty wäre nach Meinung des Autors auch<br />
für das ISL sehr interessant.<br />
3.4.2. carrot 2<br />
Dies 17 ist ein Programmierframework in Java, welches sich als Experimentier-<br />
plattform in Bezug auf das Clustering von Suchergebnissen versteht. Daher<br />
passt es sehr gut zur Zielsetzung der Arbeit <strong>und</strong> soll hier mit aufgeführt wer-<br />
den. Der von carrot 2 verwendete Ansatz unterscheidet sich von dieser Arbeit<br />
insofern, als dass dort für das Clustern ein eigener Algorithmus (LINGO) ver-<br />
wendet wird. LINGO basiert auf einem durch LSI (siehe auch Abschnitt 5.3.4)<br />
erzeugten approximierten Datenraum, der durch die drei Matrizen T S D T dar-<br />
12<br />
WWW Adresse: http://vivisimo.com/docs/howitworks.pdf<br />
13<br />
WWW Adresse: http://clusty.com<br />
14<br />
WWW Adresse: http://www.bizrate.com<br />
15<br />
WWW Adresse: http://picsearch.com<br />
16<br />
WWW Adresse: http://clusty.com/search?v%3aproject=clusty-shopping&query=<br />
shirt<br />
17 WWW Adresse: http://www.cs.put.poznan.pl/dweiss/carrot/
31 3.4. TECHNISCH RELEVANTES<br />
gestellt wird. Dabei ist S eine diagonale Matrix (alle Werte auf 0, außer in der<br />
Diagonalen), die die Singulärwerte enthält. Der Unterschied ist beim Finden<br />
der Cluster am größten. Und zwar errechnet LINGO für jeden Singulärwert<br />
einen dazu passenden Begriff, bzw. eine dazu passende Phrase (LINGO sucht<br />
auch nach Begriffsgruppen). Jeder gef<strong>und</strong>ene Begriff wird nun flugs zum Clu-<br />
ster erklärt. Dann werden noch die Dokumente entsprechend ihrer Ähnlichkeit<br />
zu diesen gef<strong>und</strong>enen Clustern jeweils einem dieser Cluster zugeordnet, fertig.<br />
Das System macht einen sehr guten Eindruck <strong>und</strong> die Idee hinter LINGO<br />
besticht ebenso durch ihre Einfachheit wie durch ihre Effektivität.
3.4. TECHNISCH RELEVANTES 32
Teil II.<br />
Definition
4. Technische Analyse<br />
4.1. Ist-Analyse<br />
Ziel ist die Klärung der derzeitigen Situation im Kontext des Seabase Infor-<br />
mationssystems. Identifikation des aktuellen Datenmodells, Definitionen von<br />
existierenden Schnittstellen, Identifikation der beteiligten Software Komponen-<br />
ten sowie insbesondere die Klärung, wie die Prozesse aktuell für Erfassung <strong>und</strong><br />
Recherche ablaufen.<br />
4.1.1. Komponenten <strong>und</strong> Schnittstellen<br />
Die beiden Systeme, die hauptsächlich zusammenarbeiten, um die Systemfunk-<br />
tionalität bereitzustellen, sind die Software Faust <strong>und</strong> der Webserver, der eine<br />
Apache+PHP Konfiguration nutzt.<br />
Bei Faust handelt es sich um ein Datenbanksystem mit einfachen Dokumen-<br />
tenmanagement Funktionen, das für den Einsatz in Bibliotheken <strong>und</strong> ähnli-<br />
chen Einrichtungen, in denen bibliographische Objekte (Dokumente, Bücher,<br />
Zeitschriften,. . . ) erfasst <strong>und</strong> verwaltet werden müssen, optimiert ist. Die Do-<br />
kumenttypen sind sehr weitgehend flexibel definierbar; die für die Erfassung<br />
benötigten Felder können frei benannt <strong>und</strong> angelegt werden. Es erlaubt Ver-<br />
knüpfungen mit Online-Quellen <strong>und</strong> das Erfassen <strong>und</strong> Speichern beliebiger di-<br />
gitaler Dokumente. Im ISL werden zwar die digitalen Dokumente sowie die<br />
Online-Quellen nach <strong>und</strong> nach stärker ins Blickfeld gerückt, Literaturhinweise<br />
auf Publikationen, die in der ISL-Bibliothek tatsächlich auch in Papierform vor-<br />
handen sind, nehmen aber nach wie vor den größten Teil des Datenbestandes<br />
ein.<br />
Die Schnittstelle zwischen der auf PHP basierenden Suche <strong>und</strong> der Faust-<br />
Datenbank definiert sich über eine Textdatei, die durch ein speziell entwickeltes<br />
Makro aus Faust heraus produziert wird. Deren Format ist sehr simpel aufge-<br />
baut. Es besteht aus einer Textzeile pro bibliographisches Objekt. Die Textzeile<br />
wiederum ist wie folgt aufgebaut:
4.1. IST-ANALYSE 36<br />
id Component Model<br />
«artifact»<br />
Logical Model::Export data<br />
import script<br />
«artifact»<br />
Index data<br />
FAUST system<br />
Seabase<br />
Abbildung 4.1.: System-Komponenten<br />
«executable»<br />
Logical Model::<br />
Faust<br />
search mask<br />
Zeile ::= Feld1 "|" ... "|" Feldx "|" Deskriptoren<br />
Deskriptoren ::= Deskriptor ";" Deskriptoren | Deskriptor<br />
Sie besteht somit aus x durch | getrennten Feldern <strong>und</strong> einer Liste von durch<br />
; getrennten Deskriptoren. Um welche Felder es sich handelt <strong>und</strong> in welcher<br />
Reihenfolge diese jeweils in den Zeilen zu finden sind ist aus Tabelle 4.1 (Seite<br />
40) <strong>und</strong> Tabelle 4.2 (Seite 41) ersichtlich.<br />
Damit der Zugriff auf die Daten aus der Suche heraus performant ablau-<br />
fen kann, wird diese Textdatei zunächst eingelesen, es werden die signifikanten<br />
Informationen erkannt (Listen von Autoren, Deskriptoren,. . . ) <strong>und</strong> in für die<br />
Suche optimierter Form abgelegt.<br />
4.1.2. Prozesse<br />
Es gibt im Wesentlichen zwei Hauptprozesse. Dabei handelt es sich zum einen<br />
um den Prozess ” Erfassung“ <strong>und</strong> den Prozess ” Recherche“. Beide sind beim ISL
37 4.1. IST-ANALYSE<br />
aktuell im Einsatz. Die Erfassung wird von Mitarbeitern des ISL durchgeführt.<br />
Der Prozess Erfassung (Abbildung 4.2 (Seite 38), Anwendungsfälle sind grün,<br />
Systemzustände sind rot dargestellt <strong>und</strong> produzierte Datenobjekte in blau) be-<br />
ginnt, sobald ein neues Dokument im ISL angeschafft wird oder der Erfassungs-<br />
bedarf anderweitig aufkommt, z.B. durch eigene Recherchen im Internet. Ein<br />
solches Dokument wird zunächst inhaltlich intellektuell analysiert <strong>und</strong> erfasst.<br />
Die Ergebnisse können dann in das Faust-System eingetragen werden. Dabei<br />
wird unter anderem eine inhaltliche Zusammenfassung (auch Kurzreferat ge-<br />
nannt) des Dokuments im System hinterlegt. Des weiteren werden bibliogra-<br />
phische Informationen eingegeben <strong>und</strong> das Dokument in die Begriffshierarchie<br />
des ISL (ISL-Thesaurus) eingegliedert.<br />
Sofern sich hierbei der Bedarf ergibt, den Thesaurus zu erweitern, wird das<br />
getan.<br />
Am Ende <strong>eines</strong> Arbeitstages dann wird der vierte Anwendungsfall, der Ex-<br />
port, angestoßen. Dieser besteht im Wesentlichen aus der Auswahl <strong>eines</strong> Makros<br />
im Faust-System, welches selbständig eine Liste mit den bibliographischen In-<br />
formationen in eine Textdatei schreibt, die für das online Suchformular zugängig<br />
ist.<br />
Die K<strong>und</strong>en reagieren auf Informationsbedarf mit einer Suchanfrage, die sie<br />
im online Suchformular eintragen. Dabei haben sie Zugriff auf eine Schlagwort-<br />
liste sowie auf eine Liste aller verzeichneten Autoren. Siehe Darstellung des<br />
Ablaufs, Abbildung 4.3 (Seite 39).<br />
Die Suchmaske, zu sehen in Abbildung 4.4 (Seite 41), erlaubt die Eingabe von<br />
Autor, Titel, zwei Schlagworten (Deskriptoren), Erscheinungsjahr, Sachgebiet<br />
<strong>und</strong> der Bibliothekssignatur sowie zusätzlich <strong>eines</strong> Stichwortes, nach welchem<br />
das System in den Zusammenfassungen sucht. Alle Eingaben sind mit UND<br />
verknüpft.<br />
4.1.3. Datenmodell<br />
Das Datenmodell, welches sich letztlich online wiederspiegelt, wird durch den<br />
Export-Vorgang aus der Software Faust heraus erzeugt. Es besteht für jede<br />
Publikation aus einer langen Liste an Feldern mit ihren Werten <strong>und</strong> einer Liste<br />
an zugehörigen Deskriptoren. Da die Deskriptoren als Liste exportiert werden,<br />
sind die hierarchischen Beziehungen, die im Faust existieren, online nicht mehr<br />
verfügbar <strong>und</strong> tauchen somit auch im Datenmodell nicht auf.<br />
Siehe Tabelle 4.1 (Seite 40).
4.1. IST-ANALYSE 38<br />
Thesaurus<br />
aktualisiert<br />
Ereignis<br />
Information<br />
Funktion<br />
Publikation<br />
V<br />
Thesaurus<br />
V<br />
Legende<br />
V<br />
V<br />
oder<br />
<strong>und</strong><br />
Thesaurus<br />
unzureichend<br />
Thesaurus<br />
erweitern<br />
Datendatei<br />
Neue<br />
Publikation<br />
liegt vor.<br />
V<br />
Zusammenfassung<br />
<strong>und</strong> Klassifikation<br />
erstellen<br />
XOR<br />
Geschäftsschluss<br />
Abbildung 4.2.: Erfassungsprozess<br />
Startereignis<br />
V<br />
Export anstoßen<br />
Neue<br />
Publikation<br />
erfasst<br />
Klassifikation<br />
ermittelt<br />
Daten in Faust<br />
eintragen<br />
Neue Daten<br />
liegen in Faust<br />
vor<br />
Endereignis
39 4.1. IST-ANALYSE<br />
Anfrage formulieren<br />
Suchseite aufrufen<br />
Suchbegriffe angeben<br />
Anfrage beantworten<br />
Datendatei auslesen<br />
Ranking erzeugen<br />
Dokument selektieren<br />
Liste mit Dokumenten zeigen<br />
Dokument auswählen<br />
Created by Borland® Together® Designer Community Edition<br />
Abbildung 4.3.: Rechercheprozess<br />
Hauptsächlich manuelle<br />
Aktivität. Nicht extra angegeben<br />
aber dennoch vorhanden ist die<br />
verfügbare<br />
Hintergr<strong>und</strong>information wie der<br />
Thesaurus sowie die Liste von<br />
Autoren, die das Angeben von<br />
Suchbegriffen erleichtert.<br />
Zeigt den Ablauf auf dem<br />
Server, der anhand der Anfrage<br />
eine sinnvolle Antwort<br />
erarbeiten muss.<br />
Diese Aktivität ist wieder in<br />
erster Linie manuell.
4.1. IST-ANALYSE 40<br />
Bezeichner Typ Zweck<br />
Titel Text Titel des Dokuments<br />
Jahr Text Erscheinungsjahr<br />
ND Text eindeutige Dokumentnummer, 8-stellig<br />
DT Text Dokumenttyp (z.B. J für Journal)<br />
LI Text Literature Indicator (z.B. S für Selbst. Einheit)<br />
CODE Text 6-stelliger Zeitschriftencode (Dummy)<br />
Land Text Erscheinungsland<br />
ISSN Text International Standard Serial Number<br />
ISBN Text International Standard Book Number<br />
Sprache Text Sprache der Publikation<br />
Sprache Kurzref. Text Sprache des Kurzreferats<br />
Bd. Text Angabe einer Bandnummer<br />
H. Text Angabe einer Heftnummer<br />
S. Text Angabe einer Seitennummer<br />
Abb. Text Anzahl Abbildungen<br />
Tab. Text Anzahl Tabellen<br />
Lit. Text Literaturangaben (Literaturzitate)<br />
Sig. Text Signatur der Bibliothek<br />
Auswerter Text Mitarbeiter inhaltliche Erschließung<br />
Erfasser Text Mitarbeiter Formalerschließung<br />
PLZ Text Postleitzahl des Verlags<br />
PZB Text Postzustellbezirk<br />
Ländercode Text Land des Erscheinens<br />
Sachgebiete Text Liste zugehöriger Sachgebiete<br />
Titelübersetzung Text Titelübersetzung des Originaltitels<br />
Titelanmerkung Text Titelanmerkung (z.B. Special Report)<br />
Verfasser Text Der Verfasser (eine Person)<br />
Korp. Verfasser Text Herausgebende Korporation oder Institution<br />
Herausgeber Text Name des Herausgebers<br />
Zeitschriftentitel Text Titel der Zeitschrift<br />
Tabelle 4.1.: Dataobject
41 4.1. IST-ANALYSE<br />
Bezeichner Typ Zweck<br />
Abbildung 4.4.: Screenshot der Suchmaske<br />
Erscheinungsort Text Erscheinungsort<br />
Übergeord. Publ. Text Name der Publikation, die das Objekt beinhaltet<br />
Verlag Text Name des Verlages<br />
Ort Text Ort des Verlages<br />
Str./Postf. Text Adresse des Verlages<br />
ID-Nr Text unbekannte Nr<br />
Freie Begriffe Text Schlagworte, die nicht im Thesaurus vorkommen<br />
Kurzreferat Text Kurze Zusammenfassung des Inhalts<br />
URL Text Bei online Dokumenten dessen URL<br />
Tabelle 4.2.: Dataobject (Fortsetzung)
4.1. IST-ANALYSE 42<br />
4.1.4. Einschränkungen<br />
Das oben genannte Vorgehen ist etwas limitiert - alleine schon dadurch, dass die<br />
Klassifikation aus dem Literaturerfassungssystem Faust nicht vollständig expor-<br />
tiert wird. Der Export wird mithilfe <strong>eines</strong> Makros durchgeführt. Dieses Makro<br />
kann mithilfe <strong>eines</strong> Faust-spezifischen Basic Dialekts entwickelt werden. Dabei<br />
ist man natürlich generell der Mächtigkeit der API unterworfen, die Faust den<br />
Basic Programmen bietet. Wie aus der Dokumentation der API zu entnehmen<br />
ist, erlaubt die Sprache das Extrahieren genau <strong>eines</strong> Oberbegriffes zu einem<br />
gef<strong>und</strong>enen Deskriptor. Falls der Thesaurus die Möglichkeit der Polyhierarchie<br />
(das heißt, dass ein Begriff mehrere Oberbegriffe haben <strong>und</strong> somit zu mehreren<br />
Begriffs-Klassen gleichermaßen gehören kann) nutzt, geht diese beim Export<br />
verloren.<br />
Gewöhnliche Hierarchien dagegen sind jedoch im Prinzip vollständig expor-<br />
tierbar, da Faust Basic durch die Befehle desc down <strong>und</strong> desc next das Traver-<br />
sieren der Unterbegriffe <strong>eines</strong> Begriffes erlaubt. Derzeit wird diese Möglichkeit<br />
jedoch nicht genutzt.<br />
Ein gebräuchliches Mittel, die Recherche in Informationssystemen zu erleich-<br />
tern, sind sogenannte Synonymringe. Ein solcher Ring besteht aus einem Haupt-<br />
begriff, unter welchem die Dokumente erfasst werden, <strong>und</strong> mehreren Synony-<br />
men. Diese Synonyme können dann in der Suche anstatt des eigentlichen Begrif-<br />
fes verwendet werden. Das ist deswegen hilfreich, weil verschiedene Menschen<br />
mit verschiedener Vorbildung <strong>und</strong> einem unter Umständen auch unterschiedli-<br />
chem Kulturkreis, andere Begriffe für die selbe Sache verwenden. Sofern also<br />
bekannt ist, dass Dinge unterschiedlich benannt werden können, so macht es<br />
Sinn, diese unterschiedlichen Benennungen als Synonym im System zu hinterle-<br />
gen. Faust Basic erlaubt das Extrahieren genau <strong>eines</strong> Synonyms. Sind mehrere<br />
Synonyme hinterlegt, wird nur das erste ausgelesen. Derzeit werden gar keine<br />
Synonyme ausgelesen.<br />
Betrachtet man das System aus der Sicht der Nutzer, fällt einem zunächst<br />
auf, dass . . .<br />
• . . . offenbar die Felder Stichwort <strong>und</strong> Deskriptor gleichermaßen nach in-<br />
haltlichen Kriterien selektieren, während die genaue Wirkungsweise un-<br />
klar bleibt. Die Angabe <strong>eines</strong> Sachgebietes stellt sogar die dritte Möglich-<br />
keit dar, wobei diese nur sehr grob selektiert.<br />
• . . . um Deskriptoren für die Suche verwenden zu können, der Suchende die
43 4.2. PROTOTYP<br />
verfügbaren Deskriptoren kennen muss. Dazu wird eine Liste angeboten,<br />
die die Deskriptoren alphabetisch sortiert anzeigt. Diese Liste beinhal-<br />
tet eine ganze Reihe sehr spezieller Begriffe <strong>und</strong> ist sehr umfangreich.<br />
Benutzer müssen sich folglich durch die langen Listen arbeiten <strong>und</strong> dort<br />
passende Begriffe wählen. Der Autor findet den Prozess aufwändig <strong>und</strong><br />
abschreckend.<br />
• . . . die Signatur den meisten K<strong>und</strong>en unbekannt sein dürfte, da sie die<br />
Erfassungsmethodik der ISL-Bibliothek wiederspiegelt <strong>und</strong> deren Kennt-<br />
nis voraussetzt. Somit werden sie das gleichnamige Feld kaum ausfüllen<br />
können <strong>und</strong> es kann genau so gut entfernt werden, um das Formular über-<br />
sichtlich zu halten.<br />
• . . . keine Volltextsuche existiert.<br />
• . . . viele andere Felder des Datenmodells in der Suchmaske nicht angebo-<br />
ten werden.<br />
4.2. Prototyp<br />
Zur Erinnerung: es soll ein Clustering Konzept dargestellt werden, mit dessen<br />
Hilfe die Suche im System qualitativ verbessert werden kann. Dadurch soll es<br />
möglich sein, die Struktur von Suchergebnissen besser zu überblicken <strong>und</strong> sich<br />
aus der (eventuell sehr großen) Menge an Ergebnissen diejenigen zu selektieren,<br />
die am ehesten in Frage kommen.<br />
4.2.1. Oberflächenprototyp<br />
Zunächst soll ein Modell der Benutzerschnittstelle zur Diskussion gestellt wer-<br />
den. Dies geschieht, um frühzeitig zu demonstrieren, wie sich Abläufe <strong>und</strong> De-<br />
signs letztendlich in einem fertigen Produkt wiederspiegeln können. Da in den<br />
Gesprächen mit dem ISL häufig erwähnt wurde, dass Personalisierung ein The-<br />
ma ist, wurde dies in dem nun folgenden Vorschlag mit eingebaut.<br />
Abbildung 4.5 zeigt also einen Vorschlag, wie sich Clustering für den Benut-<br />
zer darstellt. Dieser Vorschlag beinhaltet ein flaches Clustering der Dokumente<br />
(keine hierarchischen Cluster). Im Folgenden werden die durch nummerierte<br />
gelbe Kreise markierten Bereiche näher erläutert (die Nummer entspricht dem<br />
Platz in der folgenden Aufzählung).
4.2. PROTOTYP 44<br />
Abbildung 4.5.: Recherche-Formular<br />
1. Dieser Block beinhaltet die für die Arbeit wesentlichen Ergebnisse, nämlich<br />
die ermittelten Cluster. Es werden all die Cluster aufgelistet, dessen Do-<br />
kumente sich in der Ergebnisliste wiederfinden. Dieser Block erlaubt so-<br />
mit, die Ergebnisliste durch Mausklick (die Namen sind aktive anklickbare<br />
Elemente) auf die Dokumente des gewählten Clusters einzuschränken. Ein<br />
ähnliches Prinzip nutzt die Suchmaschine Clusty. Siehe auch S. 29 <strong>und</strong> S.<br />
30.<br />
2. Der Aktionskasten beinhaltet die Möglichkeiten, die der Nutzer hat. Alle<br />
Aktionen beziehen sich direkt auf die Ergebnisliste bzw. die selektierten<br />
Dokumente der Liste. Anzeigen führt dazu, dass die ausgewählten Do-<br />
kumente in einer Detail-Ansicht dargestellt werden. Diese Funktionalität<br />
besitzt das aktuelle System bereits in ähnlicher Form. Speichern soll dem<br />
Nutzer erlauben, die ausgewählten Dokumente zu sichern. Damit dies<br />
möglich ist, muss die Web Site personalisierbar sein, denn die Funktion<br />
setzt voraus, dass sich der Nutzer in sein Profil einloggen kann <strong>und</strong> die<br />
gewählten Dokumente dort in seinem Profil als Verweise hinterlegt wer-<br />
den. Drucken dagegen entspricht im Wesentlichen der Funktion Anzeigen,<br />
mit dem einzigen Unterschied, dass die Anzeige zum Beispiel in einem neu-<br />
en Fenster auf eine Weise passiert, die für das Ausdrucken optimiert ist.
45 4.2. PROTOTYP<br />
Abbildung 4.6.: Verweis auf ähnliche Dokumente<br />
Der Druck-Dialog des Browsers öffnet sich automatisch.<br />
3. Das Suchformular ist der Google-Suche nachempf<strong>und</strong>en worden, da in ei-<br />
nem vorhergehenden Gespräch signalisiert wurde, dass die Art <strong>und</strong> Weise,<br />
wie Google das Formular aufbaut, als sehr angenehm verständlich emp-<br />
f<strong>und</strong>en wurde. Man besitzt auf diese Weise eine sehr intuitive Möglich-<br />
keit, Suchbegriffe mit Hilfe boolscher Logik zu kombinieren, ohne dass<br />
eine spezielle Anfragesyntax notwenig würde. Möchte der Nutzer jedoch<br />
eher nach bibliographischen Gesichtspunkten detailliert nach Autoren, Er-<br />
scheinungsdatum, Verlag o.ä. suchen, so führt ihn der Verweis Erweiterte<br />
Suche zu einem entsprechend komplexeren Suchformular.<br />
4. Die Ergebnisliste ist entsprechend der Angabe im Suchformular auf eine<br />
bestimmte Anzahl an Einträgen beschränkt. Sollte die Menge an Ergeb-<br />
nissen die Anzahl übersteigen, kann der Nutzer hier die anzuzeigende Seite<br />
auswählen <strong>und</strong> auf diese Weise in der Ergebnisliste blättern.<br />
Um den obigen Vorschlag noch etwas zu erweitern, ließe sich für jedes einzelne<br />
gef<strong>und</strong>ene Dokument der dazugehörige Cluster anzeigen, bzw. alle Dokumente<br />
des Clusters. In Abbildung 4.6 wird die Zeile mit einem Pfeil markiert, die den<br />
Verweis auf den Cluster beinhaltet.<br />
4.2.2. Prozess: Cluster erzeugen<br />
Dieser Vorgang soll Cluster in der Datenbank anlegen, so dass jedem Cluster<br />
eine Reihe von Dokumenten zugeordnet sind. Er teilt sich in Aktivitäten auf,<br />
die denen des KDD Prozesses (siehe Abschnitt 5.2) entsprechen. Die folgenden<br />
Absätze beschreiben also diesen Vorgang <strong>und</strong> entsprechen jeweils einem Ab-
4.2. PROTOTYP 46<br />
nächstes<br />
Dokument<br />
Erfasser<br />
nein<br />
Analyse<br />
Selektion Analyse Transformation Cluster<br />
«realize»<br />
Dokument analysieren<br />
fertig?<br />
«realize»<br />
ja<br />
Selektion<br />
Dokumente<br />
analysiert<br />
Export aus Faust Import in Seabase DB Anfrage<br />
Cluster<br />
Cluster erkennen Cluster prüfen<br />
Parameter anpassen<br />
nein<br />
Abbildung 4.7.: Clustering Prozess<br />
ok?<br />
«realize»<br />
ja<br />
Interpretation<br />
Cluster speichern<br />
schnitt des besagten KDD Prozesses. Abbildung 4.7 (Seite 46) zeigt den Ablauf<br />
in einem UML Aktivitätsdiagramm.<br />
Selektion ist der erste Teil von KDD. In S. 46 ist es die gleichnamige Aktivität<br />
ganz zu Beginn. Er besteht aus den Export- <strong>und</strong> Import-Vorgängen, durch die<br />
der Datenbestand des Systems aktualisiert wird, sowie aus dem Selektionsvor-<br />
gang, der die zu clusternden Daten auswählt.<br />
Preprocessing entspricht dem Extrahieren von wesentlichen Merkmalen der<br />
Datensätze (Feature Selection) <strong>und</strong> läuft im Diagramm unter der Bezeichnung<br />
” Analyse“. (Siehe auch Abschnitt 5.3.3.) Ergebnis dieser Aktivität ist eine Liste<br />
von Features, die sich als Beschreibung von Datensätzen tauglich erwiesen<br />
haben. Zudem wurden die Dokumente bereits auf der Basis dieser Features sta-<br />
tistisch ausgewertet, so dass am Ende dieses Schrittes zum Beispiel alle nötigen<br />
Statistiken vorliegen.<br />
Transformation nennt sich jener Schritt, der die Daten für die Cluster Analyse<br />
so vorbereitet, dass der Algorithmus die Daten in einem für ihn passenden
47 4.2. PROTOTYP<br />
Format bekommt. Da der gewählte Ansatz auf dem Vektorraummodell (S. 56)<br />
basiert, besteht das Ergebnis aus einer Menge von Dokument-Vektoren, die<br />
insgesamt die Term-Dokument-Matrix darstellen.<br />
Data Mining heißt der vierte KDD Schritt, der hier der Aktivität ” Cluster“<br />
entspricht. Der Algorithmus nimmt die Vektoren als Eingabe <strong>und</strong> erzeugt eine<br />
Reihe von Clustern. Die Anzahl der Cluster wird jedoch fest vorgegeben. Diese<br />
Aktivität setzt voraus, dass die Qualität der Cluster überprüft wird, so dass<br />
die Möglichkeit besteht, die Clusteranzahl anzupassen <strong>und</strong> den Algorithmus<br />
mit diesem geänderten Parameter erneut laufen zu lassen. Es ist noch nicht<br />
ersichtlich, wie die Laufzeit des Algorithmus sein wird. Er hat prinzipiell eine<br />
exponentielle Laufzeitcharakteristik, so dass zu erwarten ist, dass er bei großen<br />
Datenmengen sehr lange dauert. Dadurch könnte es sich als hilfreich erweisen,<br />
wenn diese Zyklen manuell gesteuert werden können, damit nach Ermessen<br />
der zuständigen Person die Struktur vorzeitig als ” ausreichend optimal“ erklärt<br />
werden kann. Es gilt hier, ein Gleichgewicht zwischen Laufzeit (Geduld) <strong>und</strong><br />
Qualität herzustellen.<br />
Interpretation wird die letzte Aktivität genannt. Sie besteht darin, Namen für<br />
die Cluster zu vergeben, die die durch sie repräsentierten Dokumente thematisch<br />
am besten identifizieren. Es bietet sich hier an, Begriffe aus dem Thesaurus<br />
zu verwenden. Ergebnis dieses letzten Schrittes sind eine Liste von benannten<br />
Clustern <strong>und</strong> deren zugeordneten Dokumenten.<br />
4.2.3. Datenmodell<br />
Die im System abzulegenden Informationen umfassen die Dokumente <strong>und</strong> Au-<br />
toren sowie Terme (Deskriptoren), wie sie aus dem Faust exportiert wurden.<br />
Im Diagramm sind aus Gründen der Übersicht nicht alle Attribute angegeben,<br />
sondern nur die für die Cluster-Analyse Wesentlichen (welche Felder insgesamt<br />
vorhanden sind, wurde ja bereits in der Ist-Analyse oben aufgelistet).<br />
4.2.4. Komponenten <strong>und</strong> Schnittstellen<br />
Das System besteht zum einen natürlich aus der Faust-Software, die vom ISL für<br />
die Erfassung von Dokumenten verwendet wird. Diese Software exportiert wie<br />
im Diagramm angegeben seinen Datenbestand, der von einer Import-Komponente<br />
eingelesen wird.<br />
Im Hintergr<strong>und</strong> des Ganzen steht eine SQL Datenbank; diese wird von der
4.2. PROTOTYP 48<br />
parent<br />
Writes all imported and<br />
infered data into a SQL<br />
database, which can be<br />
used by client software<br />
afterwards, to make use<br />
of the cluster data.<br />
Cluster<br />
- name: String<br />
relatesTo<br />
Descriptor<br />
- name: String<br />
- language: char[2]<br />
«artifact»<br />
Export data<br />
Importer<br />
Data Access<br />
Analyzer<br />
belongsTo<br />
Document<br />
writtenBy<br />
- faustId: int<br />
- abstract: String<br />
- title: String<br />
- subject: List<br />
Abbildung 4.8.: Datenstruktur<br />
FAUST system<br />
SeaCLUSTER core<br />
Transformer<br />
«executable»<br />
Faust<br />
Finds names for<br />
the clusters.<br />
Abbildung 4.9.: System-Komponenten<br />
Author<br />
- firstName: String<br />
- lastName: String<br />
Feature<br />
Indexer<br />
Interpreter<br />
Clusterer<br />
Produces an Index for<br />
selected fields, to allow<br />
potential search<br />
applications to access<br />
the clustering data in a<br />
quick and optimized<br />
manner.
49 4.2. PROTOTYP<br />
Data Access Komponente kontrolliert. Auf welche Weise der Zugriff passieren<br />
soll, ist an dieser Stelle offen gelassen. (Auf jeden Fall sollte es möglich sein,<br />
PostgreSQL als Datenbanksystem zu verwenden. Das ist bei der Wahl zu be-<br />
denken.) Das eigentliche Clustering findet in der Analyse Komponente statt,<br />
die alle für die Analyse des Datenbestands nötigen Algorithmen beherbergt.<br />
Der Indexer baut aus den Inhalten der Datenbank einen Index auf, der<br />
Gr<strong>und</strong>lage für zu beantwortende Suchanfragen wird. Der Clusterer ermittelt<br />
die Cluster <strong>und</strong> legt ihre Repräsentation in der Datenbank ab. Der Analyzer<br />
ermittelt für die Inhalte der Datenbank passende Features. Siehe dazu auch<br />
Abschnitt 5.3.3 (Seite 59).
4.2. PROTOTYP 50
5. Wissenschaftliche Analyse<br />
Es ist geplant, einen Clustering Algorithmus einzusetzen, um die Suche in den<br />
Daten des ISL effektiver zu gestalten. Die Zielsetzung findet sich im Forschungs-<br />
bereich Information Retrieval wieder, der in diesem Kapitel zunächst erläutert<br />
werden soll. Zudem sollen alternative <strong>und</strong>/oder einfachere Methoden aufgezeigt<br />
werden, die ebenfalls zur Verbesserung einer Suchfunktion beitragen können.<br />
Clustering ist eben bei weitem nicht die einzige Methode, so etwas zu erreichen.<br />
Weil die Erwähnung des Begriffs häufig Assoziationen hervorruft, die hier<br />
nicht passen, sei eine Erläuterung des Begriffs eingeschoben. Der Begriff ” Clu-<br />
ster“ wird in den unterschiedlichsten Kontexten verwendet. Cluster in der Wirt-<br />
schaft werden als Verbände von Betrieben verstanden, in der Astronomie ver-<br />
steht man unter Clustern Sternhaufen <strong>und</strong> auch die Physik <strong>und</strong> die Mathematik<br />
verwenden jeweils eigene Bedeutungen des Begriffs. All diese Begriffe haben je-<br />
doch <strong>eines</strong> gemeinsam: sie beschreiben die Gruppierung von etwas. Sei es von<br />
Betrieben in der Wirtschaft oder von Sternen in der Astronomie oder gar von<br />
Computern in der Informationstechnik, in jedem Fall handelt es sich um eine<br />
Gruppierung oder Anhäufung von gleichartigen Dingen.<br />
In dieser Arbeit soll Clustering für die Gruppierung von Dokumenten stehen.<br />
Die erzeugten Gruppen lassen sich auch als Klassen von Dokumenten betrach-<br />
ten. Die Vorgehensweise passt sich in das Forschungsfeld ” Information Retrie-<br />
val“ ein <strong>und</strong> wird ebenfalls im Bereich ” Knowledge Discovery from Databases“<br />
(KDD) [FPSS96] eingesetzt. Daher sollen diese beiden Felder kurz vorgestellt<br />
werden.<br />
5.1. Information Retrieval<br />
Der Forschungsbereich ” Information Retrieval“ (kurz: IR) existiert in der In-<br />
formatik bereits seit vielen Jahren. Das Buch von van Rijsbergen mit dem Titel<br />
” Information Retrieval“ [VR79] kam beispielsweise in der ersten Ausführung<br />
bereits 1975 heraus <strong>und</strong> die Inhalte der Thematik wurden schon vorher in Uni-
5.1. INFORMATION RETRIEVAL 52<br />
versitäten gelehrt. Van Rijsbergen identifiziert die 1940er Jahre als die Zeit, in<br />
der man begann, dem IR mehr Aufmerksamkeit zu schenken. Es handelt sich<br />
also um eine Problematik, die sehr lange schon eine gewisse Wichtigkeit in der<br />
Informatik erlangt hat <strong>und</strong> die diese nie wirklich verloren hat. Besonders seit<br />
dem Aufkommen des Internet <strong>und</strong> den Suchmaschinen, die oft eher schlecht<br />
als recht Dokumente aus den schier unendlichen Dokumentenmengen fischen<br />
können, ohne die heute aber niemand auskommen könnte, hat das Thema IR<br />
neuen Auftrieb bekommen.<br />
IR beschäftigt sich in der Hauptsache damit, mit welchen Mechanismen sich<br />
am besten Informationen (insbesondere Dokumente) auffinden lassen. Insbeson-<br />
dere findet sich in der Literatur ([VR79]) die Unterscheidung, dass IR Systeme<br />
keine Antworten, die das gesuchte Wissen direkt beinhalten, geben, sondern<br />
ausschließlich Hinweise darüber liefern, in welchen Dokumenten jenes am wahr-<br />
scheinlichsten zu finden sein wird. Somit sind die heutigen Suchmaschinen wie<br />
Google, Overture oder Fireball eigentlich ganz klassische IR Systeme.<br />
Van Rijsbergen teilt den Bereich IR in drei Teilbereiche auf, die sich für IR als<br />
besonders wesentlich herausgestellt haben. Das sind zum einen die inhaltliche<br />
Analyse, zum anderen die Informationsstruktur <strong>und</strong> als drittes die Bewertung.<br />
Der erste Teilbereich ” Analyse“ beschäftigt sich damit, sinnvolle Repräsentatio-<br />
nen (siehe auch S. 56) von Dokumenten zu finden, die von Computern verarbeit-<br />
bar sind. Dies ist deshalb ein wichtiger Aspekt, weil die hier betrachteten Doku-<br />
mente zum größten Teil von Menschen für Menschen geschrieben wurden <strong>und</strong><br />
folglich in einer natürlichsprachlichen Form vorliegen. Diese natürlichsprachli-<br />
che Form dem Computer verständlich zu machen, ist nach wie vor unmöglich.<br />
Es gibt sehr viele ambivalente Konstrukte in der Sprache, deren Bedeutung<br />
sich dem menschlichen Leser erst im Kontext erschließt <strong>und</strong> mitunter aktuelles<br />
Hintergr<strong>und</strong>wissen verlangt. Dies ähnelt in gewisser Weise ” Insider-Witzen“,<br />
über die nur Personen mit gleichem Hintergr<strong>und</strong>wissen lachen können. Nichts-<br />
destotrotz gibt es durchaus Bestrebungen, Texte linguistisch zu erfassen <strong>und</strong><br />
Satzkonstrukte zu erkennen. (An dieser Stelle schneidet sich das Fachgebiet In-<br />
formation Retrieval mit dem der Computerlinguistik. Es lohnt sich somit, inter-<br />
disziplinär vorzugehen.) Trotz aller Bemühungen <strong>und</strong> auch trotz aller Erfolge in<br />
dem Bereich hat es noch immer wenig damit zu tun, dass der Computer nun den<br />
Text ” verstehen“ könnte, so wie es ein Mensch täte. Das Ziel der Bemühungen<br />
ist es stattdessen, den Text so zu strukturieren, dass er sich für eine automa-<br />
tisch durchgeführte Auswertung eignet. Dabei werden Informationen aus dem
53 5.1. INFORMATION RETRIEVAL<br />
Text extrahiert <strong>und</strong> in formelle Strukturen überführt. Diese Methoden bauen<br />
eine Statistik über die verwendeten Begriffe auf <strong>und</strong> schlussfolgern auf der Basis<br />
dieser Statistik. Sie sind damit zum Beispiel in der Lage, eine Wahrscheinlich-<br />
keit zu errechnen, nach der das ausgewertete Dokument mit einer Suchanfrage<br />
(oder anderen Dokumenten im F<strong>und</strong>us) korreliert.<br />
Der zweite Teilbereich, die Informationsstruktur, basiert auf dem Gedanken,<br />
dass die unterschiedlichen Dokumente in irgend einer Form in Beziehung zu-<br />
einander stehen. Zum Beispiel können sie thematische Ähnlichkeiten aufweisen,<br />
vom selben Autor verfasst worden sein oder eine andere Eigenschaft aufweisen,<br />
die sie in Beziehung stellt. Selbst die Erkenntnis, dass zwei Dokumente keinerlei<br />
Ähnlichkeiten aufweisen, stellt eine Art von Beziehung dar.<br />
Zu guter Letzt ist eine Metrik von Nöten, die es ermöglicht, dass verschie-<br />
dene Methoden bewertet <strong>und</strong> verglichen werden. Es stellt sich die Frage, auf<br />
welcher Basis die Effektivität <strong>eines</strong> IR Systems gemessen werden kann. Diese<br />
Frage konnte bereits 1966 von Cleverdon (siehe auch [CMK66]) beantwortet<br />
werden, der einen Katalog von mehreren Kriterien aufgestellt hatte, mit deren<br />
Hilfe Informationssysteme bewertet werden können. Van Rijsbergen erklärt,<br />
dass von den ermittelten Kriterien nur precision <strong>und</strong> recall für die Effektivität<br />
von IR Systemen ausreichende Aussagekraft besitzen, weshalb sich die IR com-<br />
munity auf diese beiden beschränkt. Precision gibt das Verhältnis zwischen der<br />
Anzahl von tatsächlich relevanten Dokumenten <strong>und</strong> der Anzahl der insgesamt<br />
ermittelten Dokumente an. Eine Precision von 1 hieße demnach, dass alle im<br />
Rahmen einer Suchanfrage ermittelten Dokumente tatsächlich relevant wären,<br />
während ein Wert von 0 dafür stünde, dass kein Dokument der Ergebnismenge<br />
relevant wäre. Das zweite Kriterium, Recall, beschreibt das Verhältnis zwischen<br />
der Anzahl relevanter Dokumente in der Ergebnismenge <strong>und</strong> der Anzahl rele-<br />
vanter Dokumente im System insgesamt. Ein Wert von 0 hieße demnach, dass<br />
von allen relevanten Dokumenten k<strong>eines</strong> ausgegeben worden wäre <strong>und</strong> ein Wert<br />
von 1 hieße, dass sich im Gegenteil sämtliche relevanten Dokumente in der<br />
Ausgabemenge befänden.<br />
Abbildung 5.1 zeigt, welche Kombinationen aus Ergebnissen <strong>und</strong> dessen Re-<br />
levanz möglich sind. Diese einzelnen Mengen zueinander in Beziehung gesetzt<br />
ergibt eine ganze Reihe mehr oder weniger sinnvolle Maßzahlen, von denen Pre-<br />
cision <strong>und</strong> Recall jeweils eine ist. Als Beispiel sei an dieser Stelle noch zusätzlich<br />
der Wert mit der Bezeichnung Fallout definiert, der die gegensätzliche Bedeu-<br />
tung hat, wie Recall. Er ist 1, wenn alle existierenden unrelevanten Dokumente
We now leave the speculations about relevance and return to the promised detailed discussion of<br />
the measurement of effectiveness. Relevance will once again be assumed to have its broader<br />
meaning of 'aboutness' and 'appropriateness', that is, a document is ultimately determined to be<br />
relevant or not by the user. Effectiveness is purely a measure of the ability of the system to<br />
satisfy the user in terms of the relevance of documents retrieved. Initially, I shall concentrate on<br />
measuring effectiveness by precision and recall; a similar analysis could be given for any pair of<br />
equivalent measures.<br />
5.2. KNOWLEDGE DISCOVERY IN DATABASES 54<br />
It is helpful at this point to introduce the famous 'contingency' table which is not really a<br />
contingency table at all.<br />
RETRIEVED<br />
NOT RETRIEVED<br />
RELEVANT NON-RELEVANT<br />
A ∩ B<br />
A ∩ B<br />
A ∩ B<br />
A ∩ B<br />
A A N<br />
(N = number of documents in the system)<br />
Abbildung 5.1.: Tabellarische Darstellung aus [VR79]<br />
zurückgeliefert wurden; <strong>und</strong> er ist entsprechend 0, wenn kein unrelevantes Do-<br />
kument zurückgeliefert wurde.<br />
precision =<br />
recall =<br />
fallout =<br />
|A ∩ B|<br />
|B|<br />
|A ∩ B|<br />
|A|<br />
� �<br />
� �<br />
�A ∩ B�<br />
� �<br />
� �<br />
�A�<br />
In aktuellen Forschungsbeiträgen werden die beiden Werte häufig kombiniert<br />
<strong>und</strong> in eine Bewertungsfunktion überführt, die den beiden Werten jeweils eigene<br />
Prioritäten gibt, wie es beispielsweise bei einem gewichteten Mittel der beiden<br />
Werte der Fall ist. Wie die Gewichtungen verteilt werden, hängt stark von der<br />
Domäne, sprich den vorhandenen Dokumenten <strong>und</strong> deren Struktur, ab.<br />
Diese Arbeit beleuchtet nun hauptsächlich den zweiten Teilbereich des IR,<br />
der sich um die Beziehungen der Dokumente untereinander kümmert.<br />
5.2. Knowledge Discovery in Databases<br />
Bei KDD, wie von Fayyad et. al [FPSS96] vorgeschlagen, handelt es sich um<br />
einen Prozess, der darauf abzielt, Muster in Datenmengen zu erkennen. Die Mo-<br />
tivation dazu ergibt sich daraus, dass diese Datenmengen immer größer werden,<br />
<strong>und</strong> dass auch Dank des Internets <strong>und</strong> der globalen Vernetzung der Zugriff auf<br />
diese Daten sehr wichtig geworden ist. In der Zeit des Dotcom-Booms hieß es,<br />
nicht der Große fresse den Kleinen, sondern der Schnelle den Langsamen. Dies<br />
ließe sich ohne weiteres auch so umdichten, dass der Wissende den Unwissen-<br />
den frisst. Korrekte <strong>und</strong> aktuelle Informationen zu besitzen ist also ein Wettbe-<br />
B<br />
B
55 5.2. KNOWLEDGE DISCOVERY IN DATABASES<br />
Abbildung 5.2.: KDD Prozess von Fayyad et al.<br />
werbsvorteil. Leider genügt es dazu nicht, haufenweise Rohdaten zu sammeln,<br />
denn am Ende muss ein Mensch diese Daten interpretieren können.<br />
Große Mengen Rohdaten zu interpretieren <strong>und</strong> dort befindliche Zusammenhänge<br />
zu erkennen, dies ist das Ziel von KDD Prozessen. Im Unterschied zum Informa-<br />
tion Retrieval suchen KDD Prozesse explizit nach Wissen <strong>und</strong> nicht nur nach<br />
Dokumenten, die (mit einer bestimmten oder unbestimmten Wahrscheinlich-<br />
keit) das Wissen enthalten.<br />
Abbildung 5.2 (Seite 55) zeigt den Prozess. Der für den Prozess wichtig-<br />
ste Schritt ist das Data Mining. Die Schritte vorher haben zur Aufgabe, die<br />
Daten zu selektieren <strong>und</strong> vorzubereiten, damit die Data Mining Algorithmen<br />
überhaupt eine passende Eingabe bekommen, <strong>und</strong> danach steht nur noch der<br />
Schritt Evaluation.<br />
Der erste Schritt Selektion soll darstellen, dass es zunächst notwendig ist,<br />
aus den Datenmengen eine Auswahl zu treffen, die die zu analysierenden Daten<br />
enthält. Welche Daten in die Analyse mit einbezogen werden kann durchaus<br />
starke Auswirkungen auf die Ergebnisse haben. Wenn wichtige Informationen<br />
ignoriert werden, sind die Ergebnisse möglicherweise nicht repräsentativ, <strong>und</strong><br />
wenn zu viele unwichtige Daten mit einbezogen werden, können die Ergebnisse<br />
verfälscht werden <strong>und</strong> Aspekte anzeigen, die für den Anwendungsfall uninteres-<br />
sant sind. Zudem steigt häufig die Laufzeit der Algorithmen je nach Größe der<br />
Eingabemenge, so dass schon aus rein technischen Gründen eine Eingrenzung<br />
der Eingabe sinnvoll wird.<br />
Danach kann es nötig sein, die Daten im Schritt Preprocessing zu säubern
5.3. REPRÄSENTATION VON DOKUMENTEN 56<br />
oder zu konsolidieren. Beispielsweise gehört dazu, unvollständige oder fehlerhaf-<br />
te Daten zu erkennen <strong>und</strong> zu entfernen. Auch können an dieser Stelle Summen<br />
gebildet werden, falls diese für den Anwendungsfall anstatt der eigentlichen<br />
Daten interessant sind. In jedem Falle wird hier bereits auf simple Weise ein<br />
bereinigtes Modell der Daten erzeugt, das der nächste Schritt als Eingabe ver-<br />
wendet.<br />
Dabei handelt es sich um den Schritt Transformation. Er ist notwendig, weil<br />
der Algorithmus üblicherweise Daten in einem speziellen, für den Ablauf des<br />
Algorithmus optimalen, Format benötigt, in das die vorhandenen Daten erst<br />
gewandelt werden müssen.<br />
Der Algorithmus selber wird durch den darauf folgenden Schritt Data Mi-<br />
ning dargestellt. Hier konzentriert sich das Forschungsinteresse, da die ande-<br />
ren Schritte mit wohlbekanntem Programmierhandwerk ohne größere Probleme<br />
durchgeführt werden können. Die Probleme in den obigen Schritten sind eher<br />
organisatorischer Natur (es müssen gut ausgebildete Mitarbeiter existieren, die<br />
nicht nur technisches sondern auch fachliches Know-how besitzen). Daten um-<br />
zuwandeln ist beispielweise eine inzwischen sehr gut beherrschte Anforderung<br />
an Computersysteme. Data Mining Algorithmen dagegen sind häufig mit kom-<br />
plexer Mathematik ausgestattet <strong>und</strong> lassen sich in das vergleichsweise neue<br />
Forschungsfeld der Künstlichen Intelligenz (KI) einordnen (kommerziell erfolg-<br />
reiche Anwendungen ca. seit Mitte der 1980er Jahre 1 ).<br />
Der letzte Schritt nach dem Data Mining steht für die Interpretation bzw.<br />
Auswertung der Ausgaben des Algorithmus. Diese kann beispielsweise darin<br />
münden, dass die Ausgaben als neue, stärker abstrahierte Daten in der Daten-<br />
bank abgelegt werden, die später in anderen Prozessen Anwendung finden. Es<br />
könnte jedoch ebenso eine Art Report erzeugt <strong>und</strong> präsentiert werden.<br />
5.3. Repräsentation von Dokumenten<br />
Auf dem Weg zu Dokumenten-Clustern stehen wir zunächst der Frage ge-<br />
genüber, auf welche Weise die vorliegenden Dokumente im System repräsen-<br />
tiert werden, so dass die inhaltlichen Aspekte vergleichbar werden. Hier gibt<br />
es einige Ansätze, die von sog. Word-Bags bis hin zu linguistischen Systemen<br />
reichen. In den meisten Fällen wird für die Repräsentation der Dokumente das<br />
Vektorraummodell (Vector Space Model, VSM) verwendet. Dies basiert letzt-<br />
1 Seite 24 in [RN95]
57 5.3. REPRÄSENTATION VON DOKUMENTEN<br />
endlich auf der Idee, die Dokumente jeweils als multidimensionale Vektoren<br />
darzustellen.<br />
Definition: Eine Dimension des Vektors wird Feature genannt. Denn jede<br />
Dimension beschreibt eine Eigenschaft des Dokuments auf eine zunächst nicht<br />
näher spezifizierte Weise.<br />
Definition: Im Vektorraummodell repräsentiert der Vektor v ein Dokument<br />
d aus der Menge aller Dokumente D auf der Basis von n ausgewählten Features<br />
wie folgt:<br />
5.3.1. Einordnung in Situation des ISL<br />
v(d) = {f1, . . . , fn} , d ∈ D (5.1)<br />
� �� �<br />
nfeatures<br />
Im Falle des ISL existiert eine manuell angelegte Klassifikation auf der Basis<br />
<strong>eines</strong> multihierarchischen Thesaurus sowie einer groben Einteilung in Sachge-<br />
biete. Dokumente werden klassifiziert, indem sie eine Kombination an Begriffen<br />
aus dem Thesaurus sowie ein Sachgebiet zugewiesen bekommen. Eine Klasse<br />
definiert sich also durch die Kombination aus Begriffen sowie aus dem Sachge-<br />
biet.<br />
Um dies formell darzustellen sei nun K die Menge aller Klassen, S die Menge<br />
aller Sachgebiete, D die Menge aller Dokumente <strong>und</strong> T die Menge aller Terme.<br />
Dann lässt sich eine Funktion desc definieren, die beschreibt, welche Begriffe<br />
aus T einem Dokument D zugeordnet werden. Und mit der Hilfe von desc lässt<br />
sich die Menge K wie folgt definieren.<br />
P(T ) = {X|X ⊆ T }<br />
desc : D → P(T )<br />
K = {(X, s)|s ∈ S, X ∈ P(T ) ∧ ∃d ∈ D, desc(d) = X} (5.2)<br />
Die folgenden Abschnitte verwenden die hier eingeführten Bezeichnungen S,<br />
T, D <strong>und</strong> K für die jeweilige dargestellte Problematik.<br />
5.3.2. Das Dokument als Wortsack (aka word-bag)<br />
Ein Text besteht aus der Menge seiner Worte. Auch wenn diese Erkenntnis<br />
zunächst äußerst naiv klingt, so ist selbst daraus eine einfachste Repräsenta-<br />
tion <strong>eines</strong> Dokuments möglich. In diesem einfachsten Falle ist jedem Wort ein
5.3. REPRÄSENTATION VON DOKUMENTEN 58<br />
Feature zugeordnet. Ein Feature beschreibt dann für ” sein“ Wort die Häufigkeit<br />
dessen Auftretens im Text. Dies folgt dem Gedanken, dass Begriffe, die häufig<br />
vorkommen, eher dem Inhalt des Textes entsprechen als solche, die nur selten<br />
oder gar nie im Text vorkommen. Dieser Logik folgend entsprechen Features,<br />
die für ein bestimmtes Dokument mit einem hohen Wert ausgestattet sind,<br />
besonders gut dem Inhalt dieses Dokuments.<br />
Luhn [Luh58] fügt dieser Idee noch eine weitere hinzu. Und zwar schlägt<br />
er vor, zusätzlich noch die relative Position der Wörter im Satz zu bewerten<br />
<strong>und</strong> somit eine kombinierte Bewertung von Begriffen zu verwenden. Das ließe<br />
sich zum Beispiel so umsetzen, dass sich benachbarte Begriffe gegenseitig Boni<br />
geben. Dadurch erhöht sich die Bewertung <strong>eines</strong> Begriffs allein dadurch, dass<br />
es neben einem stark bewerteten Begriff steht.<br />
In der Praxis werden vor der statistischen Verarbeitung die betrachteten Wor-<br />
te mindestens auf ihre Wortstämme reduziert (genannt ” Stemming“), um die<br />
vielen Variationen, die aufgr<strong>und</strong> von Konjugationen oder unterschiedlichen Aus-<br />
prägungen in Einzahl <strong>und</strong> Mehrzahl entstehen, auf einen gemeinsamen Begriff<br />
zurückzuführen. Zudem werden sogenannte Stoppwörter aus der Menge der<br />
betrachteten Begriffe entfernt, die mit ausreichender Sicherheit keine bedeu-<br />
tungstragende Funktion haben. Dabei handelt es sich hauptsächlich um Artikel<br />
oder Pronomen sowie einige Verben. Zum Beispiel: ” ist“, ” ein“, ” für“, ” der“<br />
<strong>und</strong> weitere ähnliche Worte.<br />
Spätestens dann hat man eine einfache aber wirksame Repräsentation des<br />
Dokumenten-Inhalts geschaffen. Dennoch ist sie natürlich weit davon entfernt,<br />
perfekt zu sein. Insbesondere erschließt sich der Sinn <strong>eines</strong> Wortes mitunter<br />
erst aus seinem Kontext. Den Kontext nicht zu berücksichtigen, kann beson-<br />
ders bei kurzen Texten zu falschen Schlüssen führen. Auch das Stemming ist<br />
nicht in allen Fällen perfekt. Mitunter reduziert es Begriffe auf die gleichen<br />
Wortstämme, die eine völlig andere Bedeutung haben. Auch andersherum wird<br />
ein Schuh daraus: es reduziert Begriffe auf unterschiedliche Wortstämme, ob-<br />
wohl sie völlig identische Bedeutungen haben. Weiterhin werden derart ermit-<br />
telte Feature-Vektoren sehr groß <strong>und</strong> spannen einen riesigen Raum mit sehr<br />
vielen Dimensionen auf. Dadurch werden Berechnungen im Vektorraum sehr<br />
rechenintensiv. Folglich entsteht der Wunsch, die Dimensionalität der Vektoren<br />
zu verringern <strong>und</strong> gleichzeitig die inhaltliche Übereinstimmung der Vektoren<br />
mit der Zielsetzung des Textes zu erhöhen.
59 5.3. REPRÄSENTATION VON DOKUMENTEN<br />
5.3.3. Methoden für die Beschränkung auf wesentliche Features<br />
Aufgr<strong>und</strong> der genannten Beschränkungen ist es sinnvoll, nach Wegen zu suchen,<br />
die Dimensionalität der Feature Vektoren einzuschränken. Yang <strong>und</strong> Pedersen<br />
[YP97] sind eben dieser Frage nachgegangen <strong>und</strong> haben verschiedene Methoden<br />
auf ihre Wirksamkeit hin überprüft. Die Gewinner der Studie sollen an dieser<br />
Stelle kurz vorgestellt werden.<br />
Inverse Document Frequency<br />
Dieser Ansatz wurde bereits in [SJ72] beschrieben, wo er als ” Collection Fre-<br />
quency Weight“ bezeichnet wurde. Die Annahme dahinter ist, dass offenbar<br />
solche Begriffe für die Klassifikation besonders nützlich sind, die in einzelnen<br />
Dokumenten besonders häufig vorkommen, gleichzeitig aber in der gesamten<br />
Sammlung nur selten auftauchen. Solche Begriffe trennen einzelne Dokumente<br />
sehr gut von anderen <strong>und</strong> sind daher von Vorteil.<br />
idfi = log N<br />
ni<br />
(5.3)<br />
Rechnerisch kann IDF recht einfach als das Verhältnis zwischen der Zahl<br />
an Dokumenten insgesamt (N) <strong>und</strong> der Anzahl jener Dokumente, in denen der<br />
jeweilige Begriff bzw. das Feature i vorkommt (ni) angegeben werden, so dass<br />
letztendlich für jedes einzelne Feature ein entsprechender IDF-Wert existiert.<br />
Um entscheiden zu können, welche Features in den meisten Dokumenten vor-<br />
kommen <strong>und</strong> welche nicht, wäre ein Schwellenwert denkbar, der die allgemeine<br />
Umschreibung ” die meisten“ expliziert. Features, deren IDF nun über diesem<br />
Schwellenwert läge, könnten aus der Betrachtung ausgeschlossen werden.<br />
Häufiger dürfte IDF jedoch als Mittel zur Gewichtung der ermittelten Häufig-<br />
keiten angewandt werden. In dieser Funktion nennt man es auch TF-IDF, kurz<br />
für Term Frequency and Inverse Document Frequency. Dabei multipliziert man<br />
einfach die ermittelten Häufigkeiten (TF) <strong>eines</strong> Terms i in einem Dokument j<br />
mit der passenden IDF für den Term i.<br />
Information Gain<br />
Information Gain (IG) beschreibt den Informationsgewinn, der durch ein Fea-<br />
ture in Bezug auf die Klassifikation erbracht wird. Um den Gewinn ausdrücken<br />
zu können, benötigt man zunächst ein Maß für den Informationsgehalt. Ein
5.3. REPRÄSENTATION VON DOKUMENTEN 60<br />
Begriff, dessen Auftreten oder Nichtauftreten in Dokumenten eine hohe Aus-<br />
sagekraft über die Klassifikation hat, der hat einen hohen Informationsgehalt.<br />
Dies lässt sich wie folgt verallgemeinern <strong>und</strong> formeller ausdrücken.<br />
Der Informationsgehalt wurde ursprünglich von Shannon [Sha48] in Bezug<br />
auf die Kapazität von Übertragungskanälen betrachtet. Mit Kapazität ist hier<br />
die Information, die pro Zeiteinheit maximal durch den Übertragungskanal ge-<br />
leitet werden kann, gemeint. Seine Motivation war, formell mathematisch zu<br />
beschreiben, wie sich Rauschen auf die Korrektheit übertragener Daten aus-<br />
wirkt <strong>und</strong> welche Möglichkeiten es gibt, diesem Effekt entgegenzuwirken. Mit<br />
Rauschen sind Fehler gemeint, die bei der Übertragung passieren können.<br />
Rauschen hat die Eigenschaft, gleichmäßig verteilt nach einer bestimmten<br />
Wahrscheinlichkeit (Signal-to-Noise-Ratio oder kurz SNR) aufzutreten. Die The-<br />
se von Shannon bezüglich der Information ist nun, dass es bei einer bestimmten<br />
SNR eine ganz bestimmte Menge an Information gibt, die so durch den teilweise<br />
verrauschten Kanal geleitet werden kann, dass am anderen Ende ein rauschfrei-<br />
es fehlerloses Ergebnis steht. Diese Menge an Information ist eine theoretische<br />
Größe, die auch durch schlaueste Kodierungsverfahren nicht überschritten wer-<br />
den kann.<br />
Es gibt nun eine feste maximale Kapazität, die auf unverrauschte Weise er-<br />
reicht wird <strong>und</strong> die systemimmanent <strong>und</strong> gegeben ist. Wie sich diese Kapazität<br />
durch Rauschen erniedrigt, wird durch Shannons Maß für Information (auch<br />
Entropie genannt) mathematisch errechnet. Dies hat er in einer Formel wie<br />
folgt ausgedrückt 2 :<br />
H = −<br />
n�<br />
pi log pi<br />
i=1<br />
(5.4)<br />
Auf Information Retrieval übertragen lässt es sich derart, dass hierbei nach<br />
Wegen gesucht wird, so wenige Features (entsprechend Bits) wie möglich zu<br />
verwenden, um so viel Information wie möglich auszudrücken, um damit eine<br />
möglichst exakte Klassifizierung zu erreichen. Der Trick dabei ist, Rauschen (in<br />
Bezug auf die Klassifikation falsche Begriffe, Fehler, oder gleichmäßig verteilte<br />
Begriffe) herauszurechnen.<br />
Nun lässt sich die von Shannon ermittelte Formel für den Informationsge-<br />
halt verwenden, um den Informationsgewinn auszudrücken, den ein bestimmter<br />
Term t (bzw. ein bestimmtes Feature) für die Klassifikation des Dokuments<br />
2 Beweis siehe [Sha48], Seite 28ff
61 5.3. REPRÄSENTATION VON DOKUMENTEN<br />
einbringt. Und zwar wie folgt:<br />
G(t) =<br />
m�<br />
− P (ci) log P (ci)<br />
i=1<br />
m�<br />
+P (t) P (ci|t) log P (ci|t)<br />
i=1<br />
m�<br />
+P (t) P (ci|t) log P (ci|t)<br />
i=1<br />
(5.5)<br />
In dieser Formel bezeichnet c eine Klasse aus der Menge aller Klassen (i=1. . . m),<br />
denen jeweils ein Dokument entweder zugeordnet wird oder nicht. Dabei ist P(c)<br />
die Wahrscheinlichkeit oder Frequenz, mit der ein Dokument dieser Klasse c zu-<br />
geordnet wird. P(t) ist die Frequenz des Auftretens des Terms/Features t <strong>und</strong><br />
P(c|t) entsprechend die Frequenz, mit der Dokumente bei vorliegendem Feature<br />
t der Klasse c zugeordnet werden.<br />
Mutual Information<br />
Mutual Information (MI) beschreibt die statistische Korrelation, in diesem Fall<br />
zwischen Features <strong>und</strong> Klassen, <strong>und</strong> ist folgendermaßen definiert.<br />
I(t, c) = log<br />
P (t ∧ c)<br />
P (t) × P (c)<br />
(5.6)<br />
Gleichung 5.6 geht auf das Maß des gemeinsamen Informationsgehaltes von<br />
Kullback-Leibler [KL51] zurück, das in Gleichung 5.7 dargestellt ist. Es geht von<br />
zwei unterschiedlichen Wahrscheinlichkeitsverteilungen über eine gemeinsame<br />
Wahrscheinlichkeitsvariable x aus, die in Beziehung gesetzt werden.<br />
Besondere Eigenschaften: Dieses Maß ist nicht symmetrisch, so dass es eher<br />
als Inklusion verstanden werden kann. Zudem ist zu beachten, dass es unendlich<br />
wird, wenn die Wahrscheinlichkeit q für x 0 ist, während dies bei p für x nicht<br />
der Fall ist.<br />
IKL(p, q) = log p(x)<br />
q(x)<br />
(5.7)<br />
Die Formel, die im allgemeinen unter der Bezeichnung Kullback-Leibler-<br />
Divergenz bekannt ist <strong>und</strong> die auch im folgenden die Gr<strong>und</strong>lage bilden soll, ent-<br />
spricht dem erwarteten gemeinsamen Informationsgehalt. Der Erwartungswert<br />
beschreibt den durchschnittlichen Wert einer Wahrscheinlichkeitsverteilung <strong>und</strong>
5.3. REPRÄSENTATION VON DOKUMENTEN 62<br />
erweitert die Formel zur KL-Divergenz über eine Wahrscheinlichkeitsvariable x<br />
mit n Ausprägungen wie folgt:<br />
�<br />
KL(p|q) = EpIKL(p, q) = Ep log p(x)<br />
�<br />
=<br />
q(x)<br />
n�<br />
i<br />
pi log pi<br />
qi<br />
(5.8)<br />
Auf unsere Domäne der Klassifizierung von Termen bezogen wird aus 5.8 <strong>und</strong><br />
5.6 die Gleichung 5.9 für Terme t.<br />
m�<br />
P (t ∧ ci)<br />
MI(t) = P (t ∧ ci) log<br />
P (t) × P (ci)<br />
i=1<br />
(5.9)<br />
Dabei beschreibt MI, wie viel Information von P(t) in P(c) <strong>und</strong> von P(c)<br />
in P(t) enthalten ist. Sind die Wahrscheinlichkeitsverteilungen P(c) <strong>und</strong> P(t)<br />
unabhängig voneinander, hat MI den Wert 0, ansonsten ist er positiv. Je höher<br />
er ist, um so mehr Information ist beiden Verteilungen gemein.<br />
Es existiert eine Abschätzung der obigen Formel auf der Basis der Anzahlen<br />
A, B <strong>und</strong> C, sowie der Gesamtanzahl an Dokumenten N. Die Anzahlen be-<br />
gründen sich durch Korrelationen von t <strong>und</strong> c wie folgt: t mit c (A), t ohne c<br />
(B) sowie c ohne t (C) <strong>und</strong> münden in der Abschätzung:<br />
Anwendung<br />
I(t, c) ≈ log<br />
A × N<br />
(A + C) × (A + B)<br />
(5.10)<br />
Bei den drei erläuterten Maßen kommt nur DF ohne eine Lernphase aus. So-<br />
wohl IG als auch MI basieren auf Wahrscheinlichkeitsverteilungen, die zunächst<br />
unbekannt sind. Sie setzen voraus, dass eine Klassifikation existiert, der Do-<br />
kumente zugeordnet sind <strong>und</strong> dass eine Menge an Termkandidaten existiert.<br />
Nur wenn das der Fall ist, können die nötigen Wahrscheinlichkeitsverteilungen<br />
P(c) oder P(t) überhaupt ermittelt werden. Wenn die zugr<strong>und</strong>eliegenden Daten<br />
nicht ausreichen, ist eine Trainingsmenge ausreichender Größe mit repräsentati-<br />
ven Dokumenten anzulegen, damit die nötigen Wahrscheinlichkeitsverteilungen<br />
ermittelt werden können.<br />
5.3.4. Latent Semantic Indexing<br />
LSI [DFL + 88] arbeitet ebenso wie die meisten anderen bekannten Verfahren<br />
mit dem Vektorraummodell <strong>und</strong> repräsentiert ein Dokument somit als Feature<br />
Vektor.
63 5.3. REPRÄSENTATION VON DOKUMENTEN<br />
LSI extrahiert mit Hilfe von Singular Value Decomposition (SVD) [WRR03]<br />
aus einer Dokument-Term-Matrix n orthogonale Faktoren, aus denen die ur-<br />
sprüngliche Matrix durch Linearkombination annähernd wiedergewonnen wer-<br />
den kann. Bei diesem Vorgehen werden Detailinformationen ignoriert, es wird<br />
aber davon ausgegangen, dass die den Dokumenten ” latent“ innewohnende<br />
Struktur erhalten bleibt. Die prinzipbedingte Unschärfe sei hilfreich, da auch<br />
Suchanfragen oft unscharf seien.<br />
Die Idee basiert darauf, dass sich jede i*j Matrix X (i Terme, j Dokumente)<br />
mittels SVD in die Matrizen T, S <strong>und</strong> D zerlegen lässt (siehe Gleichung 5.11), so<br />
dass T <strong>und</strong> D zueinander orthogonale Matrizen darstellen. S ist eine diagnonale<br />
Matrix aus einzelnen Werten (singular values) <strong>und</strong> verbindet T <strong>und</strong> D so, dass<br />
sich mittels Linearkombination die Ursprungsmatrix X ergibt. Im Verlaufe des<br />
Algorithmus wird die S-Matrix jedoch künstlich verkleinert. Und zwar werden<br />
alle kleinsten Werte entfernt, so dass nur noch k (etwa 50-300) Werte übrig blei-<br />
ben. Die nun entstandene Matrix-Struktur (i*k)(k*k)(k*j) approximiert dann<br />
den ursprünglichen Vektorraum. Der gewählte Wert von k ist natürlich kritisch.<br />
Wird er zu klein gewählt, werden wichtige Features entfernt, wird er zu groß<br />
gewählt, wächst die Dimensionalität <strong>und</strong> somit die Rechendauer eventuell zu<br />
stark.<br />
⎛<br />
⎞<br />
x11<br />
⎜<br />
⎝<br />
.<br />
· · ·<br />
. ..<br />
x1j<br />
.<br />
⎟<br />
⎠ =<br />
xi1<br />
⎛<br />
· · · xij<br />
⎞ ⎛<br />
t11<br />
⎜<br />
⎝<br />
.<br />
· · ·<br />
. ..<br />
t1m<br />
.<br />
⎟ ⎜<br />
⎟ ⎜<br />
⎟ ⎜<br />
⎠ ⎝<br />
s11<br />
ti1 · · · tim<br />
X = T SD<br />
. ..<br />
smm<br />
⎞ ⎛<br />
⎟ ⎜<br />
⎟ ⎜<br />
⎟ ⎜<br />
⎠ ⎝<br />
d11 · · · d1j<br />
.<br />
. .. .<br />
dm1 · · · dmj<br />
⎞<br />
⎟<br />
⎠ (5.11)<br />
Anfragen an das System werden mit LSI als Pseudo-Dokument-Vektor mo-<br />
delliert. In dieser Form existiert ein Abstandsmaß von diesem Dokument zu an-<br />
deren (echten) Dokumenten im Raum, auf dessen Basis das System die Antwort<br />
formulieren kann. Weiterhin können Begriffe, die sich in der Nähe befinden, in<br />
dem Zusammenhang als Suchbegriffe vorgeschlagen werden. Ergab die Suche zu<br />
wenige Ergebnisse, ist es auch möglich, die Suchanfrage ohne Rückfrage durch<br />
ähnliche Terme zu erweitern <strong>und</strong> so automatisch die Suche breiter gestalten.
5.3. REPRÄSENTATION VON DOKUMENTEN 64<br />
Das Verfahren sei erfolgreicher als übliche Feature Selection Verfahren, müsse<br />
aber hinter ” echten“ Clustering Ansätzen zurückstehen, inbesondere hinter dem<br />
im Paper von Baker vorgeschlagenen Verfahren Distributional Clustering. [BM98]<br />
Andere halten die Kombination <strong>eines</strong> Clustering Mechanismus mit LSI für<br />
sinnvoll. U.a. sind die Autoren des Papers [XLG03] dieser Ansicht: ” [. . . ] conse-<br />
quently, traditional data clustering methods such as K-means have to be applied<br />
in the eigenvector spaces to find the final document clusters“(Seite 2). Diesem<br />
Rat möchte sich der Autor dieser Arbeit gerne anschließen. Auch LINGO (siehe<br />
Abschnitt 3.4.2 (Seite 30) <strong>und</strong> [Osi03] setzt sein Clustering Verfahren auf LSI<br />
auf.<br />
Wie kann nun die Berechnung <strong>eines</strong> Abstandsmaßes im SVD-Raum vonstat-<br />
ten gehen? Um diese Frage zu beantworten, muss man sich zunächst klar ma-<br />
chen, dass verschiedene Fragestellungen existieren, die zu verschiedenen Ver-<br />
gleichen <strong>und</strong> damit zu verschiedenen Berechnungen führen. Zum Beispiel kann<br />
man fragen, wie stark ein bestimmter Term mit einem bestimmten Dokument<br />
zusammenhängt, oder man kann den Zusammenhang zweier Dokumente unter-<br />
einander prüfen. Im Folgenden seien alle relevanten Fragestellungen mit ihren<br />
Lösungen dargestellt (ebenfalls entnommen aus [DFL + 88]).<br />
Term - Dokument<br />
Dies ist an sich die simpelste Frage, die man stellen kann, denn die Antwort ist in<br />
der zugehörigen Zelle der Ursprungsmatrix X enthalten. Wenn man nun jedoch<br />
davon ausgeht, dass X nicht (mehr) existiert, sondern nur die drei Matrizen T,<br />
S <strong>und</strong> D zur Verfügung stehen, dann muss der Wert durch eine entsprechende<br />
Linearkombination der Matrizen errechnet werden. In Gleichung 5.12 sei dies<br />
in einer Formel dargestellt. Hier wird der Zusammenhang zwischen dem Term<br />
i <strong>und</strong> dem Dokument j errechnet.<br />
Term - Term<br />
|S|−1<br />
�<br />
k=0<br />
tikskkdkj<br />
(5.12)<br />
Der Vergleich von Term zu Term findet im Zeilen-Raum statt. Jede Zeile von T<br />
entspricht bekanntlich einem Vektor <strong>eines</strong> spezifischen Terms. Für den Vergleich<br />
wird das Skalarprodukt bemüht, daher sieht die einfache Rechnung so aus wie<br />
in Gleichung 5.13 dargestellt. Dabei sei angemerkt, dass die Zeilen i <strong>und</strong> j der
65 5.3. REPRÄSENTATION VON DOKUMENTEN<br />
Term-Matrix T jeweils mit ihren Skalaren multipliziert werden, wodurch die<br />
Achsen im Raum ihrer allgemeinen Bedeutung entsprechend verzerrt werden<br />
(dies begründet den Faktor s 2 in der Formel).<br />
Dokument - Dokument<br />
|S|−1<br />
�<br />
k=0<br />
tiks 2 kktjk<br />
(5.13)<br />
Bei diesem Vergleich gilt das selbe wie bei dem Vergleich zweier Terme, nur<br />
dass in diesem Falle statt der Zeilen der Term-Matrix T die Spalten i <strong>und</strong> j der<br />
Dokument-Matrix D’ verwendet werden. Siehe Gleichung 5.14.<br />
Dokument - Pseudo-Dokument<br />
|S|−1<br />
�<br />
k=0<br />
dkis 2 kkdkj<br />
(5.14)<br />
Nun gibt es Situationen, in denen man auf Daten trifft, die in der Matrix X<br />
nicht verzeichnet waren. Falls man zum Beispiel auf ein neues unbekanntes<br />
Dokument mit dessen Vektor vneu trifft <strong>und</strong> dieses mit den bestehenden Termen<br />
oder Dokumenten vergleichen möchte, so muss man den Vektor vneu zunächst<br />
in den Raum der Matrix D hinein-transformieren.<br />
Auf diese Weise können zudem SVD Strukturen iterativ erweitert werden,<br />
ohne dass bei jeder Änderung des Datenbestandes die Matrizen komplett neu<br />
berechnet werden müssten. Es genügt in diesem Falle, das neue Dokument in<br />
den Vektor-Raum hineinzuprojizieren <strong>und</strong> den neuen Vektor zu der bestehenden<br />
Dokument-Matrix D hinzufügen. Falls das Dokument neue Terme beinhaltet,<br />
sind diese ebenfalls auf ähnliche Weise hinein zu projizieren <strong>und</strong> zu der Ma-<br />
trix T hinzuzufügen. Der Vorgang ist jedoch nicht ganz problemlos, denn bei<br />
jeder Änderung der D- oder T-Matrix ohne eine entsprechende Anpassung der<br />
Diagonalmatrix S stimmt die Zuordnung ein kl<strong>eines</strong> Stück weniger.<br />
Aber gehen wir zurück zur Berechnung des Projektions-Vorganges. Man neh-<br />
me an, es gäbe nun den besagten Dokument-Vektor vneu, welcher auf die selbe<br />
Weise konstruiert wurde wie jene der bestehenden Dokumente in der Origi-<br />
nalmatrix X. Er kennt somit für jeden einzelnen Term dessen gewichtete Fre-<br />
quenz oder Auftretenshäufigkeit. Gleichung 5.15 zeigt, wie sich eine passen-<br />
de Repräsentation dneu für den unbekannten Dokument-Vektor vneu errechnen<br />
lässt.<br />
−→ d neu = −→ v T neuT S −1<br />
(5.15)
5.4. CLUSTERING 66<br />
5.4. Clustering<br />
Nehmen wir nun an, dass mit den obigen Techniken Feature-Vektoren für die<br />
Dokumente so angelegt wurden, dass nur wirklich aussagekräftige Begriffe für<br />
die weitere Verarbeitung verwendet werden. Dann sollen hier Algorithmen vor-<br />
gestellt werden, die diese Vektoren zu Clustern zusammenfassen. Allgemein las-<br />
sen sich Clustering Algorithmen darin unterscheiden, dass einige eine hierarchi-<br />
sche Cluster-Struktur erzeugen, andere jedoch nicht (zum Beispiel K-means).<br />
Zudem gibt es unterschiedliche Freiheitsgrade bei der Definition dieser Struktur.<br />
Die einfacheren Algorithmen verlangen mindestens eine vorab festgelegte Zahl<br />
von Clustern. Andere verwenden Thresholds als Maß, um während des Ablaufs<br />
Entscheidungen darüber zu treffen, ob neue Cluster hinzugefügt werden müssen<br />
<strong>und</strong> somit die Anzahl zu erhöhen ist oder nicht.<br />
Angenommen, es existiert eine Reihe von Klassen, denen Dokumente zuge-<br />
ordnet werden können. Dann folgt es dem intuitiven Verständnis einer Klassifi-<br />
kation, dass ein Dokument durchaus mehreren Klassen zugeordnet werden kann.<br />
Beispielsweise kann ein Dokument sowohl der Klasse Güterverkehr als auch der<br />
Klasse Containertransport zugeordnet sein, da es inhaltlich beide Themen an-<br />
spricht. Um noch einen Schritt weiterzugehen, ist es ebenso wahrscheinlich, dass<br />
das Dokument beide Themen zu einem jeweils unterschiedlichen Grad betrach-<br />
tet.<br />
Modell-basierte Clustering Ansätze gehen nun davon aus, dass Modelle exi-<br />
stieren, die die Zuordnung <strong>eines</strong> Dokuments zu einer Klasse beschreiben. Es sind<br />
verschiedene Modelle denkbar, am verbreitetsten scheinen jedoch Gaußsche Ver-<br />
teilungen 3 zu sein. Diese nennt man auch Normalverteilungen. Charakteristisch<br />
für sie ist, dass sie durch eine Reihe voneinander unabhängiger Einflüsse ent-<br />
stehen. Beispielsweise sind Messfehler in der Regel normalverteilt. Eine Reihe<br />
gleichartiger Messungen wird jedes Mal einen ähnlichen Wert ergeben, der je-<br />
doch vom wahren Wert wegen zufälliger Messungenauigkeiten abweicht, wobei<br />
jede Messung von der vorherigen unabhängig ist. Die durchschnittliche Ab-<br />
weichung wird Varianz genannt. Eine Normalverteilung wird somit durch ihre<br />
Parameter µ (Erwartungswert) <strong>und</strong> σ (Varianz) näher definiert <strong>und</strong> auch als<br />
N(µ,σ)-Verteilung bezeichnet. Zudem ist zu jeder Normalverteilung eine soge-<br />
nannte Wahrscheinlichkeitsdichte ϕ wie folgt definiert.<br />
3 Seite 393 in [DP88]
67 5.4. CLUSTERING<br />
ϕ(x; µ; σ) = 1 (x−µ)2<br />
−<br />
√ e 2σ<br />
2πσ 2 , −∞ < x < ∞ (5.16)<br />
Jedem Cluster entspricht eine solche Verteilung <strong>und</strong> eine dazugehörige Dich-<br />
te. Da ein Dokument zu unterschiedlichen Graden unterschiedlichen Clustern<br />
angehören kann, muss für jedes Dokument eine Mischfunktion der unterschied-<br />
lichen Wahrscheinlichkeitsdichten existieren, die die verschiedenen Cluster mit<br />
unterschiedlicher Gewichtung w zusammengeführt werden. Diese ist, wie von<br />
Bradley et al.[BFR99] erläutert, für ein Dokument x über alle k Cluster mit<br />
Index h wie folgt definiert.<br />
p(x) =<br />
k�<br />
wh · fh(x|µh, σh) (5.17)<br />
h=1<br />
Die Gewichte w ergeben aufsummiert 1 <strong>und</strong> entsprechen dem Anteil an Do-<br />
kumenten, die in Cluster h gehören. Die Funktion f dagegen ist die Wahrschein-<br />
lichkeitsdichtefunktion für die Verteilung beliebiger Dokumente x in Bezug auf<br />
den Cluster h, parametrisiert mit der nötigen Erwartung <strong>und</strong> Varianz.<br />
Der Algorithmus schätzt diese Formel ab, indem er ihre Parameter (beste-<br />
hend aus den Gewichten, Erwartungen <strong>und</strong> Varianzen) mit Hilfe des Maximum<br />
Likelihood Verfahrens derart wählt, dass die resultierende Likelihood-Funktion<br />
maximal ist. Die Likelihood-Funktion wird über den kompletten Dokumenten-<br />
Raum aufgestellt <strong>und</strong> stellt die Qualität ( ” how well the corresponding mixture<br />
model fits the data“ 4 ) der geschätzten Parameter dar. Hier die Formel, bei der<br />
Φ für die Menge aller Parameter steht:<br />
L(Φ) = �<br />
�<br />
k�<br />
�<br />
log wh · fh(x|µh, σh)<br />
x∈D<br />
h=1<br />
(5.18)<br />
Der Ablauf besteht im Wesentlichen aus zwei Schritten[LGXZ02] [BFR99],<br />
die sich bis zum Erreichen <strong>eines</strong> Stop-Kriteriums abwechseln <strong>und</strong> somit iterativ<br />
die Lösung optimieren. Der erste Schritt wird häufig als E-Schritt (Gleichung<br />
5.19) bezeichnet, während der Zweite (Gleichung 5.20) dann den M-Schritt dar-<br />
stellt. Während des ersten Schrittes werden die Wahrscheinlichkeiten berechnet,<br />
nach der sich Dokument x in Cluster h aufhält. Der zweite Schritt optimiert die<br />
Parameter mit Hilfe der Ergebnisse des ersten Schritts.<br />
4 Seite 7 in [BFR99]
5.4. CLUSTERING 68<br />
w j<br />
h<br />
w j+1<br />
h = �<br />
µ j+1<br />
h<br />
Σ j+1<br />
h<br />
=<br />
=<br />
wj<br />
h (x) = �<br />
x∈D<br />
�<br />
x∈D<br />
�<br />
x∈D<br />
�<br />
x∈D<br />
i<br />
w j<br />
i<br />
w j<br />
h (x)<br />
w j<br />
h (x) · x<br />
w j<br />
h (x)<br />
j<br />
· fh(x|µ h , Σj<br />
h )<br />
· fi(x|µ j<br />
i<br />
, Σj<br />
i<br />
w j<br />
h (x)(x − µj+1<br />
h )(x − µ j+1<br />
h ) T<br />
�<br />
x∈D<br />
w j<br />
h (x)<br />
), h = 1, . . ., k (5.19)<br />
, h = 1, . . ., k (5.20)<br />
Die Gleichungen Gleichung 5.19 <strong>und</strong> Gleichung 5.20 verlangen nach etwas<br />
zusätzlicher Erläuterung. Insbesondere wird hier mit dem großen griechischen<br />
Zeichen Sigma ein vorher unbenutztes Symbol verwendet. Es ersetzt das bis-<br />
lang verwendete Symbol σ für die Varianz <strong>und</strong> signalisiert, dass hier dazu über-<br />
gegangen wurde, mehrdimensionale Gaußsche Wahrscheinlichkeitsverteilungen<br />
zu verwenden. Dies ist notwendig, da die zu clusternden Objekte komplexe<br />
Textkörper beinhalten, die kaum auf eindimensionale Art <strong>und</strong> Weise repräsen-<br />
tiert werden können. Daher gehen wir zu mehrdimensionalen Verteilungen über.<br />
Der Erwartungswert µ ist analog mehrdimensional geworden <strong>und</strong> liegt nun in<br />
Form <strong>eines</strong> Vektors vor. Die durch das Sigma dargestellte Varianz ist in der<br />
mehrdimensionalen Form eine Kovarianzmatrix. Sonst ändert sich nichts.<br />
Das Stopp-Kriterium wird von der oben erwähnten Likelihood Funktion ge-<br />
liefert, sobald diese an einem lokalen Maximum konvergiert.
Teil III.<br />
Umsetzung
6. Statisches Modell<br />
Das System war von Beginn an eine sehr experimentelle Plattform, so dass zu<br />
keinem Zeitpunkt eine ausführlich geplante Architektur vorlag. Während der<br />
Forschung daran wurden ständig an verschiedenen Aspekten mehrere Alterna-<br />
tiven ausprobiert, so dass sich inzwischen einige Design-Aspekte als sinnvoll<br />
herauskristallisiert haben, die im Folgenden besprochen werden sollen.<br />
6.1. Data Objects<br />
Die Anwendung verwendet durchgehend objektorientierte Prinzipien <strong>und</strong> macht<br />
auch für das Datenmodell keine Ausnahme. Da die Daten in einer relationalen<br />
Datenbank abgelegt werden sollen, ist ein relationales Modell trotz gr<strong>und</strong>sätz-<br />
lich objektorientierter Ausrichtung unausweichlich. Somit gibt es hier zwei Mo-<br />
delle, ein relationales (S. 72) <strong>und</strong> ein objektorientiertes (S. 73 <strong>und</strong> S. 74).<br />
Es gibt hier für jedes Objekt der objektorientierten Sicht eine Tabelle in der<br />
relationalen Sicht, so dass die Umsetzung vom Einen auf das Andere sehr un-<br />
kompliziert ist. Dank Hibernate lässt sich diese Umsetzung deklarativ bewerk-<br />
stelligen. Das bedeutet, dass für jedes Objekt eine Mapping Datei im XML<br />
Format vorliegt, die von Hibernate ausgewertet wird. Es gibt keinen Code in<br />
der Anwendung, der irgendwie Bezug auf die relationale Natur der Datenbasis<br />
nimmt, die Umsetzung erledigt Hibernate völlig transparent.<br />
6.2. Data Access Objects<br />
Ein wichtiges Ziel bei der Überlegung, auf welche Weise man seinen Datenzu-<br />
griff strukturieren möchte, ist die möglichst weitgehende Unabhängigkeit der<br />
Zugriffsmechanismen von anderen Teilen der Anwendung. Der Gr<strong>und</strong> leuchtet<br />
sofort ein: da es so viele verschiedene Möglichkeiten des Zugriffs auf Daten gibt<br />
(JDBC, Hibernate, XML, . . . ), die natürlich auch unterschiedliche Vor- <strong>und</strong><br />
Nachteile besitzen, die sich möglicherweise erst in einer späteren Phase der Ent-<br />
wicklung bemerkbar machen, möchte man in der Lage sein, die Technik später
6.2. DATA ACCESS OBJECTS 72<br />
DOC_CLUSTER_CT<br />
SubSet<br />
DESC_RELATIONS<br />
*pfK «Column» docid: INT<br />
*pfK «Column» clusterid: INT<br />
«Column» probability: float(0)<br />
*PK «column» setid: INT<br />
«column» SETNAME: VARCHAR(80)<br />
*pfK «column» parentDescId: INT<br />
*pfK «column» parentDescLang: VARCHAR(2)<br />
*pfK «column» childDescLang: VARCHAR(2)<br />
*pfK «column» childDescId: INT<br />
+ «PK» PK_SubSet(INT)<br />
+PK_SubSet 1<br />
+ «FK» FK_CLUSTER(INT)<br />
+ «FK» FK_DOCUMENTS(INT)<br />
+ «PK» PK_DOC_CLUSTER_CT(INT, INT)<br />
+FK_DOCUMENTS<br />
0..*<br />
+ «FK» FK_DESC_CHILD(INT, VARCHAR)<br />
+ «PK» PK_DESC_RELATIONS(INT, VARCHAR, VARCHAR, INT)<br />
+ «FK» FK_DESC_PARENT(INT, VARCHAR)<br />
0..*<br />
+FK_CLUSTER<br />
(subsetid = setid)<br />
«FK»<br />
(docid = docid)<br />
«FK»<br />
+FK_DESC_PARENT<br />
0..*<br />
+FK_DESC_CHILD<br />
0..*<br />
(clusterid = clusterid)<br />
«FK»<br />
+FK_DOCUMENTS_SubSet 0..*<br />
DOCUMENTS<br />
+PK_DOCUMENTS<br />
1<br />
+PK_DOC_CLUSTER<br />
1<br />
DOC_CLUSTER<br />
*PK «Column» clusterid: INT<br />
«Column» clustername: varchar(128)<br />
«column» idx: INT<br />
«Column» indexterms: varchar(2048)<br />
FK «column» collectionid: INT<br />
*PK «Column» docid: INT<br />
«Column» abstract: varchar(40000)<br />
«Column» abstract_lang: varchar(2)<br />
«Column» title: varchar(256)<br />
«column» idx: INT<br />
FK «column» collectionid: INT<br />
FK «column» subsetid: INT<br />
(parentDescId = descid<br />
parentDescLang = desclang) «FK»<br />
(childDescId = descid<br />
childDescLang = desclang) «FK»<br />
1<br />
+PK_DESCRIPTORS<br />
1<br />
+PK_DESCRIPTORS<br />
DESCRIPTORS<br />
+ «FK» FK_DOCUMENTS_Collection(INT)<br />
+ «FK» FK_DOCUMENTS_SubSet(INT)<br />
+ «PK» PK_DOCUMENTS(INT)<br />
+ «FK» FK_CLUSTER_Collection(INT)<br />
+ «PK» PK_DOC_CLUSTER(INT)<br />
+FK_CLUSTER_Collection<br />
+FK_DOCUMENTS_Collection 0..*<br />
0..*<br />
(collectionid = collectionid)<br />
(collectionid = collectionid)<br />
«FK»<br />
«FK»<br />
+PK_Collection 1 +PK_Collection 1<br />
Collection<br />
*PK «Column» descid: INT<br />
*PK «Column» desclang: VARCHAR(2)<br />
«Column» descname: varchar(64)<br />
1<br />
+PK_DOCUMENTS<br />
+ «PK» PK_DESCRIPTORS(INT, VARCHAR)<br />
+PK_DESCRIPTORS 1<br />
(docid = docid)<br />
«FK»<br />
*PK «column» collectionid: INT<br />
«column» COLLNAME: VARCHAR(80)<br />
(docid = descid<br />
descid = desclang) «FK»<br />
+ «PK» PK_Collection(INT)<br />
1<br />
+PK_Collection<br />
1<br />
+PK_Collection<br />
+FK_DESCRIPTORS +FK_DOCUMENTS<br />
0..*<br />
0..*<br />
DOC_DESC_CT<br />
(collectionid = collectionid)<br />
«FK»<br />
(collectionid = collectionid)<br />
«FK»<br />
0..*<br />
+FK_TERM_SCHEMA_Collection<br />
*pfK «Column» docid: INT<br />
*pfK «Column» descid: INT<br />
*PK «Column» desclang: VARCHAR(2)<br />
Abbildung 6.1.: Datenobjekte, relationale Sicht<br />
0..*<br />
+FK_STOPWORDS_Collection<br />
TERM_SCHEMA<br />
STOPWORDS<br />
+ «FK» FK_DOCUMENTS(INT)<br />
+ «PK» PK_DOC_DESC_CT(INT, INT, VARCHAR)<br />
+ «FK» FK_DESCRIPTORS(INT, INT)<br />
*PK «Column» word: VARCHAR(32)<br />
*PK «Column» lang: VARCHAR(2)<br />
FK «column» collectionid: INT<br />
*PK «column» termid: INT<br />
«column» idx: INT<br />
«column» termPart1: varchar(50)<br />
«column» termPart2: varchar(50)<br />
«column» termPart3: varchar(50)<br />
FK «column» collectionid: INT<br />
+ «FK» FK_STOPWORDS_Collection(INT)<br />
+ «PK» PK_STOPWORDS(VARCHAR, VARCHAR)<br />
+ «FK» FK_TERM_SCHEMA_Collection(INT)<br />
+ «PK» PK_TERM_SCHEMA(INT)
73 6.2. DATA ACCESS OBJECTS<br />
Serializable<br />
db::AssignmentId<br />
- serialVersionUID: long = 3545796602355855672L<br />
# docid: int<br />
# clusterid: int<br />
# «property get» getClusterid() : int<br />
# «property set» setClusterid(int) : void<br />
# «property get» getDocid() : int<br />
# «property set» setDocid(int) : void<br />
+ equals(Object) : boolean<br />
+ hashCode() : int<br />
+ createFrom(Cluster, Document) : AssignmentId<br />
-id<br />
db::DocumentsSubSet<br />
- name: String<br />
- m_documents: Set<br />
- setid: int<br />
+ DocumentsSubSet()<br />
+ «property get» getName() : String<br />
+ «property set» setName(String) : void<br />
- «property get» getSetid() : int<br />
- «property set» setSetid(int) : void<br />
+ «property get» getDocuments() : Set<br />
+ «property set» setDocuments(Set) : void<br />
-subset<br />
db::Document<br />
- DEFAULT_LANGUAGE: String = Locale.ENGLISH....<br />
- abstractLang: String = DEFAULT_LANGUAGE<br />
- abstractText: String<br />
- assignments: List<br />
- descriptors: List<br />
- docid: int<br />
- idx: Integer<br />
- title: String<br />
- subset: DocumentsSubSet<br />
- collection: DocumentCollection<br />
+ descriptorIterator() : Iterator<br />
+ «property get» getAbstractLang() : String<br />
+ «property get» getAbstractText() : String<br />
+ «property get» getAssignments() : List<br />
+ «property get» getDescriptors() : List<br />
+ «property get» getDocid() : int<br />
+ «property get» getTitle() : String<br />
+ «property set» setAbstractLang(String) : void<br />
+ «property set» setAbstractText(String) : void<br />
+ «property set» setAssignments(List) : void<br />
+ «property set» setDescriptors(List) : void<br />
+ «property set» setDocid(int) : void<br />
+ «property set» setTitle(String) : void<br />
+ «property get» getIdx() : Integer<br />
+ «property set» setIdx(Integer) : void<br />
+ «property get» getCollection() : DocumentCollection<br />
+ «property set» setCollection(DocumentCollection) : void<br />
+ «property get» getSubset() : DocumentsSubSet<br />
+ «property set» setSubset(DocumentsSubSet) : void<br />
-document<br />
db::Assignment<br />
- cluster: Cluster<br />
- document: Document<br />
- id: AssignmentId<br />
- probability: double<br />
+ Assignment()<br />
+ «property get» getCluster() : Cluster<br />
+ «property get» getDocument() : Document<br />
# «property get» getId() : AssignmentId<br />
+ «property get» getProbability() : double<br />
+ «property set» setCluster(Cluster) : void<br />
+ «property set» setDocument(Document) : void<br />
+ «property set» setId(AssignmentId) : void<br />
+ «property set» setProbability(double) : void<br />
Abbildung 6.2.: Datenobjekte, objektorientierte Sicht, Teil 1
6.2. DATA ACCESS OBJECTS 74<br />
-collection<br />
-cluster<br />
db::DocumentCollection<br />
- name: String<br />
- documents: Set<br />
- terms: Set<br />
- stopwords: Set<br />
- clusters: Set<br />
- collectionid: int<br />
+ DocumentCollection()<br />
+ «property get» getName() : String<br />
+ «property set» setName(String) : void<br />
+ «property get» getDocuments() : Set<br />
+ «property set» setDocuments(Set) : void<br />
- «property get» getCollectionid() : int<br />
- «property set» setCollectionid(int) : void<br />
+ «property get» getStopwords() : Set<br />
+ «property set» setStopwords(Set) : void<br />
+ «property get» getTerms() : Set<br />
+ «property set» setTerms(Set) : void<br />
+ «property get» getClusters() : Set<br />
+ «property set» setClusters(Set) : void<br />
-collection<br />
db::Cluster<br />
- clusterid: int<br />
- assignments: List<br />
- collection: DocumentCollection<br />
- name: String<br />
- idx: int = -1<br />
- indexterms: String<br />
+ «property get» getIndexterms() : String<br />
+ «property set» setIndexterms(String) : void<br />
+ «property get» getIdx() : int<br />
+ «property set» setIdx(int) : void<br />
+ «property get» getClusterid() : int<br />
+ «property get» getName() : String<br />
+ «property set» setClusterid(int) : void<br />
+ «property set» setName(String) : void<br />
+ «property get» getAssignments() : List<br />
+ «property set» setAssignments(List) : void<br />
+ «property get» getCollection() : DocumentCollection<br />
+ «property set» setCollection(DocumentCollection) : void<br />
Serializable<br />
db::DescriptorId<br />
- serialVersionUID: long = 3257571689536435251L<br />
# id: int = -1<br />
- DEFAULT_LANGUAGE: String = Locale.ENGLISH....<br />
# lang: String = DEFAULT_LANGUAGE<br />
#id<br />
# «property get» getId() : int<br />
# «property set» setId(int) : void<br />
# «property get» getLang() : String<br />
# «property set» setLang(String) : void<br />
+ equals(Object) : boolean<br />
+ hashCode() : int<br />
-collection<br />
-collection<br />
db::Term<br />
- idx: int<br />
- termid: int<br />
- collection: DocumentCollection<br />
+ Term()<br />
+ Term(com.danielstephan.seacluster.Term)<br />
+ «property get» getIdx() : int<br />
+ «property get» getTermid() : int<br />
+ getTermPart1() : String<br />
+ getTermPart2() : String<br />
+ getTermPart3() : String<br />
+ «property set» setIdx(int) : void<br />
+ «property set» setTermid(int) : void<br />
+ setTermPart1(String) : void<br />
+ setTermPart2(String) : void<br />
+ setTermPart3(String) : void<br />
+ «property get» getCollection() : DocumentCollection<br />
+ «property set» setCollection(DocumentCollection) : void<br />
Serializable<br />
db::Stopword<br />
- serialVersionUID: long = 3256719593660822325L<br />
- DEFAULT_LANGUAGE: String = Locale.ENGLISH....<br />
- id: Id = new Id()<br />
- collection: DocumentCollection<br />
- eq(String, String) : boolean<br />
- hc(Object) : int<br />
+ getLang() : String<br />
+ getWord() : String<br />
+ setLang(String) : void<br />
+ setWord(String) : void<br />
+ «property get» getId() : Id<br />
+ «property set» setId(Id) : void<br />
+ «property get» getCollection() : DocumentCollection<br />
+ «property set» setCollection(DocumentCollection) : void<br />
db::Descriptor<br />
# documents: List<br />
# id: DescriptorId = new DescriptorId()<br />
# word: String<br />
- parents: List<br />
- children: List<br />
+ «property set» setId(DescriptorId) : void<br />
+ «property get» getDocuments() : List<br />
+ getLang() : String<br />
+ «property get» getWord() : String<br />
+ «property set» setDocuments(List) : void<br />
+ setLang(String) : void<br />
+ «property set» setWord(String) : void<br />
# «property get» getId() : DescriptorId<br />
+ «property get» getChildren() : List<br />
+ «property set» setChildren(List) : void<br />
+ «property get» getParents() : List<br />
+ «property set» setParents(List) : void<br />
Abbildung 6.3.: Datenobjekte, objektorientierte Sicht, Teil 2<br />
Term
75 6.3. DATA ACCESS COMMANDS<br />
ändern zu können, ohne dass die gesamte Anwendung davon beeinträchtigt<br />
wird. Daher führt man eine Abstraktionsschicht ein, die den Datenzugriff von<br />
anderen Teilen der Anwendung abschottet.<br />
Diese Schicht besteht hier aus einer Reihe von Zugriffsobjekten. Jedes dieser<br />
Objekte bietet die Methoden an, die die Anwendung im Rahmen ihres Ablaufs<br />
benötigt, <strong>und</strong> implementiert sie - spezifisch für eine ausgewählte Technologie.<br />
Die hier verwendete Technologie wird durch Hibernate bereitgestellt (ein Open-<br />
Source Projekt, es handelt sich dabei um einen objektrelationalen Mapper, kurz<br />
ORM, der eine objektorientierte Schnittstelle für relationale Datenbanken bie-<br />
tet).<br />
Dies sei am Bespiel des DAOs für das Cluster Objekt dargestellt (in S. 76<br />
<strong>und</strong> S. 77 zu sehen). Zentral für die Abstraktion ist die Trennung der Imple-<br />
mentation (ClusterDaoImpl) von seiner Spezifikation (ClusterDao, erbend von<br />
Dao). Die Anwendung arbeitet ausschließlich mit der Schnittstelle ClusterDao.<br />
Die verwendete Implementation (in diesem Falle eben ClusterDaoImpl) lässt<br />
sich jedoch deklarativ (mit Hilfe einer XML-Datei für die Konfiguration des<br />
Systems) jederzeit ändern, ohne dass Anwendungscode davon betroffen ist. Das<br />
Basis-Interface Dao wurde eingeführt, nachdem klar wurde, dass viele Methoden<br />
in jedem DAO nötig werden würden. So sind diese Gemeinsamkeiten auch in der<br />
Struktur dokumentiert. Aus den selben Gründen wurde das Objekt DaoSupport<br />
eingeführt, das die Gemeinsamkeiten der verschiedenen DAOs für Hibernate im-<br />
plementiert.<br />
6.3. Data Access Commands<br />
Während der Entwicklung hat sich herauskristallisiert, dass in den prinzipiell<br />
eher groben Zugriffsmethoden der DAOs zu oft ähnliche Abläufe kodiert waren<br />
<strong>und</strong> die Wiederverwendung dieser Abläufe damit eher schlecht war. Das führte<br />
dazu, dass Code in einem DAO weitgehend optimiert wurde, weil die Notwen-<br />
digkeit dort akut war, während in einem anderen DAO ganz ähnlicher Code<br />
noch völlig unoptimiert vorlag. Die Code-Qualität war damit an einigen Stellen<br />
unnötigerweise niedriger als an anderen.<br />
Somit suchte der Autor nach Möglichkeiten, den Code ” mobiler“ <strong>und</strong> die<br />
Struktur der Datenzugriffsschicht feingranularer zu gestalten. Die Lösung er-<br />
schien in Form des Command Patterns (siehe dazu auch [GHJV96]). Eigentlich<br />
ist das Command Pattern für die Entwicklung von Benutzerschnittstellen ent-
6.3. DATA ACCESS COMMANDS 76<br />
Dao<br />
«interface»<br />
db::AssignmentDao<br />
+ batchAssignment(List, List, List) : void<br />
DaoSupport<br />
db::AssignmentDaoImpl<br />
- serialVersionUID: long = 3257001077261023284L<br />
+ getEntityName() : String<br />
+ getEntityClass() : Class<br />
+ batchAssignment(List, List, List) : void<br />
Dao<br />
«interface»<br />
db::ClusterDao<br />
+ getOrCreateById(int) : Cluster<br />
Abbildung 6.4.: DAO Struktur, Teil 1<br />
db::ClusterDaoImpl<br />
DaoSupport
77 6.3. DATA ACCESS COMMANDS<br />
Dao<br />
rface»<br />
riptorDao<br />
ocument, String) : List<br />
r) : List<br />
Descriptor) : void<br />
er><br />
dao::DaoSupport<br />
- log: Log = LogFactory.getL...<br />
- _entityName: String<br />
T<br />
HibernateDaoSupport<br />
Serializable<br />
Dao<br />
+ getObjects() : List<br />
+ getFirstObject() : T<br />
+ execute(Command) : S<br />
+ getObjectsForCriteria(List) : List<br />
+ iterate(IteratingCallback) : void<br />
+ getById(Serializable) : T<br />
+ getEntityClass() : Class<br />
+ getEntityName() : String<br />
+ getIdentityName() : String<br />
+ iterator() : Iterator<br />
+ removeById(Serializable) : void<br />
+ store(T) : T<br />
+ objectsByExample(T) : List<br />
+ remove(T) : void<br />
+ removeAll() : void<br />
+ deleteByExample(T) : void<br />
+ getQueryWithName(String) : Query<br />
+ getQuery() : Query<br />
+ addCriterion(Criterion) : Query<br />
+ create(Dao) : Query<br />
+ getDao() : Dao<br />
DaoSupport<br />
db::DescriptorDaoImpl<br />
- serialVersionUID: long = 3616727175584233017L<br />
+ findDescriptorsForDocument(Document, String) : List<br />
+ findSameDescriptors(Descriptor) : List<br />
+ generateId() : int<br />
+ setAsBeingEqualTo(Descriptor, Descriptor) : void<br />
+ store(Descriptor) : Descriptor<br />
+ getEntityName() : String<br />
+ getEntityClass() : Class<br />
Iterable<br />
Query<br />
«interface»<br />
dao::Dao<br />
+ iterator() : Iterator<br />
+ getObjects() : List<br />
+ objectsByExample(T) : List<br />
+ iterate(IteratingCallback) : void<br />
+ getById(Serializable) : T<br />
+ store(T) : T<br />
+ remove(T) : void<br />
+ removeAll() : void<br />
+ deleteByExample(T) : void<br />
+ getObjectsForCriteria(List) : List<br />
+ getQueryWithName(String) : Query<br />
+ getQuery() : Query<br />
+ execute(Command) : S<br />
«realize»<br />
Dao
6.3. DATA ACCESS COMMANDS 78<br />
Document><br />
Integer><br />
Dao<br />
«interface»<br />
db::StopwordDao<br />
+ getWordsAsStrings() : List<br />
+ getAll() : List<br />
+ getWordsAsStringsForLanguage(String) : List<br />
+ getAllForLanguage(String) : List<br />
+ store(Stopword) : Stopword<br />
+ iterator() : Iterator<br />
DaoSupport<br />
db::StopwordDaoImpl<br />
- serialVersionUID: long = 3544389201736120633L<br />
+ getWordsAsStrings() : List<br />
+ getAll() : List<br />
+ getAllForLanguage(String) : List<br />
+ getWordsAsStringsForLanguage(String) : List<br />
+ iterator() : Iterator<br />
+ store(Stopword) : Stopword<br />
+ getEntityClass() : Class<br />
voraussetzen.<br />
Dao<br />
«interface»<br />
db::TermDao<br />
+ getSchema() : TermSchema<br />
+ store(TermSchema) : void<br />
DaoSupport<br />
db::TermDaoImpl<br />
- serialVersionUID: long = 3258415036430235700L<br />
+ getSchema() : TermSchema<br />
+ store(TermSchema) : void<br />
+ getEntityName() : String<br />
+ getEntityClass() : Class<br />
Abbildung 6.6.: DAO Struktur, Teil 3<br />
Der Vorgang ist in Abbildung 6.9 etwas vereinfacht dargestellt. Man muss<br />
bei der Betrachtung des Diagramms bedenken, dass die Methode execute()<br />
jeweils von den Commands spezifisch implementiert wird, während die Methode<br />
execute(Command) in AbstractCommand implementiert ist. Der Gr<strong>und</strong> für die<br />
Trennung von execute() <strong>und</strong> execute(Command) liegt darin, dass Hibernate<br />
ein Session Objekt benötigt, welches vor der Transaktion geöffnet <strong>und</strong> nach der<br />
Transaktion geschlossen werden muss, <strong>und</strong> dass kein einzelner Command dieses<br />
tun soll, die Session somit transparent im Hintergr<strong>und</strong> verwaltet werden muss.<br />
Dennoch sollen die Commands eventuell Zugriff auf die Session haben (daher die<br />
Methode getSession() in AbstractCommand). Will man nun vermeiden, dass<br />
die Commands sich gegenseitig irgendwie die Sessions weiterreichen, muss dies<br />
im Hintergr<strong>und</strong> passieren - in diesem Falle geschieht dies in execute(Command)<br />
transparent.<br />
Der aufmerksame Leser wird beim Studium des Diagrammes in Abbildung
79 6.3. DATA ACCESS COMMANDS<br />
FetchTemplate<br />
commands::FetchFromCollection<br />
- collectionName: String<br />
- config: ProcessConfiguration<br />
+ «property get» getConfig() : ProcessConfiguration<br />
+ «property set» setConfig(ProcessConfiguration) : void<br />
+ fetch() : void<br />
+ «property get» getCollectionName() : String<br />
+ «property set» setCollectionName(String) : void<br />
FetchTemplate<br />
commands::FetchWithIdFile<br />
- idFileName: String<br />
- log: Log = LogFactory.getL...<br />
+ FetchWithIdFile()<br />
+ fetch() : void<br />
- readIdsFromFile(String) : Set<br />
+ «property get» getIdFileName() : String<br />
+ «property set» setIdFileName(String) : void<br />
FetchTemplate<br />
commands::FetchRandomTemplate<br />
- log: Log = LogFactory.getL...<br />
- collectionName: String<br />
- config: ProcessConfiguration<br />
- max: int = Integer.MAX_VALUE<br />
+ FetchRandomTemplate()<br />
+ fetch() : void<br />
+ «property get» getCollectionName() : String<br />
+ «property set» setCollectionName(String) : void<br />
+ «property get» getConfig() : ProcessConfiguration<br />
+ «property set» setConfig(ProcessConfiguration) : void<br />
+ getMaxResults() : int<br />
+ setMaxResults(int) : void<br />
dao::FetchTemplate<br />
~ queue: BlockingQueue<br />
- filters: List<br />
T<br />
AbstractCommand<br />
+ put(T) : boolean<br />
+ put(T, long, TimeUnit) : boolean<br />
+ put(List) : boolean<br />
+ execute() : T<br />
+ fetch(FetchTemplate) : void<br />
+ fetch() : void<br />
~ setBlockingQueue(BlockingQueue) : void<br />
+ add(Filter) : void<br />
- applyFilters(T) : void<br />
Abbildung 6.7.: Data Access Commands, Teil 1<br />
FetchTemplate<br />
commands::QueryForListOfIds<br />
- log: Log = LogFactory.getL...<br />
- idList: List<br />
- batchSize: int = 30<br />
+ QueryForListOfIds(List)<br />
+ QueryForListOfIds(String)<br />
+ QueryForListOfIds()<br />
+ fetch() : void<br />
- readIdsFromFile(String) : List<br />
+ «property get» getIdList() : List<br />
+ «property set» setIdList(List) : void
6.3. DATA ACCESS COMMANDS 80<br />
AbstractCommand<br />
commands::FetchAssignment<br />
~ d: Document<br />
~ c: Cluster<br />
+ FetchAssignment(Document, Cluster)<br />
+ execute() : Assignment<br />
~getAssignmentCommand<br />
«interface»<br />
command::Command<br />
+ execute() : T<br />
«realize»<br />
T<br />
command::<br />
AbstractCommand<br />
- session: Session<br />
AbstractCommand<br />
commands::AssignDocumentToCluster<br />
- log: Log = LogFactory.getL...<br />
~ d: Document<br />
~ c: Cluster<br />
~ p: double<br />
~ getAssignmentCommand: FetchAssignment<br />
+ getFetchAssignmentCommand() : FetchAssignment<br />
+ setFetchAssignmentCommand(FetchAssignment) : void<br />
+ AssignDocumentToCluster(Document, Cluster, double)<br />
+ execute() : Object<br />
Command<br />
HibernateCallback<br />
+ «property get» getSession() : Session<br />
+ execute(Command) : S<br />
+ doInHibernate(Session) : Object<br />
AbstractCommand<br />
command::DeleteAllObjects<br />
- log: Log = LogFactory.getL...<br />
~ entityClass: Class<br />
+ DeleteAllObjects(Class)<br />
+ execute() : Integer<br />
AbstractCommand<br />
S<br />
AbstractCommand<br />
command::Fetch<br />
- criteria: List<br />
- persistentClass: Class<br />
+ Fetch(Class)<br />
+ Fetch(List, Class)<br />
+ execute() : List<br />
+ addCriterion(Criterion) : Fetch<br />
S<br />
command::FetchAll<br />
- persistantClass: Class<br />
+ FetchAll(Class)<br />
+ execute() : List<br />
AbstractCommand<br />
commands::BatchAssign<br />
- documentIds: List<br />
- clusterIds: List<br />
- probabilities: List<br />
+ BatchAssign(List, List, List)<br />
+ execute() : Object<br />
T<br />
command::FetchObject<br />
- criteria: List<br />
- persistentClass: Class<br />
AbstractCommand<br />
+ FetchObject(List, Class)<br />
+ FetchObject(Class)<br />
+ execute() : T<br />
+ addCriterion(Criterion) : FetchObject<br />
AbstractCommand<br />
commands::StoreTermSchema<br />
~ schema: TermSchema<br />
+ StoreTermSchema(TermSchema)<br />
+ execute() : Integer<br />
AbstractCommand<br />
commands::Initialize<br />
- log: Log = LogFactory.getL...<br />
~ obj: Object<br />
~ prop: String<br />
~ pd: PropertyDescriptor<br />
+ Initialize(Object, String)<br />
+ execute() : Object<br />
Abbildung 6.8.: Data Access Commands, Teil 2
81 6.3. DATA ACCESS COMMANDS<br />
Clustering Logic<br />
«interface»<br />
:Dao<br />
BatchAssign(documentIds,clusterIds,probabilities)<br />
execute(batchAssign)<br />
execute()<br />
batchAssign<br />
:BatchAssign<br />
AssignDocumentToCluster(document,cluster,probability)<br />
assignDoc<br />
:AssignDocumentToCluster<br />
S:= execute(assignDoc)<br />
execute() FetchAssignment(document,cluster)<br />
fetchAssignment<br />
:FetchAssignment<br />
assignment:= execute(fetchAssignment)<br />
execute()<br />
assignment<br />
Abbildung 6.9.: Beispiel: BatchAssign Command<br />
6.8 festgestellt haben, dass AbstractCommand zusätzlich HibernateCallback<br />
implementiert. Zur Erklärung: Dies ist die Schnittstelle zum Springframework,<br />
<strong>und</strong> beinhaltet die Methode doInHibernate(Session). Das Springframework<br />
<strong>und</strong> seine Schnittstellen sind in [JH04] beschrieben. Das besprochene Session<br />
Management wird zusammen mit der Transaktionsverwaltung vom Springfra-<br />
mework transparent durchgeführt.
6.3. DATA ACCESS COMMANDS 82
7. Dynamisches Modell<br />
Ohne im Klassenmodell zu stark in die Tiefe zu gehen, soll hier der Ablauf dar-<br />
gelegt werden. Ziel dieses Kapitels soll es sein zu zeigen, welche Komponenten<br />
welche Algorithmen ausführen. Die nun folgenden Abschnitte sind entsprechend<br />
des Ablaufes vom Rohdokument bis hin zum fertig benannten Cluster sortiert.<br />
7.1. Stoppworte finden<br />
Zunächst wird die Textmenge einmal auf der Suche nach Stoppworten durch-<br />
laufen. Dabei werden alle Begriffe so gezählt, dass ein Begriff pro Dokument<br />
nur einmal gezählt wird. Denn es ist hier vor allem interessant, in wievielen<br />
Dokumenten die Begriffe jeweils vorkommen. Wie oft sie in den Dokumenten<br />
vorkommen ist nicht relevant.<br />
Abbildung 7.1 zeigt die erzielte Wortverteilung im Reuters Korpus. Die Be-<br />
griffe wurden nach ihrer Häufigkeit sortiert, so dass eine Kurve sichtbar wird.<br />
Man kann sehen, dass die allergrößte Menge an Begriffen sehr selten vorkommt.<br />
Man kann auch sehen, dass ein paar wenige Begriffe extrem häufig vorkommen,<br />
in anderen Worten sieht man die Kurve nach langer Flaute sehr stark hoch-<br />
schnellen, so dass kaum noch eine Kurve zu erkennen ist, sondern das Gebilde<br />
eher nach einem leeren Graph mit etwas Schmutz in der rechten unteren Ecke<br />
aussieht. (Übrigens: Der am häufigsten auftretende Begriff ist hier ” the“.)<br />
Diese Form der Kurve ließ sich für eine einfache Abschätzung von Stoppwor-<br />
ten nutzen. Zunächst markiert der Algorithmus alle Worte als Stoppwort, die<br />
nur ein oder zwei Mal auftreten, da diese offenbar keine Aussagekraft in Bezug<br />
auf die Gemeinsamkeiten von Dokumenten besitzen, die im späteren Clustering<br />
relevant werden. Dann, um auch die häufigsten Worte als Stoppwort zu deklarie-<br />
ren, wird die Steigung der Kurve ermittelt. Zusammen mit einem definierbaren<br />
Schwellenwert (ein Wert von 2.0 erschien nach einigen Experimenten als sinn-<br />
voll) lassen sich dann alle Worte, die rechts von dem durch den Schwellenwert<br />
gekennzeichnetet Begriff liegen, als Stoppwort deklarieren. Um kurzfristige Aus-
7.2. TERM-DOKUMENT-MATRIX ERSTELLEN 84<br />
Häufigkeit<br />
160000<br />
140000<br />
120000<br />
100000<br />
80000<br />
60000<br />
40000<br />
20000<br />
0<br />
1 1392 2783 4174 5565 6956 8347 9738 11129 12520 13911 15302 16693 18084 19475 20866 22257 23648 25039 26430 27821<br />
Term Nr<br />
Abbildung 7.1.: Wort Häufigkeiten<br />
reißer zu ignorieren <strong>und</strong> somit nicht zu früh einzuschreiten, werden jeweils drei<br />
Steigungswerte gemittelt.<br />
Sodann hat man eine Liste von Stoppworten, die in der Datenbank abgelegt<br />
werden.<br />
7.2. Term-Dokument-Matrix erstellen<br />
Die später zu clusternden Texte werden zunächst vorbereitet. Die verfügbaren<br />
Daten bestehen bekanntlich aus den Liste von Deskriptoren <strong>und</strong> Sachgebieten<br />
<strong>und</strong> freien Begriffen, sowie aus den Kurzreferaten, die zu jedem Dokument ver-<br />
fasst werden. Während die Listen bereits in der gewünschten Form vorliegen,<br />
so dass jeweils ein Begriff ein Feature darstellt, muss der Text erst in seine<br />
Bestandteile aufgebrochen werden.<br />
Dies funktioniert folgendermaßen, dass jedes Dokument einzeln zunächst durch<br />
einen Lexer läuft, der anhand der Interpunktionszeichen im Text selbigen in ein-<br />
zelne Token aufteilt. Der Lexer ist in der Lage, E-Mails <strong>und</strong> WWW Adressen<br />
zu erkennen <strong>und</strong> als eigenständige Token zu behandeln.<br />
Die Token laufen danach durch einen SentenceDetector. Dies ist ein Ob-<br />
jekt, welches Beginn <strong>und</strong> Ende von Sätzen anhand einer einfachen Abschätzung<br />
(die zwar oft zutrifft, aber manchmal irrt) zu erkennen vermag. Derzeit wer-
85 7.2. TERM-DOKUMENT-MATRIX ERSTELLEN<br />
Dokumente<br />
einlesen<br />
DONE<br />
nächstes<br />
Dokument<br />
verarbeiten<br />
Token<br />
erkennen<br />
Roh-Matrix<br />
anlegen<br />
Dokument<br />
Vektoren aus den<br />
LSI Ergebnissen<br />
selektieren<br />
start<br />
Satzgrenzen<br />
erkennen<br />
Dokument analysieren<br />
Wortgruppen<br />
erkennen<br />
Term-Frequenz-Matrix aufbauen<br />
mittels TF-IDF<br />
gewichten<br />
Cluster erkennen<br />
EM Clustering<br />
anwenden<br />
auf<br />
Wortstämme<br />
reduzieren<br />
Abbildung 7.2.: Ablauf Text Analyse<br />
Stopp-<br />
Worte<br />
entfernen<br />
den schlicht beliebige Satzzeichen als Satzgrenzen interpretiert. Damit werden<br />
LSI anwenden<br />
auch Nebensätze zu eigenständigen Sätzen, ebenso wie eingeklammerte Sätze<br />
oder Wörter. Die Erkennung dieser Sätze oder Teilsätze ist lediglich für die<br />
Phrasen-Erkennung nötig, denn Wortfolgen mit Satzzeichen dazwischen wer-<br />
den generell nicht als Kandidaten für Phrasen angenommen. Dieser Detector<br />
erzeugt Sentence Objekte, die als Container für die Token des jeweiligen Satzes<br />
fungieren.<br />
Danach wiederum werden alle Sentence Objekte durchlaufen <strong>und</strong> auf wie-<br />
derkehrende Wortgruppen überprüft. Kommen in einem Dokument bestimmte<br />
Worte häufiger zusammen vor, wird für diese Wortgruppe ein Objekt Phrase<br />
angelegt, welches ebenso wie das Sentence Objekt als Container für die der<br />
Wortgruppe zugehörigen Worte gilt. Um zu erkennen, ob Worte mehrfach in<br />
Cluster benennen<br />
der gleichen Folge auftreten, werden Suffix-Arrays (ursprünglich beschrieben<br />
von [MM90], ähnlich verwendet von [ZD04]) für die Dokumente aufgebaut. Ein<br />
Suffix ist eine Zeichenfolge, mit der ein Text endet. Beispielsweise wären ati-
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
auf<br />
Wortstämme<br />
reduzieren<br />
Stopp-<br />
Worte<br />
entfernen<br />
87 7.3. MATRIX BERECHNUNGEN<br />
Roh-Matrix<br />
anlegen<br />
Analysen nicht auf.<br />
DONE<br />
Dokument<br />
Vektoren aus den<br />
LSI Ergebnissen<br />
selektieren<br />
Wortgruppen<br />
erkennen<br />
Term-Frequenz-Matrix aufbauen<br />
mittels TF-IDF<br />
gewichten<br />
Cluster erkennen<br />
EM Clustering<br />
anwenden<br />
LSI anwenden<br />
Abbildung 7.3.: Ablauf Matrix Berechnung<br />
Es bleiben also für das jeweilige betrachtete Dokument eine Menge von Token<br />
übrig, sowie möglicherweise die ein oder andere Phrase. Sowohl Token als auch<br />
Phrase nehmen die Stelle von Features ein, wie sie in Abschnitt 5.3 (Seite 56),<br />
eingeführt wurden. Token <strong>und</strong> Phrasen werden nun gleich behandelt <strong>und</strong> eins<br />
Cluster benennen<br />
nach dem anderen in eine Matrix einsortiert, die dynamisch wächst. Bei jedem<br />
neuen Feature (Token oder Phrase) wird eine Zeile hinzugefügt, während bei<br />
jedem neuen Dokument eine neue Spalte hinzugefügt wird. War ein Feature<br />
für das jeweilige Dokument bereits in der Matrix registriert, wird nur dessen<br />
Zähler um eins erhöht. Auf diese Weise enthält die Matrix nach dem Durchlauf<br />
des Algorithmus alle Häufigkeiten des Auftretens der jeweiligen Features in den<br />
jeweiligen Dokumenten.<br />
7.3. Matrix Berechnungen<br />
Der letzte Schritt des vorherigen Abschnittes, also das Sammeln <strong>und</strong> zählen<br />
der Terme <strong>und</strong> Phrasen <strong>eines</strong> Dokumentes, geht nahtlos in den ersten Schritt<br />
dieses Abschnittes über. Alle Terme werden direkt in eine dynamisch wachsende<br />
zweidimensionale Matrix einsortiert, so dass die Werte in den Zellen jeweils<br />
die Häufigkeit des Auftretens <strong>eines</strong> bestimmten Terms in einem bestimmten<br />
Dokument darstellen.<br />
Hier muss man bedenken, dass die Matrix generell extrem spärlich besetzt ist.<br />
Der größte Teil der Zellen beinhaltet den Wert 0. Das leuchtet ein, wenn man<br />
sich vor Augen führt, dass für jeden möglichen Term eine Zeile in der Matrix<br />
existieren muss, ebenso wie für jedes mögliche Dokument eine eigene Spalte<br />
vorhanden sein muss <strong>und</strong> dass jedes Dokument nur aus kurzen Zusammen-<br />
fassungen besteht. Dadurch werden nur eine vergleichsweise geringe Menge an<br />
unterschiedichen Begriffen in den jeweiligen Dokumenten verwendet. Es ist zum
7.3. MATRIX BERECHNUNGEN 88<br />
Beispiel nicht ungewöhnlich, 10.000 verschiedene Begriffe verwalten zu müssen,<br />
während in den einzelnen Texten vielleicht nur jeweils 100 Worte vorkommen,<br />
von denen sich sogar einige wiederholen. 9.900 Zellen wären bei dieser Annahme<br />
auf 0, <strong>und</strong> das pro Dokument.<br />
Rechnet man die Dokumente des ISL (>80.000) auf die zu erwartende Größe<br />
der Matrix um, so bekommt man bei 20.000 Begriffen <strong>und</strong> 80.000 Dokumenten,<br />
sowie 8 Bytes pro Zelle (es werden double Werte gespeichert, um die Häufig-<br />
keitswerte mit double Gewichten multiplizieren zu können, so dass das Ergebnis<br />
eine gewisse Genauigkeit behält) eine Datenmenge von 12.800.000.000 Bytes.<br />
Diese Zahl sollte Motivation genug sein, die Größe zu beschränken. Die Ma-<br />
trix wird deshalb in einer Baumstruktur abgelegt, die der von Javas TreeMap<br />
entspricht. (Dessen Source wurde kopiert <strong>und</strong> leicht angepasst, sie wurde auf<br />
die Datentypen long als Schlüssel <strong>und</strong> double als Wert beschränkt <strong>und</strong> opti-<br />
miert.) Die TreeMap verwendet einen sogenannten Rot-Schwarz-Baum, dessen<br />
Laufzeitcharakteristik für die wesentlichen Operationen O(log(n)) entspricht.<br />
Sie legt die Daten so unter Schlüsselwerten ab, dass sie nach deren natürlicher<br />
Ordnung sortiert sind. Der Schlüssel repräsentiert die Koordinate der Matrix,<br />
dessen Werte gespeichert werden sollen. Er wird aus Zeilenindex + X * Spalten-<br />
index berechnet <strong>und</strong> ist somit bis zu einer Menge von X Dokumenten eindeutig<br />
bestimmt (die Dokumente entsprechen den Spalten). Das X darf mit dem maxi-<br />
malen Spaltenindex multipliziert nicht über den Wertebereich von long hinaus.<br />
Also muss X auf jeden Fall ein positiver Integer sein. Das dürfte jedoch kaum ei-<br />
ne echte Einschränkung darstellen, schließlich ergibt das eine maximale Spalten<br />
<strong>und</strong> Zeilenzahl von jeweils 2 hoch 31.<br />
Nachdem diese Matrix fertig aufgebaut ist, wird sie durchlaufen <strong>und</strong> die ver-<br />
zeichneten Werte jeweils mit Gewichten (TF-IDF, siehe Abschnitt 5.3.3 (Seite<br />
59)) multipliziert.<br />
Danach wiederum wird sie im Harwell-Boeing Format [DGL89] auf Platte<br />
abgelegt, denn die integrierte LSI-Komponente GTP 2 benötigt eine Datei in<br />
diesem Format als Eingabe. GTP liest daraufhin die Matrix ein <strong>und</strong> führt einen<br />
SVD Algorithmus aus, der drei Matrizen ergibt, die wie in Abschnitt 5.3.4 (Seite<br />
62) beschrieben zusammen die Ursprungsmatrix approximieren. Die Ergebnisse<br />
schreibt GTP wiederum in eine Datei, die nun umgekehrt wieder eingelesen<br />
werden muss. Die Ergebnisse landen in einem dafür erstellten Objekt namens<br />
SvdResult, dieses Objekt implementiert die nötigen Funktionen, wie Begriffe<br />
2 WWW Adresse: http://www.cs.utk.edu/ ∼ lsi/
Roh-Matrix<br />
anlegen<br />
Term-Frequenz-Matrix aufbauen<br />
mittels TF-IDF<br />
gewichten<br />
LSI anwenden<br />
89 7.4. CLUSTER ANALYSE<br />
DONE<br />
Dokument<br />
Vektoren aus den<br />
LSI Ergebnissen<br />
selektieren<br />
Cluster erkennen<br />
EM Clustering<br />
anwenden<br />
Abbildung 7.4.: Ablauf Cluster Analyse<br />
Cluster benennen<br />
untereinander verglichen werden, Dokumente untereinander verglichen werden<br />
<strong>und</strong> wie neue Dokumente in den Vektor-Raum ” eingefaltet“ werden, damit sie<br />
vergleichbar sind. Die Formeln dazu stehen in Abschnitt 5.3.4.<br />
7.4. Cluster Analyse<br />
Aus den Ergebnissen werden die Dokumentvektoren extrahiert <strong>und</strong> an den Clu-<br />
stering Algorithmus übergeben. Danach werden Namen vergeben.<br />
Für die Algorithmen, die im Zusammenhang mit dem Clustering nötig<br />
waren, wurde das Strategy-Pattern ([GHJV96]) verwendet. Jeder wichti-<br />
ge Algorithmus, sei es für die Zuweisung von Dokumenten zu Clustern<br />
(ClusterAssignmentStrategy) oder für das Durchführen des Clustering Algo-<br />
rithmus (ClusterStrategy) wird mit einer Schnittstelle ausgestattet, die ihn<br />
von dem Code, der ihn benutzt, entkoppelt. Dadurch ist es möglich, die verwen-<br />
dete Implementation flexibel auszutauschen. Im Diagramm sind beispielsweise<br />
zwei ClusterStrategy-Implementationen aufgeführt. Welche davon zur An-<br />
wendung kommt, entscheidet sich sobald der ClusterContext erzeugt <strong>und</strong> mit<br />
einer spezifischen Implementation initialisiert wurde.<br />
Die EMClusterStrategy Klasse implementiert der Einfachheit halber gleich<br />
zwei Schnittstellen <strong>und</strong> verhält sich als ihr eigenes Ergebnis-Objekt. Durch diese<br />
Aufteilung der Schnittstellen ist es möglich, dass der Algorithmus nach der<br />
Arbeit ein anderes Objekt erzeugt <strong>und</strong> dieses als Ergebnis zurückliefert. Es mag,<br />
je nach Arbeitsweise des Algorithmus, sinnvoll sein, dies zu tun. In diesem Falle<br />
ging es auch so <strong>und</strong> auf eine Extra-Klasse für die Ergebnisse konnte verzichtet
7.5. CLUSTER BENENNUNG UND MATRIZEN 90<br />
werden.<br />
7.5. Cluster Benennung <strong>und</strong> Matrizen<br />
Zur Benennung der Cluster werden die LSI-Ergebnisse verwendet. Diese finden<br />
sich im Code in Form <strong>eines</strong> SvdResult-Objekts wieder. Man sieht in Abbildung<br />
7.6, dass das SvdResult Objekt Zugriff auf die Term- <strong>und</strong> Dokument-Matrizen<br />
bietet, so wie sie vom LSI Code erzeugt worden waren. Man sieht auf dem Dia-<br />
gramm leider nicht den Verweis auf die DiagonalMatrix Klasse. Daber handelt<br />
es sich um eine optimierte Subklasse von Matrix, die ausschließlich Werte auf<br />
der Diagonalen hält <strong>und</strong> zudem ihre Methoden auf die Besonderheiten von dia-<br />
gonalen Matrizen hin optimiert hat, <strong>und</strong> die hiermit immerhin erwähnt wurde.<br />
Um die Benennungen zu finden, wird zunächst aus den Dokumenten, die<br />
zu dem jeweiligen Cluster gehören, ein Pseudo-Dokument-Vektor erstellt. Die-<br />
ses ist der Cluster-Zentroid. Er errechnet sich als einfacher Mittelwert-Vektor.<br />
Daraufhin werden zu diesem Pseudo-Vektor die Terme gesucht, die ihm am<br />
Ähnlichsten sind. Dazu werden die Methoden (es gibt mehrere, daher Mehr-<br />
zahl) computeTermDocumentAssociation von SvdResult verwendet. Der er-<br />
zeugte Cluster befindet sich bereits im SVD-Raum <strong>und</strong> kann direkt anstatt<br />
<strong>eines</strong> Dokument-Vektors verwendet werden.<br />
Im Diagramm ist die Klasse SparseMatrix zu sehen. Diese ist hier der<br />
Vollständigkeit halber aufgeführt, denn sie wird nur für das Ausführen des LSI-<br />
Algorithmus benötigt. Dieser nimmt die Matrix nur in einem solchen Format<br />
entgegen. Daher wird die Matrix vor dem LSI-Durchlauf erst in eine solche<br />
SparseMatrix-Implementation gewandelt.
91 7.5. CLUSTER BENENNUNG UND MATRIZEN<br />
cluster::AssignByThreshold<br />
+ AssignByThreshold()<br />
+ AssignByThreshold(double)<br />
+ assign(double) : ArrayList<br />
+ maxIndex(double) : int<br />
cluster::ClusterStrategy<br />
+ ClusterStrategy()<br />
+ findClusterProbabilityDistribution(Reader) : ClusteringResult<br />
cluster::EMClusterStrategy<br />
cluster::ClusterAssignmentStrategy<br />
+ ClusterAssignmentStrategy()<br />
+ assign(double) : ArrayList<br />
+ toArray(ArrayList) : int[]<br />
InitializingBean<br />
+ findClusterProbabilityDistribution(Reader) : ClusteringResult<br />
+ probabilityDistributionForInstance(Instance) : double[]<br />
+ numberOfInstances() : int<br />
+ instanceAtIndex(int) : Instance<br />
+ afterPropertiesSet() : void<br />
-wekaInstances<br />
analysis::<br />
Instances<br />
+ Instances()<br />
+m_ClusterStrategy<br />
+m_ClusterAssignmentStrategy<br />
cluster::ClusterContext<br />
+ DEFAULT_ARFF_FILE_NAME: String = "clusterInput.arff"<br />
+ m_ClusterStrategy: ClusterStrategy<br />
+ m_ClusterAssignmentStrategy: ClusterAssignmentStrategy<br />
+ ClusterContext()<br />
+ ClusterContext(ClusterStrategy, ClusterAssignmentStrategy)<br />
+ cluster(Matrix) : ClusteringResult<br />
+ assign(ClusteringResult, int) : int<br />
+ assign(double) : ArrayList<br />
«interface»<br />
cluster::ClusteringResult<br />
+ probabilityDistributionForInstance(Instance) : double[]<br />
+ numberOfInstances() : int<br />
+ instanceAtIndex(int) : Instance<br />
cluster::KMeansStrategy<br />
+ KMeansStrategy()<br />
+ findClusterProbabilityDistribution(Reader) : ClusteringResult<br />
+ probabilityDistributionForInstance(Instance) : double[]<br />
+ numberOfInstances() : int<br />
+ instanceAtIndex(int) : Instance<br />
Abbildung 7.5.: Klassendiagramm Cluster Algorithmen
7.5. CLUSTER BENENNUNG UND MATRIZEN 92<br />
«interface»<br />
maths::IMatrix<br />
+ set(int, int, double) : void<br />
+ get(int, int) : double<br />
+ getRowDimension() : int<br />
+ getColumnDimension() : int<br />
+ getRowDescriptors() : List<br />
+ getColumnDescriptors() : List<br />
+ setRowDescriptors(List) : void<br />
+ setColumnDescriptors(List) : void<br />
+ getColumnVector(int) : IMatrix<br />
+ getMaximumValue() : double<br />
+ getMinimumValue() : double<br />
maths::SparseMatrix<br />
+ createFrom(IMatrix) : SparseMatrix<br />
+ createFrom(IndexedSparseMatrix) : SparseMatrix<br />
+ createFrom(Matrix) : SparseMatrix<br />
+ findNumberOfNonZeroValues(IMatrix) : int<br />
# SparseMatrix()<br />
+ getNumberOfValues() : long<br />
+ getValues() : double[]<br />
+ getRowIndizes() : long[]<br />
+ getColumnPointer() : long[]<br />
+ SparseMatrix(long, long, long, long, long, double)<br />
+ get(int, int) : double<br />
+ getColumnDimension() : int<br />
+ getRowDimension() : int<br />
+ set(int, int, double) : void<br />
+ toDenseMatrix() : Matrix<br />
+ toGtpGeneralObject() : General<br />
+ getColumnVector(int) : IMatrix<br />
+ equals(Object) : boolean<br />
maths::Matrix<br />
~ columnDescriptors: List<br />
~ rowDescriptors: List<br />
+ stringWithMinLengthOf(int, String) : String<br />
+ Matrix(double, int)<br />
+ Matrix(double)<br />
+ Matrix(double, int, int)<br />
+ Matrix(int, int)<br />
+ Matrix(int, int, double)<br />
+ Matrix(Jama.Matrix)<br />
+ copy() : Matrix<br />
+ get(int, int) : double<br />
+ set(int, int, double) : void<br />
+ times(Matrix) : Matrix<br />
+ createFromTransposedVector(double) : Matrix<br />
+ createFromVector(double) : Matrix<br />
+ createMatrixFromColumns(int) : Matrix<br />
+ times(DiagonalMatrix) : Matrix<br />
+ solveTranspose(Matrix) : Matrix<br />
+ transpose() : Matrix<br />
+ solve(Matrix) : Matrix<br />
~ getArray() : double[]<br />
+ getColumnPackedCopy() : double[]<br />
+ getColumnVectorArray(int) : double[]<br />
+ getMeanVector(int) : Matrix<br />
+ getSumVector(int) : Matrix<br />
+ getColumnVector(int) : IMatrix<br />
+ toIndexedSparseMatrix() : IndexedSparseMatrix<br />
+ inverse() : Matrix<br />
+ toJamaMatrix() : Jama.Matrix<br />
+ getRowDimension() : int<br />
+ getColumnDimension() : int<br />
+ singularValueDecomposition() : SvdResult<br />
+ toString() : String<br />
+ equals(Object) : boolean<br />
+ equals(IMatrix, IMatrix) : boolean<br />
+ normalize() : void<br />
+ normalizeColumns() : void<br />
+ normalizeRows() : void<br />
+ lengthOfColumn(int) : double<br />
+ lengthOfRowVector(int) : double<br />
+ computeFrobeniusNormal() : double<br />
+ computeOverallSimilarity() : double<br />
+v<br />
+u<br />
-sv<br />
+ u: Matrix<br />
+ v: Matrix<br />
+ s: DiagonalMatrix<br />
maths::AbstractMatrix<br />
+ resetMaxMinValues() : void<br />
~ computeMaximalValues(IMatrix) : double[]<br />
+ computeFrobeniusNormal() : double<br />
+ normalize() : void<br />
+ normalizeColumns() : void<br />
+ normalizeRows() : void<br />
+ lengthOfColumn(int) : double<br />
+ lengthOfRowVector(int) : double<br />
maths::SvdResult<br />
+ SvdResult(Matrix, DiagonalMatrix, Matrix)<br />
+ SvdResult(Matrix, double, Matrix)<br />
+ SvdResult()<br />
+ dimension() : int<br />
+ get(int, int) : double<br />
+ set(int, int, double) : void<br />
+ getRowDimension() : int<br />
+ getColumnDimension() : int<br />
+ getRowDescriptors() : List<br />
+ getColumnDescriptors() : List<br />
+ setRowDescriptors(List) : void<br />
+ setColumnDescriptors(List) : void<br />
+ rank() : int<br />
+ rowSpaceCompare(int, int) : double<br />
+ columnSpaceCompare(int, int) : double<br />
+ columnSpaceCompare(int, Matrix) : double<br />
+ computeTermDocumentAssociation(int, double) : Double<br />
+ getRootOfS() : double[]<br />
+ computeTermDocumentAssociations(Matrix) : Map<br />
+ computeTermDocumentAssociations(int) : Map<br />
+ projectVectorInColumnSpace(double) : double[]<br />
+ projectVectorInColumnSpace(Matrix) : Matrix<br />
+ projectVectorInRowSpace(Matrix) : Matrix<br />
+ getColumnVector(int) : IMatrix<br />
+ getSTimesV() : Matrix<br />
+ equals(Object) : boolean<br />
+ getMaximumValue() : double<br />
+ getMinimumValue() : double<br />
+svdResult<br />
cluster::ClusterNamingContext<br />
+ m_ClusterNamingStrategy: ClusterNamingStrategy<br />
+ ClusterNamingContext(ClusterNamingStrategy)<br />
+ nameClusters() : void<br />
+ nameClusters(Fetch) : void<br />
+m_ClusterNamingStrategy<br />
cluster::ClusterNamingStrategy<br />
+ nameCluster(ClusterNamingContext, Cluster) : void<br />
strategies::NearestTermsNamingStrategy<br />
+ nameCluster(ClusterNamingContext, Cluster) : void<br />
Abbildung 7.6.: Klassendiagramm für Matrizen <strong>und</strong> SVD Ergebnisse
8. Verwendung des Programms<br />
8.1. Installation<br />
Für die Anwendung existiert ein Installationsprogramm, welches die nötigen<br />
Verzeichnisse anlegt. Dieses liegt in Form <strong>eines</strong> ausführbaren JAR Archives vor,<br />
welches unter Windows üblicherweise schlicht mittels Doppelklick gestartet wer-<br />
den kann. Sollte das nicht funktionieren, so ist es auf der Konsole mittels java<br />
-jar seacluster-install.jar ausführbar. Dabei ist natürlich zu beachten,<br />
dass die java Anwendung im Pfad zugreifbar sein muss.<br />
Nachdem es in dem gewählten Verzeichnis installiert wurde, muss es auf die zu<br />
verwendende Datenank eingestellt werden. Im Installationsverzeichnis liegt eine<br />
.sql Datei, die das erwartete Datenmodell in SQL beinhaltet. Sofern sich die<br />
Datenbank nach dem SQL92 Standard richtet, sollte dieses direkt problemlos<br />
in der Datenbank ausgeführt werden können <strong>und</strong> dort die nötigen Tabellen<br />
anlegen. Eventuell muss es jedoch auf die Datenbank zugeschnitten werden,<br />
dies sollte vorher evaluiert werden.<br />
Ist die Datenbank mit den Tabellen versorgt, müssen die JDBC-Einstellungen<br />
in der seacluster.properties Datei hinterlegt werden. Diese Datei befindet<br />
sich ebenfalls im angelegten Installationsverzeichnis. Alle mit EDITME gekenn-<br />
zeichneten Einstellungen müssen gesetzt werden. Dabei sind keine Gänsefüßchen<br />
oder Klammern zu verwenden. Siehe auch Abschnitt 8.3.<br />
Der JDBC Treiber für die verwendete Datenbank liegt üblicherweise als JAR<br />
vor <strong>und</strong> muss nur in das lib Verzeichnis kopiert werden. Für FrontBase <strong>und</strong><br />
PostgreSQL liegen bereits aktuelle JDBC Treiber vor.<br />
Nun gilt es, die DOCUMENTS Tabelle in der Datenbank mit Daten zu<br />
füllen. Hier existiert kein allgemeingültiger Prozess, dies ist schließlich sehr<br />
stark von den lokalen Gegebenheiten abhängig. Die Software-Architektur sieht<br />
Import-Dienste vor, die jedoch speziell entwickelt werden müssen. Es exi-<br />
stiert ein Import-Dienst für das Datenformat des Reuters Textkorpus (sie-<br />
he auch Abschnitt 9.1.1 (Seite 101)). Dieser wird, falls Bedarf besteht,
8.2. BENUTZEROBERFLÄCHE 94<br />
Abbildung 8.1.: Bildschirmfoto des Cluster Browsers<br />
über einen Flag auf der Kommando-Zeile gestartet. Zunächst müssen die<br />
SGML Dateien des Korpus in ein Verzeichnis namens reuters-import ko-<br />
piert werden. Dann kann SeaCLUSTER folgendermaßen gestartet werden: java<br />
-Dservice.importService.load -jar start.jar. Daraufhin werden die Da-<br />
teien im import Verzeichnis eingelesen, geparst <strong>und</strong> in die Datenbank geschrie-<br />
ben. Andere Korpora, die im gleichen Format vorliegen, mögen ebenso ein-<br />
gelesen werden können. Für Quellen in anderen Formaten muss ein spezieller<br />
Import-Dienst entwickelt werden. Dies ist jedoch nicht sehr aufwendig.<br />
Nun kann SeaCLUSTER durch einen Doppelklick auf start.jar oder die<br />
Eingabe von java -jar start.jar auf der Kommandozeile gestartet werden.<br />
8.2. Benutzeroberfläche<br />
Die GUI beinhaltet zunächst nur ein Menü, aus welchem der Clustering Prozess<br />
gestartet werden kann. Wählt man den Cluster Browser () aus, öffnen sich<br />
mehrere nebeneinanderliegende Listen <strong>und</strong> ein Textfeld, in denen jeweils die<br />
Daten angezeigt werden. Die Art der Navigation wurde durch den File Viewer<br />
des legendären Betriebssystems NEXTSTEP inspiriert, der sich ebenfalls durch<br />
nebeneinander angeordnete Listen auszeichnete <strong>und</strong> keinerlei Baumdarstellung,<br />
wie sie in modernen Systemen üblich ist, kannte.
95 8.2. BENUTZEROBERFLÄCHE<br />
Abbildung 8.2.: Bildschirmfoto des Menüs<br />
Wählt man einen Cluster in der linken Liste aus, werden die Dokumente in<br />
der rechts danebenliegenden Liste angezeigt. Wählt man dort wiederum ein Do-<br />
kument aus, wird dessen Inhalt im Textfeld daneben angezeigt. Zusätzlich wird<br />
wiederum daneben <strong>und</strong> nun ganz rechts eine Liste mit den Begriffen gefüllt,<br />
die laut LSI eine starke Zugehörigkeit zu dem jeweiligen Dokument aufweisen<br />
(sortiert nach Zugehörigkeit). Die Statuszeile zeigt einen Wert, der den Zusam-<br />
menhang des Clusters repräsentiert <strong>und</strong> die Qualität des jeweiligen Clusters<br />
rechnerisch beweisen können soll. Je höher der Wert, desto ähnlicher sind sich<br />
die im Cluster befindlichen Dokumente.<br />
Abbildung 8.2 zeigt die Möglichkeiten. Der Gesamtprozess des Clusterings<br />
wurde in drei Teilschritte aufgeteilt. compute stopwords analysiert den Daten-<br />
bestand auf Stoppworte <strong>und</strong> speichert diese in der Datenbank ab. prep analy-<br />
siert den Datenbestand erneut, nur wird nun der oben besprochene komplette<br />
Analyse-Prozess durchgeführt, an dessen Ende der SVD-Algorithmus der LSI-<br />
Komponente steht. run wiederum führt die eigentliche Clusteranalyse durch,<br />
indem es wie angesprochen den EM-Algorithmus des WEKA-Toolkits ausführt.<br />
Da der Zustand des Systems nach jedem Schritt vollständig auf Festplatte <strong>und</strong><br />
in die Datenbank gesichert wird, kann die Anwendung zwischen den Vorgängen<br />
geschlossen <strong>und</strong> neu gestartet werden. Ebenso lässt sich z.B. der Clustering Al-<br />
gorithmus mit verschiedenen Parametern (Zahl der Cluster) mehrfach aufrufen,<br />
um die optimale Zahl experimentell zu ermitteln.<br />
Der Punkt run complete führt prep <strong>und</strong> run in direkter Folge aus. Dies ist eine<br />
Vereinfachung, da beide Vorgänge eine Weile dauern können <strong>und</strong> der Nutzer so<br />
nicht auf das Ende des ersten Vorgangs warten muss.
<br />
KONFIGURATION 96<br />
<br />
<br />
<br />
<br />
${strategy.documents.number}<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
Abbildung 8.3.: Ausschnitt der Komponentenkonfiguration<br />
8.3. Konfiguration<br />
In Abbildung 8.3 wird exemplarisch die Konfiguration einer Komponente ge-<br />
zeigt. Das Format wird vom Spring Framework 1 vorgegeben, welches die Kom-<br />
ponenten zur Laufzeit mit den jeweiligen Werten versieht <strong>und</strong> sie wie vorgegeben<br />
initialisiert. Es handelt sich dabei um ein auf XML basierendes Format. Der Vor-<br />
teil, solch eine Konfiguration zu verwenden, liegt in der einfachen nachträglichen<br />
Austauschbarkeit zentraler Komponenten. Dargestellt ist in diesem Beispiel die<br />
DocumentProducer-Komponente. Diese liest die Dokument-Daten aus der Da-<br />
tenquelle (der Datenbank) ein <strong>und</strong> legt sie in einer FIFO-Liste (First In, First<br />
Out) ab, aus der sich die weiteren (konsumierenden) Komponenten bedienen<br />
können.<br />
Der DocumentProducer delegiert das eigentliche laden der Dokumente jedoch<br />
an eine weitere Komponente, in diesem Falle an das FetchRandomTemplate.<br />
Diese Komponente lädt eine bestimmte Anzahl von Objekten in zufälliger Rei-<br />
henfolge aus der Datenbank. Es ist somit zu erwarten, dass bei jedem Durch-<br />
lauf andere Objekte aus dem F<strong>und</strong>us geladen werden. Man sieht auch, dass die<br />
Anzahl an Dokumenten durch eine Variable strategy.documents.number de-<br />
finiert wird. Diese Variable wird aus einer .properties Datei (dies ist ein Stan-<br />
dardformat der Java-Plattform für Konfigurationsdateien) eingelesen, die ent-<br />
weder im ” home“-Verzeichnis des Nutzers oder im aktuellen Arbeitsverzeichnis<br />
unter dem Namen seacluster.properties erwartet wird. Die Annahme, die<br />
für diese Zweiteilung spricht, ist die, dass die Konfigurationsdatei, die durch die<br />
1 WWW Adresse: http://www.springframework.org
97 8.3. KONFIGURATION<br />
vielen Komponenten des Systems nur schwer überschaubar ist, selten geändert<br />
werden muss, wohingegen die viel übersichtlichere Properties-Datei all jene Wer-<br />
te beinhaltet, die oft angepasst werden.<br />
Im Zuge der Entwicklung war es (beispielsweise für die Fehlersuche) notwen-<br />
dig, vergleichbare Ergebnisse zu bekommen. Das ist nun nicht möglich, wenn bei<br />
jedem Durchlauf eine zufällige Dokumentenmenge produziert wird. Aus diesem<br />
Gr<strong>und</strong> wurde die Komponente FetchWithIdFile entwickelt, deren Konfigura-<br />
tion in Abbildung 8.3 auskommentiert zu sehen ist. Diese erwartet eine Liste<br />
von IDs in einer Textdatei <strong>und</strong> lädt nur die Dokumente, die dort angegeben<br />
wurden, in genau der in der Datei vorliegenden Reihenfolge.<br />
Um die Anwendung benutzerfre<strong>und</strong>licher zu gestalten, wäre es sicherlich an-<br />
zuraten, für die Konfiguration jeweils Dialoge zu gestalten, die die Änderungen<br />
der jeweiligen Datei(en) einfach ermöglicht. Darauf wurde jedoch zunächst ver-<br />
zichtet.<br />
db.jdbc.url Die JDBC URL für die Identifikation der Datenbank. Ist abhängig<br />
von der jeweiligen verwendeten Datenbank. Beispiel für FrontBase:<br />
jdbc:FrontBase://local/seacluster<br />
db.jdbc.user Benutzername für die Datenbank<br />
db.jdbc.pass Passwort für die Datenbank<br />
db.jdbc.driver Klassenname des JDBC Treibers für die verwendete Datenbank.<br />
Beispiel für FrontBase: com.frontbase.jdbc.FBJDriver<br />
db.hibernate.batchsize Dies kann zur Optimierung der Datenbankzugriffe ver-<br />
wendet werden. Hibernate versucht, bei Bedarf mehrere Objekte in einem<br />
Rutsch aus der Datenbank zu lesen. Die Voreinstellung ist 50.<br />
db.hibernate.dialect Hibernate besitzt für die meisten Datenbanken optimierte<br />
Strategien. Welche Strategie verwendet werden soll, entscheidet sich hier.<br />
Beispiel für FrontBase: org.hibernate.dialect.FrontBaseDialect<br />
strategy.analysis.refreshTermSchema true, falls die für die Klassifizierung zu<br />
verwendeten Terme neu ermittelt werden sollen (Voreinstellung). false<br />
sonst.<br />
strategy.cluster.number Anzahl zu errechnender Cluster.
8.3. KONFIGURATION 98<br />
strategy.cluster.discretize true, falls die Werte vor dem Clustering in diskrete<br />
Klassen eingeteilt werden sollen. false sonst (Voreinstellung).<br />
strategy.cluster.shift true, falls die Wertebereiche so verschoben werden sol-<br />
len, dass der größte positive Wert <strong>und</strong> der kleinste negative Wert den<br />
selben Abstand von 0 besitzen, dass also 0 genau in der Mitte des Werte-<br />
bereichs liegt. false sonst (Voreinstellung).<br />
strategy.cluster.normalize true, falls der Wertebereich gestaucht oder ge-<br />
schrumpft werden soll, so dass er sich innerhalb des Intervalls zwischen -1<br />
<strong>und</strong> +1 befindet <strong>und</strong> diesen so gut wie möglich ausfüllt (Voreinstellung).<br />
false sonst.<br />
strategy.documents.number Anzahl zugr<strong>und</strong>egelegter Dokumente. -1 bedeu-<br />
tet ” alle Dokumente“. FetchWithIdFile jedoch ignoriert diese Einstel-<br />
lung.<br />
strategy.idListFileName Beinhaltet den Dateinamen der Datei, die Dokument-<br />
IDs zur Verwendung beinhaltet. Wird nur von FetchWithIdFile verwen-<br />
det.<br />
strategy.stopwords.threshold Legt die Steigung der Kurve in Abbildung 7.1<br />
(Seite 84) fest, ab der Worte als Stoppwort einsortiert werden. 2.0 ist<br />
Voreinstellung.<br />
strategy.stopwords.includefile Legt den Dateinamen der Datei fest, aus der<br />
das System solche Begriffe entnimmt, die auf jeden Fall ein Stoppwort<br />
sein sollen.<br />
strategy.stopwords.excludefile Legt den Dateinamen der Datei fest, aus der<br />
das System solche Begriffe entnimmt, die auf keinen Fall ein Stoppwort<br />
werden sollen. Hat im Zweifel vor includefile Vorrang.
Teil IV.<br />
Abschluss
9. Ergebnisse <strong>und</strong> Fazit<br />
9.1. Technische Perspektive<br />
9.1.1. Testdaten<br />
Um die Algorithmen testen zu können, wurde der in der Forschung oft verwen-<br />
dete <strong>und</strong> frei zugängliche Textkorpus ” Reuters-21578“ verwendet. Dieser wurde<br />
1990 veröffentlicht <strong>und</strong> besteht aus einer Reihe von Nachrichtentexten, die 1987<br />
im Reuters Nachrichtendienst erschienen sind. Er wird derzeit von David D. Le-<br />
wis verwaltet <strong>und</strong> online für Forschungszwecke angeboten, vgl. [Lew96].<br />
Der Korpus besteht aus einer Menge von 21.578 kurzen Texten. Manche bein-<br />
halten nicht mehr als drei Sätze, andere entsprechen vom Umfang her einer<br />
Schreibmaschinenseite. Die Themen der Texte sind in den Bereichen Wirtschaft<br />
<strong>und</strong> Politik angesiedelt.<br />
9.1.2. Laufzeit<br />
Man muss feststellen, dass Clustering mit dem EM-Algorithmus nicht sehr<br />
schnell ist. Soviel vorweg. Es wurde zudem bereits im Kapitel Abschnitt 7.3<br />
(Seite 87) angesprochen, dass die Matrix bei großen Datenmengen extrem groß<br />
werden kann, so dass die Algorithmen, wie sie hier beschrieben wurden, gar<br />
nicht mehr funktionieren. Im Falle des ISL sind die Mengen noch klein genug<br />
(unkomprimiert gegen 12GB, komprimiert wenige h<strong>und</strong>ert MB), aber ein Ende<br />
ist definitiv in Sicht.<br />
Große Datenmengen sind natürlich auch in Bezug auf die Laufzeit ein Pro-<br />
blem. Der EM-Algorithmus hat eine exponentielle Laufzeitcharakteristik, so<br />
dass die Laufzeit mit wachsender Menge an Daten immer stärker wächst. Dies<br />
zeigt sich auch an den gesammelten Statistiken. In Tabelle 9.1 <strong>und</strong> Tabelle 9.2<br />
seien zwei Laufzeitprotokolle gegenübergestellt.<br />
An den beiden Tabellen wird deutlich, dass die Clustering-Zeit deutlich schnel-<br />
ler wächst als alle anderen Faktoren. Während sich die Menge an Dokumenten
9.1. TECHNISCHE PERSPEKTIVE 102<br />
Abschnitt Laufzeit<br />
Parsing 60 Sek.<br />
LSI 7 Sek.<br />
Clustering 87 Sek.<br />
Zuweisungen in DB sichern 48 Sek.<br />
Cluster benennen 12 Sek.<br />
Anzahl Features 1837 Terme<br />
Tabelle 9.1.: Laufzeit bei 521 Dokumenten<br />
Abschnitt Laufzeit<br />
Parsing 182 Sek.<br />
LSI 13 Sek.<br />
Clustering 806 Sek.<br />
Zuweisungen in DB sichern 152 Sek.<br />
Cluster benennen 37 Sek.<br />
Anzahl Features 3709 Terme<br />
Tabelle 9.2.: Laufzeit bei 1684 Dokumenten<br />
etwa verdreifacht hat, hat sich die Clustering-Zeit in diesem Beispiel verzehn-<br />
facht. Es fällt auf, dass der LSI-Algorithmus im Gegensatz dazu sehr gut ska-<br />
liert. Zur Ehrenrettung des EM-Algorithmus sollte man jedoch erwähnen, dass<br />
die verwendete Implementation aus dem WEKA-Toolkit nicht speziell auf die<br />
Laufzeit hin optimiert wurde. Es ließe sich dort sicherlich noch etwas verbessern.<br />
9.1.3. Qualität<br />
Dies ist ein Sorgenkind. Trotzdem der EM-Algorithmus komplexere Strukturen<br />
erkennen kann, als andere, einfachere Varianten, ist es durchaus nicht leicht, ein<br />
passendes, sinnvolles Clustering zu erreichen. Die Anzahl an Clustern ist bereits<br />
ein Faktor. Diese muss im Falle des EM-Algorithmus zu Beginn feststehen <strong>und</strong><br />
hat große Auswirkungen auf das Ergebnis. Wieviele sinnvolle Gruppen lassen<br />
sich aus einer Dokumentenmenge erzeugen, <strong>und</strong> was ist überhaupt eine sinnvolle<br />
Gruppe? Die Fragen sind bereits für den Fachmann schwer zu beantworten, <strong>und</strong><br />
ein Clustering Algorithmus beantwortet sie auf seine Weise automatisch, trifft<br />
aber nicht immer den Nagel auf den Kopf.
103 9.1. TECHNISCHE PERSPEKTIVE<br />
Da die automatisch erzeugten Cluster rein statistisch begründet sind, fällt<br />
es mitunter schwer, nachzuvollziehen warum nun eine bestimmte Menge an<br />
Dokumenten zusammengruppiert wurde. Das ist immer dann der Fall, wenn<br />
Eigenschaften bzw. Begriffe zum Clustern herangezogen wurden, die wenig in-<br />
haltliche Aussagekraft haben. Um also qualitativ hochwertige, sinnvolle Cluster<br />
erzeugt zu bekommen, ist es von Nöten, die Begriffe manuell zu überprüfen <strong>und</strong><br />
all diese als Stoppwort zu deklarieren, die generell wenig über den Inhalt der<br />
Texte aussagen.<br />
Um dies zu belegen, seien nun einige Beispiele dargestellt, die jeweils in ein<br />
<strong>und</strong> demselben Cluster zusammegefasst wurden. Das erste Beispiel zeigt den<br />
Beginn <strong>eines</strong> Textes, der offenbar vom leicht gefallenen Dollarkurs handelt <strong>und</strong><br />
dass sich die Händler wegen der unklaren Situation zurückgehalten haben.<br />
” The dollar opened slightly lower in quiet trading, with dealers holding back<br />
ahead of the outcome of this week’s top-level international monetary talks in<br />
Washington. The dollar began here at 1.5128/5138 Swiss francs, down from<br />
the previous 1.5185/5195 close and the 1.5180/5190 francs in New York. Ho-<br />
wever, dealers were sceptical that anything other than a mere reaffirmation of<br />
February’s Paris Accord was likely to emerge from Washington.“<br />
Der nächste Absatz dagegen spricht von Schweinen. Deren Marktpreis sei<br />
gestiegen.<br />
” Hog prices are expected steady to 0.50 dlr higher on estimated receipts of<br />
2,000 head, private sources said. Top seen at 51.00 to 51.50 dlrs per cwt. Sources<br />
said the market closed stronger late yesterday and was expected to carry over<br />
into today’s session. ” Farmers are getting in the fields here,& they said. Also,<br />
little if any country movement was expected, they added.“<br />
Im selben Cluster befanden sich noch Texte, die über den Börsenwert bei-<br />
spielsweise <strong>eines</strong> Unternehmens im Markt der Kaffee-Röster berichteten. Die<br />
Begriffe, die der Algorithmus als besonders zentral für diese Gruppierung er-<br />
achtet hatte, waren ” higher“, ” openly“, ” lowers“ <strong>und</strong> ” Dealers“. (Diese Begriffe<br />
werden für jeden Cluster automatisch auf der Basis der durch SVD hergestellten<br />
Matrizen errechnet <strong>und</strong> als Bennungsvorschlag angeboten.) Man sieht daran,<br />
dass die Veränderung von Preisen der relevante Aspekt für diese Gruppierung<br />
war. In Bezug auf die Qualität der Cluster muss hier beachtet werden, ob dieser<br />
Cluster, bzw. der Aspekt der ihm zugr<strong>und</strong>eliegt, auch dem Ziel entspricht, das<br />
man mit dem Clustering ursprünglich verfolgt hat. Möglicherweise wäre es hier<br />
interessanter, die Dokumente nach den Objekten zu gruppieren (also alles über
9.1. TECHNISCHE PERSPEKTIVE 104<br />
Schweine gegen alles über den Dollar als Objekt, z.B.).<br />
Würde man nun die Begriffe ” lowers“ <strong>und</strong> ” higher“ als Stoppwort deklarieren,<br />
dann würde der Algorithmus diesen Aspekt nicht mehr sehen <strong>und</strong> die Cluster<br />
anders zusammensetzen. Dass die sich neu ergebende Struktur wirklich besser<br />
ist, bleibt jedoch im Einzelfall zu prüfen. Der Prozess läuft vollautomatisch ab<br />
<strong>und</strong> kann durch Stoppworte <strong>und</strong> der vorgegebenen Anzahl von Clustern nur be-<br />
grenzt beeinflusst werden. Dies ist sowohl seine Stärke wie auch seine Schwäche.<br />
Stärke, weil er wenige manuelle Eingriffe erfordert. Bei großen Datenmengen ist<br />
es schließlich nicht mehr praktikabel, die Cluster manuell anzulegen, weil es zu-<br />
viel Aufwand erfordert. Schwäche, weil er kaum manuelle Eingriffe ermöglicht<br />
<strong>und</strong> somit das Ziel einer perfekten Clusterstruktur verfehlen kann. Es bleibt ein<br />
Trade-Off.<br />
Nach all der Kritik soll aber nicht verschwiegen werden, dass mit einer mitt-<br />
leren Anzahl von Clustern <strong>und</strong> einer automatisch definierten Menge an Stopp-<br />
worten auch eine ganze Reihe von subjektiv sinnvollen Clustern erzeugt werden<br />
konnten.<br />
9.1.4. Ausblick<br />
Was lässt sich noch verbessern? Es ließe sich ein Algorithmus implementieren,<br />
der besser skaliert. Bradley et al. schlagen in ihrem Paper [BFR99] einen opti-<br />
mierten Ablauf vor, der mit deutlich weniger Hauptspeicher auskommt, da er<br />
blockweise arbeitet <strong>und</strong> daher immer nur einen bestimmten Block im Speicher<br />
halten muss. Es würde im Sinne der Skalierbarkeit sicherlich helfen, wenn der<br />
Algorithmus auf mehreren Rechnern verteilt ablaufen könnte. Das gleiche gilt<br />
für die LSI-Implementation, mit dem Unterschied, dass es tatsächlich schon on-<br />
line verfügbar ist, nur nicht in Java. Die parallele LSI-Implementation nennt<br />
sich PGTP <strong>und</strong> ist ebenso wie die normale GTP Variante auf www.cs.utk.edu/<br />
lsi 1 in der Software-Rubrik zu finden.<br />
Es gibt zudem Stimmen, die den EM-Algorithmus für den Zweck, Texte zu<br />
clustern, nicht als optimal erachten. Breunig et al. [BKKS01] beispielsweise<br />
schlagen eine alternative Methode vor, die sogenannte ” Data Bubbles“ zusam-<br />
men mit dem OPTICS Algorithmus [ABKS99] verwendet, um auf effizientere<br />
Art <strong>und</strong> Weise zu einer Clusterstruktur zu gelangen, die hierarchisch sortiert<br />
ist. Dieses Verfahren ist speziell darauf ausgelegt, auch bei großen Datenmen-<br />
1 WWW Adresse: http://www.cs.utk.edu/ ∼ lsi
105 9.1. TECHNISCHE PERSPEKTIVE<br />
gen noch gut genug zu funktionieren. Ein (qualitativer) Vergleich mit dem EM-<br />
Algorithmus wäre für die Zukunft interessant.<br />
Ferner: Um die verwendeten Begriffe exakter spezifizieren zu können, wäre es<br />
denkbar, ein begriffliches Netz wie das WordNet [Mil95] zu integrieren. Damit<br />
könnten thematisch ähnliche Begriffe automatisch vor dem Clustering auf den<br />
selben Term reduziert werden. Die Hoffnung dabei ist natürlich, dass dadurch<br />
ein qualitativ hochwertigeres Ergebnis entsteht.<br />
Zuletzt sei die Anmerkung erlaubt, dass die aktuelle Entwicklung im Internet<br />
von den traditionellen Klassifikationsmechanismen weggeht. Hierzu sei [Shi05]<br />
als Lektüre genannt. Shirky erklärt hier sehr schön, welche Probleme bei fe-<br />
sten Klassifikationssysteme mit einem fest definierten Thesaurus auftreten. Er<br />
nennt aber auch Eigenschaften, die für ein solches festes Klassifikationssystem<br />
sprechen:<br />
• Geringer Umfang des Dokumentkorpus<br />
• Formelle Kategorien<br />
• Stabile Konzepte<br />
• Eingeschränkte Konzepte<br />
• Klare Domänengrenze<br />
• Katalogisierer ist Experte im Fachgebiet<br />
• Autoritative Quelle<br />
• Bestimmte Nutzergruppe<br />
• Nutzer sind Experten bzgl. der Kategorisierung<br />
Einige dieser Eigenschaften treffen für das ISL tatsächlich zu. Beispielswei-<br />
se ist der Umfang <strong>und</strong> die betrachtete Domäne begrenzt (verglichen mit den<br />
Datenmengen, die Google oder Yahoo verwalten). Die Domänengrenzen ändern<br />
sich so gut wie nie, denn das ISL hat sich auf Seeverkehrswirtschaft <strong>und</strong> Logi-<br />
kistik spezialisiert. Die Klassifikation wird von Fachleuten des ISL verfasst <strong>und</strong><br />
befindet sich in einer wohldefinierten, hierarchischen Struktur <strong>und</strong> kann somit<br />
als formell bezeichnet werden. Das ISL fungiert als autoritative Oberaufsicht<br />
auf die Klassifikation.
9.2. FACHLICHE PERSPEKTIVE 106<br />
Die Nutzer sind jedoch nicht fest bestimmt, es hat eine unbestimmte Menge<br />
an Nutzern weltweit Zugriff auf das System. Es gab somit auch keine expliziten<br />
Schulungen bezüglich der Klassifikation. Man kann nicht von Expertentum auf<br />
Seiten der Nutzer ausgehen.<br />
Die meisten Faktoren sind im Falle des ISL zwar für eine feste Klassifikation<br />
ausgerichtet, die unbestimmte <strong>und</strong> ungeschulte Nutzergruppe ist aber ein wich-<br />
tiger Faktor, der dagegen spräche. Hier sind noch weitere Forschungen sinnvoll.<br />
9.2. Fachliche Perspektive<br />
9.2.1. Potentiale<br />
Angenommen, es wurden einige sinnvolle Cluster in der Datenbank angelegt.<br />
Welche Möglichkeiten eröffnet das eigentlich?<br />
Sei nun angenommen, dass Nutzer zu wenige Ergebnisse zu ihren Suchanfra-<br />
gen bekommen. In diesem Falle könnte man dem entgegen wirken, in dem man<br />
die Ergebnisliste durch jene Dokumente anreichert, die in den gleichen Clustern<br />
wie die Dokumente der ursprünglichen Ergebnisliste verzeichnet sind. Zusam-<br />
men mit einem sinnvollen Ranking kann diese Erweiterung der Ergebnismenge<br />
das Such-Erlebnis verbessern.<br />
Gibt es im Gegensatz dazu eher zu viele Ergebnisse, so können zusätzlich,<br />
wie in Abbildung 4.5 (Seite 44) dargestellt, die Cluster daneben aufgelistet<br />
werden. So kann der Suchende die Ergebnisse auf eine beliebige Gruppe ähn-<br />
licher Dokumente einschränken. Er sieht so mindestens sofort, welche Cluster<br />
wahrscheinlich nicht interessant sind, <strong>und</strong> kann sich auf die verbliebenen inter-<br />
essanten Cluster konzentrieren. Es gibt ihm auch einen Hinweis darauf, welche<br />
Daten im System vorhanden sind, so dass er beim zweiten Versuch eine geziel-<br />
tere Anfrage formulieren kann.<br />
Hat der Nutzer bereits ein relevantes Dokument gef<strong>und</strong>en, so kann das Sy-<br />
stem ihm durch den Verweis zu dem Cluster, dem das Dokument angehört,<br />
den direkten Zugang zu anderen (hoffentlich) ebenso relevanten Dokumenten<br />
bieten. Auch diese Variante wurde bereits angesprochen, siehe Abbildung 4.6<br />
(Seite 45).<br />
Sofern zusätzlich zum Such-Formular ein Verzeichnis mit hierarchischen Ka-<br />
tegorien angelegt werden soll, so ließe sich ein automatisch durchgeführtes Clu-<br />
stering als Roh-Form verwenden <strong>und</strong> die Gr<strong>und</strong>lage für das Verzeichnis bilden.<br />
Die Fachleute des ISL würden sicherlich einige Cluster zusammenfassen, sowie
107 9.2. FACHLICHE PERSPEKTIVE<br />
andere auflösen <strong>und</strong> dessen Dokumente per Hand anderweitig zuweisen, aber<br />
dies wäre sicherlich nicht bei jedem Cluster nötig - viele wären bereits automa-<br />
tisch richtig zusammengestellt <strong>und</strong> müssten nur noch in die richtige Kategorie<br />
einsortiert werden. Es wäre also eine Arbeitserleichterung für das Erstellen <strong>eines</strong><br />
Verzeichnisses.<br />
Als letzte Nutzungsmöglichkeit soll das sogenannte Scatter/Gather-Vorgehen<br />
angesprochen werden. Dies besteht letztendlich daraus, dass sich der Nutzer<br />
schrittweise seinem Ziel annähert <strong>und</strong> bei jedem Schritt neue Cluster angelegt<br />
werden, aus denen der Nutzer einige auswählt. Diese Auswahl wird dann wieder<br />
neu geclustert. Siehe dazu auch [HP96].<br />
9.2.2. Ausblick<br />
An dieser Stelle möchte der Autor über den Tellerrand hinausschauen <strong>und</strong> aktu-<br />
elle Ereignisse im Online Publishing ansprechen, die nicht direkt mit Clustering<br />
Techniken verknüpft sind, die im Zusammenhang mit zukünftigen Strategien für<br />
Online-Publishing jedoch beachtet werden sollten.<br />
Vertrieb<br />
Das Clustering selber hat in erster Linie Auswirkungen auf die Suche <strong>und</strong> kann<br />
wie angesprochen das Such-Ergebnis <strong>und</strong> -Erlebnis unabhängig vom gewählten<br />
Geschäftsmodell verbessern (erhöht somit den Wert des Angebots). An dieser<br />
Stelle soll kurz dargestellt werden, wie der Autor die Möglichkeiten des ISL<br />
im Zusammenhang mit dem Darbieten <strong>und</strong> Verkaufen von Informationen sieht.<br />
Die bisherigen hier betrachteten Angebote des ISL bestehen aus dem Online-<br />
Zugriff auf die Seabase Literaturdatenbank sowie aus den über den Online-Shop<br />
vertriebenen Publikationen wie das Jahrbuch, siehe auch Abschnitt 2.1 (Seite<br />
9).<br />
Was kann das ISL also tun, um neue K<strong>und</strong>en zu gewinnen? Es ist noch zu<br />
ermitteln, ob <strong>und</strong> inwieweit es sinnvoll ist, die Granularität des Angebots zu<br />
verkleinern <strong>und</strong> die großen Publikationen in einzelne Reviews oder auch einzel-<br />
ne Pakete aktueller Statistiken aufzubrechen. Diese könnten dann jeweils ein-<br />
zeln zum kostenpflichtigen Download angeboten werden. Dies sollte geschehen,<br />
sobald das Review geschrieben wurde oder sobald die Statistiken vollständig<br />
vorliegen, um einen Zeitvorteil gegenüber der großen Publikation zu erwirken.<br />
Schließlich ist jede der großen Publikationen beim Erscheinen schon mindestens
9.2. FACHLICHE PERSPEKTIVE 108<br />
einen halben Monat alt. Als Vorbild <strong>und</strong> Inspiration für diesen Vorschlag gilt<br />
SpringerLink 2 , siehe auch Abschnitt 3.3.2 (Seite 26). Der Springer-Verlag ver-<br />
kauft seine Publikationen dort nicht nur komplett, sondern hält für den (gut)<br />
zahlenden K<strong>und</strong>en auch einzelne Artikel bereit.<br />
Außerdem ist der Zugriff auf die Seabase Datenbank in eine kostenlose <strong>und</strong><br />
eine kostenpflichtige Zugangsart aufteilbar. Der kostenlose Zugang kann sich auf<br />
einige wenige Suchmittel (insbesondere keine Cluster) <strong>und</strong> auf eingeschränkte<br />
Ergebnisdetails beschränken. Auf diese Weise können Interessenten einen Ein-<br />
blick in das Angebot bekommen <strong>und</strong> - ähnlich wie bei der ACM, beschrieben<br />
in Abschnitt 3.3.3 (Seite 27) - für eine professionelle Nutzung der Datenbank<br />
auf eine kostenpflichtige Variante des Systems zurückgreifen.<br />
Blogging<br />
Es mag sich zudem zukünftig auszahlen, das derzeit aufkommende Publishing-<br />
modell der sogenannten Weblogs, kurz Blogs, zu beobachten <strong>und</strong> es auf seine<br />
wirtschaftlichen Potentiale hin zu überprüfen. Dieses Modell ließe sich beispiels-<br />
weise als Ersatz oder Erweiterung von Newslettern einsetzen. Blogs zeichnen<br />
sich durch ihre Aktualität aus <strong>und</strong> werden oft täglich erweitert. Sie referenzie-<br />
ren sich häufig gegenseitig mit Hilfe sogenannter ” Permalinks“. Ein solcher Link<br />
verweist direkt auf einen spezifischen Artikel <strong>eines</strong> Blogs. Besonders sind hier<br />
weniger die Inhalte oder die Eigenschaft der Verlinkung selber, die Besonderheit<br />
ist die standardisierte Technik. Der Aufwand, ein solches Weblog anzubieten,<br />
ist dadurch sehr stark reduziert worden. Es ist nicht einmal mehr die Kennt-<br />
nis der Beschreibungssprache HTML notwendig. Dadurch ist eine besondere<br />
Dynamik entstanden. Etwas Hintergr<strong>und</strong> über die typischen Inhalte von Blogs<br />
zeigt [BI04] auf, während der Artikel von Rebecca Blood in CACM [Blo04] eine<br />
sehr lesenswerte generelle Einführung in die Thematik gibt. Auch Nardi et al.<br />
[NSG04] geben eine ausführliche Charakterisierung des Blogging-Phänomens.<br />
Sie konzentrieren sich stärker darauf, welche Motivationen dahinterstehen, ein<br />
Blog zu führen.<br />
Es gibt noch wenig Hintergründe dazu, in welcher Form Blogs ihren Platz in<br />
der wirtschaftlich motivierten Strategie von Unternehmen einnehmen können.<br />
Aber das mag sich ändern. Gut geschriebene Blogs mit interessanten Inhalten<br />
ziehen Leser an <strong>und</strong> können nach der Meinung des Autors dieser Arbeit auch<br />
als Werbung für den Anbieter verstanden werden, sowie als Kommunikations-<br />
2 WWW Adresse: http://www.springerlink.com
109 9.2. FACHLICHE PERSPEKTIVE<br />
kanal des Unternehmens zu seinen K<strong>und</strong>en dienen. Die noch unbewiesene These<br />
des Autors lautet, dass ein Blog die Aufmerksamkeit der Nutzer auf das Un-<br />
ternehmen <strong>und</strong> seine Dienstleistungen lenken kann. Es bleibt noch offen, ob<br />
<strong>und</strong> wie sich weitere Erlöse mit diesem Modell generieren lassen. Aktuell wer-<br />
den die meisten Blogs von Privatpersonen ohne wirtschaftliche Hintergedanken<br />
verfasst. Andere stammen von Verlagen, die ihre Informationsangebote durch<br />
Blogs anreichern, wie zum Beispiel blog.computerwoche.de 3 <strong>und</strong> hiermit der-<br />
zeit Erfahrungen sammeln. Auch die Tagesschau hat inzwischen ein Blog, siehe<br />
blog.tagesschau.de 4 .<br />
In diesem Umfeld erscheinen in den letzten Wochen <strong>und</strong> Monaten zusätzlich<br />
Audio-Blogs, auch Podcasts genannt. Diese erlauben dem Nutzer, die Beiträge<br />
mit einem MP3-Player wie dem iPod von Apple 5 beispielweise im Zug oder im<br />
Auto nebenbei zu hören. Diese Technik erfreut sich immer größerer Beliebtheit.<br />
Schließlich hat man hier, in Zug <strong>und</strong> Auto, oft sehr viel Zeit, die auf diese Weise<br />
leicht gefüllt werden kann. Mit anderen Worten: hier haben Nutzer ein Zeitfen-<br />
ster, das noch nicht so vollständig mit Aktivitäten ausgefüllt ist. Nach Ansicht<br />
des Autors sind Nutzer in dieser Zeit eher dazu bereit, aus persönlichem Inter-<br />
esse heraus etwas anzuhören. Es gibt hierzu noch keine f<strong>und</strong>ierten Forschungen,<br />
es ist ein brandneues Phänomen. Als Einstieg für weitere Informationen sei hier<br />
Adam Curry’s Weblog auf www.curry.com 6 genannt.<br />
Noch brandaktueller sind sogenannte Videologs, kurz Vlogs. Diese erweitern<br />
den Blog-Gedanken um Audio <strong>und</strong> Video. Wie mögliche Modelle in diesem<br />
Bereich aussehen können, muss die Zukunft erst noch zeigen. Es gibt jedoch<br />
bereits eine steigende Anzahl von mobilen Geräten, die in der Lage sind, Fil-<br />
me (z.B. Nachrichtensendungen, Schulungsunterlagen oder Dokumentationen<br />
zu speziellen Themen) in hoher Qualität wiederzugeben. Dazu wird in Kürze<br />
wahrscheinlich auch der iPod gehören, <strong>und</strong> das obwohl Apple die letzten Jahre<br />
wiederholt betont hatte, dass Video für den iPod keine Rolle spielen würde.<br />
Die Playstation Portable 7 von Sony ist bereits in der Lage, Filme abzuspielen,<br />
andere Hersteller wie Archos haben ebenfalls geeignete Produkte im Portfolio,<br />
die dann ohne den Spielcharakter der Playstation auskommen <strong>und</strong> ein profes-<br />
sionelleres Image haben. In welcher Form sich ein Vlog in eine Firmenstrategie<br />
3 WWW Adresse: http://blog.computerwoche.de<br />
4 WWW Adresse: http://blog.tagesschau.de<br />
5 WWW Adresse: http://www.apple.com/de/ipod<br />
6 WWW Adresse: http://www.curry.com<br />
7 WWW Adresse: http://www.yourpsp.com
9.3. FAZIT 110<br />
einbinden lässt, werden zukünftige Forschungen zeigen müssen.<br />
Der Autor ist der Ansicht, dass das ISL diese neuartigen Technologien zwar<br />
nicht sofort bedenkenlos einsetzen, aber sie dennoch beobachten sollte. Die tech-<br />
nologischen Voraussetzungen für einen Podcast oder ein Blog sind gering, die<br />
nötige Software ist in den meisten Fällen kostenlos zu beziehen, der Einsatz ist<br />
nach einer kurzen Einarbeitungszeit unkompliziert.<br />
9.3. Fazit<br />
Diese Diplomarbeit hat die technischen <strong>und</strong> fachlichen Implikationen <strong>eines</strong> Clu-<br />
stering Ansatzes für ein Online Informationssystem wie das des ISL betrachtet.<br />
Dabei wurde klar, dass der Ansatz schlecht skaliert. Hoher Hauptspeicherbe-<br />
darf <strong>und</strong> Laufzeit verlangen generell nach leistungsfähiger Hardware. Die ex-<br />
ponentielle Laufzeitcharakteristik des hier verwendeten Clustering Algorithmus<br />
begrenzt die sinnvolle Menge an analysierten Dokumenten auf ca. 20.000.<br />
Fachlich wurde angesprochen, dass Clustering den Suchenden eine bessere<br />
Übersicht über die Struktur der im Bestand befindlichen Dokumente ermöglicht.<br />
Zudem wurde vorgeschlagen, eine automatisch erzeugte Cluster-Struktur als<br />
Basis für ein darauf aufbauendes manuell verwaltetes Verzeichnis zu verwenden.<br />
Zuletzt gab es noch den Hinweis, Blogs hinsichtlich der zukünftigen Publishing-<br />
Strategie des ISL zu beobachten. Hier mögen sich moderne <strong>und</strong> wenig aufwändi-<br />
ge Möglichkeiten in Bezug auf die technische Umsetzung auftun, um aktuelle<br />
Inhalte darzubieten.
Glossar<br />
API Abkürzung für Application Programming Interface. Dabei handelt es sich<br />
um eine Programmierschnittstelle, die eine Reihe von Funktionen oder<br />
Klassen umfasst, mit deren Hilfe auf Daten oder Funktionalitäten des<br />
jeweiligen Systems zugegriffen werden kann. Siehe auch 8 .<br />
Faust 5 Softwaresystem zur Erfassung von Literaturdaten, Hersteller ist Land-<br />
wehr Software GmbH.<br />
Lastenheft Das Lastenheft umschreibt die fachlichen Anforderungen des Auf-<br />
traggebers umfassend. Dabei geht es technisch jedoch nicht ins Detail. Die<br />
Norm DIN 69905 formuliert, es umfasse die Gesamtheit der Anforderun-<br />
gen des Auftraggebers an die Lieferungen <strong>und</strong> Leistungen <strong>eines</strong> Auftrag-<br />
nehmers. Kernaussage ist das Was im Gegensatz zum Wie.<br />
web-basiert Auf WWW-Techniken basierende Benutzerschnittstelle habend.<br />
Web-basierte Software wird somit in erster Linie mit dem Browser be-<br />
dient.<br />
relationale Datenbank Weit verbreiteter Datenbanktypus. Dem liegt der Ge-<br />
danke zugr<strong>und</strong>e, dass die zu speichernden Daten in Tabellen abgelegt <strong>und</strong><br />
über spezielle Schlüssel in Relation gesetzt werden. Siehe auch de.wikipedia.org/<br />
wiki/Relationale Datenbank 9<br />
MySQL Eine in kleineren Projekten wegen ihrer Einfachheit <strong>und</strong> ihrer Schnel-<br />
ligkeit sehr beliebte Open Source Datenbanksoftware (DBMS), die immer<br />
dann gerne zum Einsatz kommt, wenn die keine für das Unternehmen<br />
kritischen Daten gespeichert werden.<br />
PostgreSQL Eine weitere Open Source Datenbanksoftware, die nach eigenen<br />
Angaben mehr Funktionen als MySQL hat <strong>und</strong> besser mit komplexen Da-<br />
8 WWW Adresse: http://de.wikipedia.org/wiki/Application Programming Interface<br />
9 WWW Adresse: http://de.wikipedia.org/wiki/Relationale Datenbank
112<br />
tenmodellen umgehen kann. Sie positioniert sich ausdrücklich als Daten-<br />
bank für kritische Daten wegen der besseren Implementation von Trans-<br />
aktionssicherheit.<br />
Workflow Ein Workflow ist ein Prozess (alternativ Geschäftsvorfall oder allge-<br />
mein Vorgang), der aus einzelnen Aktivitäten aufgebaut ist, die sich auf<br />
Teile <strong>eines</strong> Geschäftsprozesses oder andere organisatorische Vorgänge be-<br />
ziehen. Quelle: de.wikipedia.org/wiki/Workflow 10 Speziell auf dieses Pro-<br />
jekt bezogen ist ein Workflow bzw. Vorgang ein in sich geschlossenes Ob-<br />
jekt, welches alle Aktionen, die in Bezug auf ein bestimmtes Dokument<br />
durchgeführt werden, zusammenfassend darstellt.<br />
Content Management System Ein CMS ist eine Software zur Verwaltung von<br />
beliebigen Inhalten. Häufig (so auch hier) wird der Begriff inzwischen<br />
synonym für WCMS (Web Content Management System) genutzt. Dieses<br />
konzentriert sich auf die Verwaltung der Inhalte von Websites. Siehe auch<br />
de.wikipedia.org/wiki/Cms 11<br />
Thesaurus Bei einem Thesaurus handelt es sich um eine Sammlung von Be-<br />
griffen. Das Wort stammt aus dem Lateinischen <strong>und</strong> bedeutet dort soviel<br />
wie Schatz. Anders als ein Wörterbuch beschreibt ein Thesaurus auch die<br />
Beziehung der Wörter untereinander. Der Thesaurus des ISL zum Beispiel<br />
erlaubt hierarchische Beziehungen <strong>und</strong> erlaubt mehrere Oberbegriffe.<br />
Inbox Mit Inbox ist in Bezug auf die Email-Kommunikation der Posteingang<br />
gemeint. Allgemein ist die Inbox ein Container, in dem alle neuen Nach-<br />
richten gelistet werden. Jeder Nutzer des Systems bekommt Zugriff auf<br />
eine solche Inbox, so dass er oder sie auch ohne Email am System teilneh-<br />
men kann.<br />
Token Als Token bezeichnet man im Zusammenhang mit Parsern zusammen-<br />
gehörige Zeichenketten, die als solche für die Syntax der analysierten Spra-<br />
che eine Bedeutung haben.<br />
Lexer Lexer ist eine Kurzform des Begiffs Lexikalischer Scanner. Dieser wird<br />
häufig als Vorstufe <strong>eines</strong> Parsers verwendet. Der Scanner nutzt einfache<br />
10 WWW Adresse: http://de.wikipedia.org/wiki/Workflow#Workflow<br />
11 WWW Adresse: http://de.wikipedia.org/wiki/Cms
113<br />
Zeichensetzungsregeln, um einen Text in Token einzuteilen. Welche To-<br />
ken extrahiert werden oder was überhaupt als Token gilt, hängt von der<br />
Syntax der Eingabe ab, die daher vorher definiert worden sein muss.<br />
Use-Case Der Begriff ” Use-Case“ ist oftmals gleichzusetzen mit dem im deut-<br />
schen Sprachgebrauch eher geläufigen Begriff ” Geschäftsprozess“ oder auch<br />
” Geschäftsvorfall“. Der Begriff ist in Zusammenhang mit der formellen visuellen<br />
Darstellungssprache UML aufgekommen.
114
Literaturverzeichnis<br />
[ABKS99] Ankerst, Mihael ; Breunig, Markus M. ; Kriegel, Hans-Peter ;<br />
Sander, Jörg:<br />
OPTICS: ordering points to identify the clustering structure.<br />
In: SIGMOD ’99: Proceedings of the 1999 ACM SIGMOD interna-<br />
tional conference on Management of data.<br />
New York, NY, USA : ACM Press, 1999. –<br />
ISBN 1–58113–084–8, S. 49–60<br />
[Bal98] Balzert, Helmut:<br />
Lehrbuch der Softwaretechnik - Software-Management, Software-<br />
Qualitätssicherung, Unternehmensmodellierung.<br />
Heidelberg, Berlin : Spektrum Akademischer Verlag GmbH, 1998<br />
[Bal00] Balzert, Helmut:<br />
Lehrbuch der Softwaretechnik - Software-Entwicklung.<br />
Heidelberg, Berlin : Spektrum Akademischer Verlag GmbH, 2000<br />
[Bat89] Bates, Marcia J.:<br />
The Design of Browsing and Berrypicking Techniques for the Online<br />
Search Interface.<br />
In: Online Review 13 (1989), October, Nr. 5, 407–424.<br />
http://www.gseis.ucla.edu/faculty/bates/berrypicking.<br />
html<br />
[BFR99] Bradley, Paul S. ; Fayyad, Usama M. ; Reina, Cory A.:<br />
Scaling EM (Expectation-Maximization) Clustering to Large Data-<br />
bases / Microsoft Research.<br />
Redmond, WA : Microsoft Corporation, October 1999 (Technical<br />
Report MSR–TR–98–35). –<br />
Forschungsbericht.<br />
Der vollständige Report kann mit Hilfe folgender
Literaturverzeichnis 116<br />
[BI04] Bar-Ilan, Judit:<br />
URL als PDF–Dokument heruntergeladen werden:<br />
http://citeseer.ist.psu.edu/bradley99scaling.html<br />
An outsider’s view on ”topic-oriented blogging”.<br />
In: WWW Alt. ’04: Proceedings of the 13th international World Wi-<br />
de Web conference on Alternate track papers & posters.<br />
New York, NY, USA : ACM Press, 2004. –<br />
ISBN 1–58113–912–8, S. 28–34<br />
[BKKS01] Breunig, Markus M. ; Kriegel, Hans-Peter ; Kröger, Peer ;<br />
Sander, Jörg:<br />
Data bubbles: quality preserving performance boosting for hierar-<br />
chical clustering.<br />
In: SIGMOD Record (ACM Special Interest Group on Management<br />
of Data) 30 (2001), Nr. 2, 79–90.<br />
http://citeseer.ist.psu.edu/breunig01data.html<br />
[Blo04] Blood, Rebecca:<br />
How blogging software reshapes the online community.<br />
In: Commun. ACM 47 (2004), Nr. 12, S. 53–55.<br />
http://dx.doi.org/10.1145/1035134.1035165. –<br />
DOI 10.1145/1035134.1035165. –<br />
ISSN 0001–0782<br />
[BM98] Baker, L. D. ; McCallum, Andrew K.:<br />
Distributional clustering of words for text classification.<br />
In: Croft, W. B. (Hrsg.) ; Moffat, Alistair (Hrsg.) ; Rijsbergen,<br />
Cornelis J. (Hrsg.) ; Wilkinson, Ross (Hrsg.) ; Zobel, Justin<br />
(Hrsg.): Proceedings of SIGIR-98, 21st ACM International Con-<br />
ference on Research and Development in Information Retrieval.<br />
ACM Press, New York, US, 96–103<br />
[CMK66] Cleverdon, Cyril W. ; Mills, Jack ; Keen, Michael:<br />
Factors determining the performance of indexing systems.<br />
Bedford, England : College of Aeronautics, Cranfield University,<br />
1966 (Aslib Cranfield research project Volume 1–Design, Part<br />
1–Text). –<br />
Forschungsbericht.<br />
Der vollständige Report kann mit Hilfe folgender
117 Literaturverzeichnis<br />
URL als PDF–Dokument heruntergeladen werden:<br />
http://hdl.handle.net/1826/861<br />
[DFL + 88] Dumais, S. T. ; Furnas, G. W. ; Landauer, T. K. ; Deerwester,<br />
S. ; Harshman, R.:<br />
Using latent semantic analysis to improve access to textual infor-<br />
mation.<br />
In: CHI ’88: Proceedings of the SIGCHI conference on Human fac-<br />
tors in computing systems, ACM Press, 1988. –<br />
ISBN 0–201–14237–6, S. 281–285<br />
[DGL89] Duff, I. S. ; Grimes, Roger G. ; Lewis, John G.:<br />
Sparse matrix test problems.<br />
In: ACM Trans. Math. Softw. 15 (1989), Nr. 1, S. 1–14.<br />
http://dx.doi.org/10.1145/62038.62043. –<br />
DOI 10.1145/62038.62043. –<br />
ISSN 0098–3500<br />
[DP88] Dörfler, Willibald ; Peschek, Werner:<br />
Einführung in die Mathematik für Informatiker.<br />
München, Wien : Carl Hanser Verlag, 1988<br />
[FPSS96] Fayyad, Usama M. ; Piatetsky-Shapiro, Gregory ; Smyth,<br />
Padhraic:<br />
From Data Mining to Knowledge Discovery in Databases.<br />
In: AI Magazine 17 (1996), Nr. 3, S. 37–54<br />
[GHJV96] Gamma, Erich ; Helm, Richard ; Johnson, Ralph ; Vlissides,<br />
John:<br />
Entwurfsmuster : Elemente wiederverwendbarer objektorientierter<br />
Software.<br />
Addison-Wesley-Longman, 1996. –<br />
ISBN 3893199500<br />
[HP96] Hearst, Marti A. ; Pedersen, Jan O.:<br />
Reexamining the cluster hypothesis: scatter/gather on retrieval re-<br />
sults.<br />
In: SIGIR ’96: Proceedings of the 19th annual international ACM<br />
SIGIR conference on Research and development in information<br />
retrieval.<br />
New York, NY, USA : ACM Press, 1996. –
Literaturverzeichnis 118<br />
ISBN 0–89791–792–8, S. 76–84<br />
[ISL01] Vernetzungspotenziale innerhalb der maritimen Wertschöpfungsket-<br />
ten am Schiffbau-, Seeschifffahrts- <strong>und</strong> Hafenstandort Deutsch-<br />
land.<br />
Version: November 2001.<br />
http://www.bmwa.b<strong>und</strong>.de/Redaktion/Inhalte/Pdf/Homepage<br />
2Fdownload 2Fbranchenfocus 2FVernetzungspotenziale.<br />
pdf,property=pdf.pdf. –<br />
Endbericht<br />
[JH04] Johnson, Rod ; Hoeller, Juergen:<br />
Expert One-on-One J2EE Development without EJB.<br />
John Wiley & Sons, 2004. –<br />
ISBN 0764558315<br />
[KL51] Kullback, S. ; Leibler, R.A.:<br />
On Information and Sufficiency.<br />
In: The Annals of Mathematical Statistics 22 (1951), March, Nr. 1,<br />
S. 79–86<br />
[Lew96] Lewis, David D.:<br />
Reuters-21578, Distribution 1.0.<br />
http://www.daviddlewis.com/resources/testcollections/<br />
reuters21578.<br />
Version: 1996. –<br />
Copyright resides with Reuters Ltd.<br />
[LGXZ02] Liu, Xin ; Gong, Yihong ; Xu, Wei ; Zhu, Shenghuo:<br />
Document clustering with cluster refinement and model selection<br />
capabilities.<br />
In: SIGIR ’02: Proceedings of the 25th annual international ACM<br />
SIGIR conference on Research and development in information<br />
retrieval, ACM Press, 2002. –<br />
ISBN 1–58113–561–0, S. 191–198<br />
[Luh58] Luhn, H. P.:<br />
The automatic creation of literature abstracts.<br />
In: IBM Journal of Research and Development 2 (1958), Nr. 2, S.<br />
159–165. –
119 Literaturverzeichnis<br />
ISSN 0018–8646<br />
[Mil95] Miller, George A.:<br />
WordNet: a lexical database for English.<br />
In: Commun. ACM 38 (1995), Nr. 11, S. 39–41.<br />
http://dx.doi.org/10.1145/219717.219748. –<br />
DOI 10.1145/219717.219748. –<br />
ISSN 0001–0782<br />
[MM90] Manber, Udi ; Myers, Gene:<br />
Suffix arrays: a new method for on-line string searches.<br />
In: SODA ’90: Proceedings of the first annual ACM-SIAM symposi-<br />
um on Discrete algorithms.<br />
Philadelphia, PA, USA : Society for Industrial and Applied Mathe-<br />
matics, 1990. –<br />
ISBN 0–89871–251–3, S. 319–327<br />
[NSG04] Nardi, Bonnie A. ; Schiano, Diane J. ; Gumbrecht, Michelle:<br />
Blogging as social activity, or, would you let 900 million people read<br />
your diary?<br />
In: CSCW ’04: Proceedings of the 2004 ACM conference on Com-<br />
puter supported cooperative work.<br />
New York, NY, USA : ACM Press, 2004. –<br />
ISBN 1–58113–810–5, S. 222–231<br />
[Osi03] Osiński, Stanis̷law:<br />
An Algorithm For Clustering Of Web Search Results, Poznań Uni-<br />
versity of Technology, Diplomarbeit, June 2003<br />
[RM02] Rosenfeld, Louis ; Morville, Peter ; LeJeune, Lorrie (Hrsg.):<br />
Information Architecture for the World Wide Web.<br />
2.<br />
O’Reilly Media Inc., 2002<br />
[RN95] Russell, Stuart J. ; Norvig, Peter:<br />
Artificial Intelligence: A Modern Approach.<br />
Englewood Cliffs, NJ : Prentice-Hall, 1995<br />
[Sch02] Schienmann, Bruno:<br />
Kontinuierliches Anforderungsmanagement - Prozesse, Techniken,<br />
Werkzeuge.
Literaturverzeichnis 120<br />
München/Deutschland : Addison Wesley Verlag, ein Imprint der<br />
Pearson Education Deutschland GmbH, 2002<br />
[Sha48] Shannon, Claude E.:<br />
A Mathematical Theory of Communication.<br />
In: The Bell System Technical Journal 27 (1948), July, October, S.<br />
379–423, 623–656<br />
[Shi05] Shirky, Clay:<br />
Ontology is Overrated: Categories, Links, and Tags.<br />
http://shirky.com/writings/ontology overrated.html.<br />
Version: 2005. –<br />
gesehen am 10. August 2005<br />
[SJ72] Sparck Jones, Karen:<br />
A statistical interpretation of term specificity and its application in<br />
retrieval.<br />
In: Journal of Documentation 28 (1972), Nr. 1, S. 11–21. –<br />
ISSN 0022 0418<br />
[TAAK04] Teevan, Jaime ; Alvarado, Christine ; Ackerman, Mark S. ;<br />
Karger, David R.:<br />
The perfect search engine is not enough: a study of orienteering<br />
behavior in directed search.<br />
In: CHI ’04: Proceedings of the 2004 conference on Human factors<br />
in computing systems, ACM Press. –<br />
ISBN 1581137028, 415–422<br />
[VR79] Van Rijsbergen, C. J.:<br />
Information Retrieval, 2nd edition.<br />
Version: 1979.<br />
http://www.dcs.gla.ac.uk/Keith/Preface.html. –<br />
Online Ressource, Abruf: 2005-07-07<br />
[WRR03] Kapitel Singular value decomposition and principal component ana-<br />
lysis.<br />
In: Wall, Michael E. ; Rechtsteiner, Andreas ; Rocha, Luis M.:<br />
A Practical Approach to Microarray Data Analysis.<br />
Norwell, MA : Kluwer, 2003, S. 99–109<br />
[XLG03] Xu, Wei ; Liu, Xin ; Gong, Yihong:
121 Literaturverzeichnis<br />
Document clustering based on non-negative matrix factorization.<br />
In: SIGIR ’03: Proceedings of the 26th annual international ACM<br />
SIGIR conference on Research and development in informaion<br />
retrieval.<br />
New York, NY, USA : ACM Press, 2003. –<br />
ISBN 1–58113–646–3, S. 267–273<br />
[YP97] Yang, Yiming ; Pedersen, Jan O.:<br />
A comparative study on feature selection in text categorization.<br />
In: Fisher, Douglas H. (Hrsg.): Proceedings of ICML-97, 14th In-<br />
ternational Conference on Machine Learning.<br />
Nashville, US : Morgan Kaufmann Publishers, San Francisco, US,<br />
1997, S. 412–420<br />
[ZD04] Zhang, Dell ; Dong, Yisheng:<br />
Semantic, Hierarchical, Online Clustering of Web Search Results.<br />
In: Yu, Jeffrey X. (Hrsg.) ; Lin, Xuemin (Hrsg.) ; Lu, Hongjun<br />
(Hrsg.) ; Zhang, Yanchun (Hrsg.): Advanced Web Technologies<br />
and Applications 6th Asia-Pacific Web Conference, APWeb 2004<br />
Bd. 3007.<br />
Springer-Verlag GmbH. –<br />
ISBN 3–540–21371–6, 69–78
Literaturverzeichnis 122
Index<br />
Abonnement, 26<br />
Abstandsmaß, 63<br />
Algorithmus, 47<br />
Clustering, allg., 66<br />
LSI, 63<br />
Analyse, 49<br />
Anbieter, 3<br />
Angebot<br />
interessantes, 11<br />
Anschaltzeit, 17, 19<br />
Ansicht, 44<br />
Attribut, 47<br />
Auktion<br />
von Schiffen, 23<br />
Benachrichtigungsdienst, 11<br />
Benutzerschnittstelle, 43<br />
Bewertungsfunktion, 54<br />
Blog, 108<br />
boolsche Logik, 45<br />
Boolscher Operator, 21<br />
Browser, 45<br />
Cluster, 47, 106<br />
Clustering, 43, 47, 51, 64, 66<br />
hierarchisch, 104<br />
Konzept, 43<br />
Laufzeit, 101<br />
Qualität, 102<br />
Clusty, 29, 44<br />
Computerwoche, 109<br />
Data Bubbles, 104<br />
Data Mining, 47, 55, 56<br />
Dateiformat, 35<br />
Datenbank, 15–17, 19, 47<br />
Literatur-, 9<br />
Datenmenge, 54, 101<br />
Datenmodell, 37<br />
Design, 43<br />
Deskriptor, 36, 37<br />
Dienstleistung, 3<br />
Dimensionalität, 58, 59<br />
Distributional Clustering, 64<br />
DMKN, 20<br />
Dokumentausgabegebühr, 17, 19<br />
Dokumentenarchiv, 21<br />
Download, 107<br />
Drucken, 44<br />
Effektivität (von IR), 53<br />
Entropie, 60<br />
Erfassung, 17, 27, 37<br />
Ergebnisliste, 44, 106<br />
Erwartungswert, 61, 66<br />
Evaluation, 55<br />
Export, 37, 46<br />
Faust, 35, 37, 47
Index 124<br />
Feature, 46, 49, 57, 58, 61, 66<br />
Feld, 47<br />
Fireball, 52<br />
FIZ Karlsruhe, 19<br />
Forschungsergebnisse, 23<br />
Forum, 20<br />
Framework, 30<br />
Frequenz, 61<br />
Gaußsche Verteilung, 66<br />
Gaussian Mixture Model, 67<br />
Gebraucht-Schiffe, 23<br />
Geschäftsmodell, 107<br />
Gewichtung, 59<br />
Google, 45, 52<br />
Granularität des Angebots, 107<br />
Hierarchie, 43<br />
Homepage, 26<br />
HTML, 108<br />
Index, 49<br />
Individualisierung, 10<br />
Information Gain, 59<br />
Information Retrieval, 51, 60<br />
Informationsangebote, 109<br />
Informationsbeschaffung, 9<br />
Informationsgehalt, 59<br />
Informationsgewinn, 59<br />
Informationssystem, 3<br />
Integration, 27<br />
Interesse (persönlich), 109<br />
Interpretation, 47, 56<br />
Inverse Document Frequency, 59<br />
iPod von Apple, 109<br />
ISL, 11, 30<br />
Jahrbuch, 107<br />
Journal, 26, 27<br />
K-Means, 66<br />
Künstliche Intelligenz (KI), 56<br />
Kapazität, 60<br />
Kategorisierung, 30<br />
Klassifikation, 29, 57, 59, 60, 62, 66<br />
Knowledge Discovery from Databa-<br />
ses, 51<br />
Kommunikationskanal, 109<br />
Konferenzprotokoll, 27<br />
Konkurrenz, 15<br />
Kontext, 52, 58<br />
Korrektheit, 60<br />
Korrelation, 61<br />
Kriterien, 15<br />
Kullback-Leibler, 61<br />
Kullback-Leibler-Divergenz, 61<br />
K<strong>und</strong>enprofil, 11<br />
Kurzreferat, 37<br />
Laufzeitcharakteristik, 47<br />
Lernphase, 62<br />
Linearkombination, 63<br />
LINGO, 30<br />
linguistisch (Texte erfassen), 52<br />
Literaturhinweis, 3<br />
LSI, 30, 104<br />
Möglichkeiten, 106<br />
Matrix, 31, 63<br />
orthogonal, 63<br />
Mitgliedschaft, 27<br />
Model-based Clustering, 66<br />
MP3-Player, 109<br />
Mutual Information, 61<br />
Nachfrage, 11
125 Index<br />
Netacademy, 23<br />
Netzwerk-Lizenz, 27<br />
Netzwerkeffekt, 15<br />
Newsletter, 108<br />
Normalverteilung, 66<br />
Nutzwert, 16<br />
Online Strategien, 3<br />
Online-Publishing, 107<br />
Online-Shop, 107<br />
OPTICS, 104<br />
Overture, 52<br />
Pauschalpreis, 17<br />
Permalink, 108<br />
Personalisierung, 11, 43, 44<br />
Playstation Portable, 109<br />
Portal, 26, 27, 29<br />
Potential, 108<br />
Potentiale, 106<br />
Precision, 53<br />
Preisliste, 19<br />
Preissystem, 19<br />
Preprocessing, 46, 55<br />
Profil, 44<br />
Prototyp, 43<br />
Prozess, 55<br />
Publikation, 23, 26, 27<br />
Qualität, 22, 47<br />
Rauschen, 60<br />
Recall, 53<br />
Recherche, 3, 11, 36<br />
Repräsentation, 52, 56, 57<br />
Reuters, 101<br />
Scatter/Gather, 107<br />
Schlagwort, 3, 16, 17, 22, 23<br />
Schwellenwert, 59<br />
Seabase, 107<br />
Selektion, 46, 55<br />
Shannon, 60<br />
Signal-to-Noise-Ratio, 60<br />
Singular Value Decomposition (SVD),<br />
63, 103<br />
Skalierbarkeit, 104<br />
Sony, 109<br />
Stemming, 58<br />
Stoppwort, 58, 103<br />
Strategie, 3, 10, 109<br />
Studie, 9<br />
Suchanfrage, 37<br />
Suche, 17, 63<br />
Suchfunktion, 21, 22, 26<br />
Suchmaschine, 30, 52<br />
Suchmechanismus, 27<br />
Tagesschau, 109<br />
Tellerrand, 107<br />
Textkorpus, 101<br />
TF-IDF, 59<br />
Thesaurus, 17, 21–23, 37, 47, 57<br />
Threshold, 66<br />
Trainingsmenge, 62<br />
Transformation, 46, 56<br />
Varianz, 66<br />
Vektor, 47, 58, 59<br />
Vektorraum, 62<br />
Verkaufen, 107<br />
Verzeichnis, 22, 106<br />
Videolog, 109<br />
virtuelle Gemeinschaft, 15<br />
Vivísimo, 29
Index 126<br />
Vlog, 109<br />
Volltext, 11, 21, 27<br />
Wahrscheinlichkeit, 53, 61<br />
Wahrscheinlichkeitsdichte, 66<br />
Wahrscheinlichkeitsverteilung, 61, 62<br />
Weblog, 108<br />
Werbe-Möglichkeit, 22<br />
Werbung, 16<br />
Wertschöpfung, 15<br />
Wissen, 20<br />
WordNet, 105<br />
Wortstamm, 58<br />
Zeitfenster, 109<br />
Zugangsart, 108