07.01.2013 Aufrufe

Konzeption und Implementierung eines ... - Stephan, Daniel

Konzeption und Implementierung eines ... - Stephan, Daniel

Konzeption und Implementierung eines ... - Stephan, Daniel

MEHR ANZEIGEN
WENIGER ANZEIGEN

Erfolgreiche ePaper selbst erstellen

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

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

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!