Konzeption und Implementierung eines - Daniel Stephan

Konzeption und Implementierung eines - Daniel Stephan

Konzeption und Implementierung eines Clusteringmechanismus f¨ ur ein Online Informationssystem Diplomarbeit Daniel Stephan [email protected] ...

1MB Sizes 0 Downloads 4 Views

Recommend Documents

Konzeption und prototypische Implementierung eines BigData
Ausdrucks innerhalb eines Dokuments (Term-Frequency, auch Suchwortdichte bezeichnet), wird dabei jedoch mit der Vorkomme

Konzeption, Implementierung und Anwendung eines - KOBRA
06.07.2016 - Wert für erste Station/Reihe/Stufe/Welle ..... thoden mit ihren eingebauten Erfahrungswerten sind nach [CA

Konzeption und Implementierung eines Interpreters für die
14.05.2007 - 101. Abbildungsverzeichnis. 116. Tabellenverzeichnis. 117. Listings. 119 ...... 9In Ada wird der Typ unsign

Evaluierung und Implementierung eines I2C Bus-Systems
27.12.2009 - eine Pulsweitenmodulation (PWM) umgesetzt (s. Abs. 2.4). Die Kommunikation zwischen diesen zwei Kompo- nent

Chancen und Risiken der Implementierung eines
Raffée, Hans; Fritz, Wolfgang; Wiedmann, Klaus-Peter: Marketing für öffentliche. Betriebe ..... Loßberg, in: Volkshochsc

Konzeption und Prototyping eines multilingualen Glossars
sche Dreieck nach Ogden und Richards3 mit der mentalen Interpretation eines Symbols. Hieraus lässt sich ableiten, dass

Konzeption und Evaluation eines hybriden - OPUS Würzburg
20.04.2012 - V ARsta k . Da eine Komponente sich nicht gleichzeitig in verschiedenen stationären Zuständen befinden kann

Tutoraufgabe 1 (Implementierung eines ADTs):
Vorlesung vorgestellten doppelt verketteten Liste (List). Es dürfen ... void addChild(Element e, int key) fügt dem geg

Konzeption und Implementierung einer Datenloggersoftware für USB
34 -. 6.2.1. Online-Modus . ...... des Gerätes angewendet werden soll) sowie Anweisungen (z.B.: MODE zum Setzen ......

Chancen und Risiken der Implementierung eines - bei DuEPublico
Raffée, Hans; Fritz, Wolfgang; Wiedmann, Klaus-Peter: Marketing für öffentliche. Betriebe ..... Loßberg, in: Volkshochsc

Konzeption und Implementierung eines Clusteringmechanismus f¨ ur ein Online Informationssystem Diplomarbeit

Daniel Stephan [email protected]

12. August 2005

yellow pages job offers

experts

networking mail instant messaging

communication

group mail/forum knowledge

group chat tables

numeric textual

Recommendations

graphic

graphs

visually textually

share bibliographies

bibster

share documents

docster

ordering by similarity

list tree

search within search results add links to the cluster(s) the doc. belongs to Orienteering

related docs in the net

gpg

graph

Navigation

binary

auth+xml+doc=sxdoc

Usage based Content based

data entries

images

step by step navigating navigate to similar documents

authenticate doc

p2p

publish doc to the net search the net

search by example

desktop search vivisimo

xml+doc=xdoc archive map a:b

classify

multiple vocabularies

Clustering

bmj.com

Teleporting

DataMining

nutch specialized system

crawl and index only certain websites

clusty.com

aaas.org

Paperball

forward query to specialized system

grouping search results

list clusters to in- or exclude from search Search Engine

meta search

formulate query

crawl

flat

create set

classify page in cluster

hierarchical

name sets Classification protégé

java

noname sets alternative thesaurus

rich client

automate procedure

eclipse rcp .NET prediction postnuke

purchase need (if like a then like b)

PHP goal

webobjects springframework struts

infer information from data technology

jung

weka jambalaya

description

web client java

webwork 2

judge

information trends

java

algorithms

provide overview

aid navigation

ii

Inhaltsverzeichnis

I.

Einleitung

1

¨ 1. Uberblick u ¨ber Inhalt und Prozesse

3

1.1. Einleitung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

3

1.2. Der Prozess . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

4

1.3. Entwicklungsumgebung . . . . . . . . . . . . . . . . . . . . . . .

5

2. Business Analyse

9

2.1. Ausgangssituation . . . . . . . . . . . . . . . . . . . . . . . . . .

9

2.2. Ziele . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 2.3. Herausforderungen . . . . . . . . . . . . . . . . . . . . . . . . . . 11 3. Marktanalyse

15

3.1. Kriterien Auswahl . . . . . . . . . . . . . . . . . . . . . . . . . . 15 3.2. Konkurrenten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 3.2.1. FIZ-Technik e.V. . . . . . . . . . . . . . . . . . . . . . . . 17 3.2.2. FIZ Karlsruhe / STN Online Services . . . . . . . . . . . 19 3.2.3. Deutsches Maritimes Kompetenz Netz (DMKN) . . . . . 20 3.2.4. HWWA - Hamburgisches Welt-Wirtschafts-Archiv . . . . 20 3.2.5. MarineTalk . . . . . . . . . . . . . . . . . . . . . . . . . . 22 3.2.6. MarineNet

. . . . . . . . . . . . . . . . . . . . . . . . . . 23

3.3. Wissenschaftliche Angebote . . . . . . . . . . . . . . . . . . . . . 23 3.3.1. Netacademy, a scientific community . . . . . . . . . . . . 23 3.3.2. SpringerLink . . . . . . . . . . . . . . . . . . . . . . . . . 26 3.3.3. ACM Portal . . . . . . . . . . . . . . . . . . . . . . . . . . 27 3.4. Technisch Relevantes . . . . . . . . . . . . . . . . . . . . . . . . . 29 3.4.1. Clusty / Viv´ısimo . . . . . . . . . . . . . . . . . . . . . . 29 3.4.2. carrot2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30

Inhaltsverzeichnis

iv

II. Definition

33

4. Technische Analyse

35

4.1. Ist-Analyse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 4.1.1. Komponenten und Schnittstellen . . . . . . . . . . . . . . 35 4.1.2. Prozesse . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36 4.1.3. Datenmodell . . . . . . . . . . . . . . . . . . . . . . . . . 37 4.1.4. Einschr¨ ankungen . . . . . . . . . . . . . . . . . . . . . . . 42 4.2. Prototyp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43 4.2.1. Oberfl¨ achenprototyp . . . . . . . . . . . . . . . . . . . . . 43 4.2.2. Prozess: Cluster erzeugen . . . . . . . . . . . . . . . . . . 45 4.2.3. Datenmodell . . . . . . . . . . . . . . . . . . . . . . . . . 47 4.2.4. Komponenten und Schnittstellen . . . . . . . . . . . . . . 47 5. Wissenschaftliche Analyse

51

5.1. Information Retrieval

. . . . . . . . . . . . . . . . . . . . . . . . 51

5.2. Knowledge Discovery in Databases . . . . . . . . . . . . . . . . . 54 5.3. Repr¨ asentation von Dokumenten . . . . . . . . . . . . . . . . . . 56 5.3.1. Einordnung in Situation des ISL . . . . . . . . . . . . . . 57 5.3.2. Das Dokument als Wortsack (aka word-bag) . . . . . . . . 57 5.3.3. Methoden f¨ ur die Beschr¨ankung auf wesentliche Features

59

5.3.4. Latent Semantic Indexing . . . . . . . . . . . . . . . . . . 62 5.4. Clustering . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66

III. Umsetzung

69

6. Statisches Modell

71

6.1. Data Objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71 6.2. Data Access Objects . . . . . . . . . . . . . . . . . . . . . . . . . 71 6.3. Data Access Commands . . . . . . . . . . . . . . . . . . . . . . . 75 7. Dynamisches Modell

83

7.1. Stoppworte finden . . . . . . . . . . . . . . . . . . . . . . . . . . 83 7.2. Term-Dokument-Matrix erstellen . . . . . . . . . . . . . . . . . . 84 7.3. Matrix Berechnungen

. . . . . . . . . . . . . . . . . . . . . . . . 87

7.4. Cluster Analyse . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89 7.5. Cluster Benennung und Matrizen . . . . . . . . . . . . . . . . . . 90

v

Inhaltsverzeichnis

8. Verwendung des Programms

93

8.1. Installation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93 8.2. Benutzeroberfl¨ ache . . . . . . . . . . . . . . . . . . . . . . . . . . 94 8.3. Konfiguration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96

IV. Abschluss 9. Ergebnisse und Fazit

99 101

9.1. Technische Perspektive . . . . . . . . . . . . . . . . . . . . . . . . 101 9.1.1. Testdaten . . . . . . . . . . . . . . . . . . . . . . . . . . . 101 9.1.2. Laufzeit . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101 9.1.3. Qualit¨ at . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102 9.1.4. Ausblick . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104 9.2. Fachliche Perspektive . . . . . . . . . . . . . . . . . . . . . . . . . 106 9.2.1. Potentiale . . . . . . . . . . . . . . . . . . . . . . . . . . . 106 9.2.2. Ausblick . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107 9.3. Fazit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110 Glossar

111

Literaturverzeichnis

115

Inhaltsverzeichnis

vi

Tabellenverzeichnis 4.1. Dataobject . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 4.2. Dataobject (Fortsetzung) . . . . . . . . . . . . . . . . . . . . . . 41 9.1. Laufzeit bei 521 Dokumenten . . . . . . . . . . . . . . . . . . . . 102 9.2. Laufzeit bei 1684 Dokumenten . . . . . . . . . . . . . . . . . . . 102

Tabellenverzeichnis

viii

Abbildungsverzeichnis 1.1. Das Prototypen-Modell . . . . . . . . . . . . . . . . . . . . . . .

5

2.1. ISL-Strategie-Komponenten . . . . . . . . . . . . . . . . . . . . . 10 3.1. Vergleichstabelle . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 3.2. Beispiel einer MarineNet Suchmaske . . . . . . . . . . . . . . . . 24 3.3. Inhalt von Drewry, angeboten von MarineNet . . . . . . . . . . . 25 3.4. Erweiterte Suche im ACM Portal . . . . . . . . . . . . . . . . . . 28 4.1. System-Komponenten . . . . . . . . . . . . . . . . . . . . . . . . 36 4.2. Erfassungsprozess . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 4.3. Rechercheprozess . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 4.4. Screenshot der Suchmaske . . . . . . . . . . . . . . . . . . . . . . 41 4.5. Recherche-Formular . . . . . . . . . . . . . . . . . . . . . . . . . 44 4.6. Verweis auf a ¨hnliche Dokumente . . . . . . . . . . . . . . . . . . 45 4.7. Clustering Prozess . . . . . . . . . . . . . . . . . . . . . . . . . . 46 4.8. Datenstruktur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48 4.9. System-Komponenten . . . . . . . . . . . . . . . . . . . . . . . . 48 5.1. Tabellarische Darstellung aus [VR79]

. . . . . . . . . . . . . . . 54

5.2. KDD Prozess von Fayyad et al. . . . . . . . . . . . . . . . . . . . 55 6.1. Datenobjekte, relationale Sicht . . . . . . . . . . . . . . . . . . . 72 6.2. Datenobjekte, objektorientierte Sicht, Teil 1 . . . . . . . . . . . . 73 6.3. Datenobjekte, objektorientierte Sicht, Teil 2 . . . . . . . . . . . . 74 6.4. DAO Struktur, Teil 1 . . . . . . . . . . . . . . . . . . . . . . . . . 76 6.5. DAO Struktur, Teil 2 . . . . . . . . . . . . . . . . . . . . . . . . . 77 6.6. DAO Struktur, Teil 3 . . . . . . . . . . . . . . . . . . . . . . . . . 78 6.7. Data Access Commands, Teil 1 . . . . . . . . . . . . . . . . . . . 79 6.8. Data Access Commands, Teil 2 . . . . . . . . . . . . . . . . . . . 80 6.9. Beispiel: BatchAssign Command . . . . . . . . . . . . . . . . . . 81

Abbildungsverzeichnis

x

7.1. Wort H¨ aufigkeiten . . . . . . . . . . . . . . . . . . . . . . . . . . 84 7.2. Ablauf Text Analyse . . . . . . . . . . . . . . . . . . . . . . . . . 85 7.3. Ablauf Matrix Berechnung . . . . . . . . . . . . . . . . . . . . . . 87 7.4. Ablauf Cluster Analyse . . . . . . . . . . . . . . . . . . . . . . . 89 7.5. Klassendiagramm Cluster Algorithmen . . . . . . . . . . . . . . . 91 7.6. Klassendiagramm f¨ ur Matrizen und SVD Ergebnisse . . . . . . . 92 8.1. Bildschirmfoto des Cluster Browsers . . . . . . . . . . . . . . . . 94 8.2. Bildschirmfoto des Men¨ us . . . . . . . . . . . . . . . . . . . . . . 95 8.3. Ausschnitt der Komponentenkonfiguration . . . . . . . . . . . . . 96

Teil I.

Einleitung

¨ 1. Uberblick u ¨ber Inhalt und Prozesse 1.1. Einleitung Diese Diplomarbeit entsteht in Zusammenarbeit mit dem Institut f¨ ur Seeverkehrswirtschaft und Logistik (ISL) im Rahmen der neuen sich dort entwickelnden Online-Strategien. Aus den Gespr¨achen, die mit dem ISL gef¨ uhrt wurden, kristallisierte sich heraus, dass sich das ISL unter anderem als Anbieter f¨ ur spezialisierte Informationen sehen und auf dieser Basis neuartige Dienstleistungen generieren m¨ ochte. Das derzeitig existierende Angebot umfasst die Literaturdatenbank Seabase, dabei soll es jedoch keinesfalls bleiben. Es ist geplant, zus¨atzlich zu den Literaturhinweisen aus dem Fundus des ISL weitere Quellen zu erfassen und verst¨ arkt Online-Resourcen oder gar Informationen von Partnerunternehmen einzubeziehen. Zudem ergibt die ausschließliche Ausrichtung des ISL auf Literaturhinweise aus den Bereichen Seewirtschaft und Logistik ein vergleichsweise konzentriertes System aus Schlagworten und zugeh¨origen Literaturhinweisen, so dass deren Unterschiede subtil sind. Die Schwierigkeit f¨ ur die Nutzer besteht darin, die richtigen Schlagworte oder Deskriptoren auszuw¨ahlen, damit die Ergebnisse wirklich f¨ ur das Suchziel relevant sind. Bei gr¨oßerem Umfang der angebotenen Information w¨achst die Anforderung an die Methodik der Recherche, auch bei großen Datenmengen hilfreiche Ergebnisse zu erm¨oglichen. Aus diesem Grund entschied man sich daf¨ ur, den Kontext der Arbeit bei der Recherchemethodik anzusiedeln. Die Arbeit zielt nun darauf ab, einen innovativen Recherche-Mechanismus zu entwickeln. Mehr zum ISL findet sich in Abschnitt 2.1 (Seite 9). Die Arbeit beginnt zun¨ achst mit einer generellen Betrachtung der Umgebung, in der sich das Informationssystem des ISL befindet. Dazu wurden Angebote anderer Firmen kurz betrachtet und beschrieben, um zeigen zu k¨onnen, wie sich das Angebot des ISL (in Bezug auf die Suchmethodik) im Vergleich darstellt. Dies geschieht in Kapitel 3 (Seite 15). In Kapitel 6 (Seite 71) wird die Architektur der technischen Realisierung

1.2. DER PROZESS

4

beschrieben und Kapitel 9 (Seite 101) erl¨autert die erzielten Ergebnisse und gibt einen Ausblick auf weitere M¨oglichkeiten. Sofern in den Formulierungen dieser Arbeit der Nutzer oder beispielsweise der Suchende angesprochen wird, so sei hiermit versichert, dass nat¨ urlich auch weibliche Suchende und Nutzer, sprich Nutzerinnen, mit eingeschlossen sind.

1.2. Der Prozess Im Rahmen dieser Arbeit wird ermittelt, wie ein Clustering Verfahren eingesetzt werden kann, um Rechercheergebnisse zu optimieren. Dabei wird eine m¨ogliche L¨osung vorgeschlagen, und f¨ ur diese ein Prototyp (vgl. Seite 116 in [Bal98]) entworfen und dargestellt. Der Prototyp soll die Funktionsf¨ahigkeit des Algorithmus an einem Beispiel mit echten Daten des ISL demonstrieren. Der Ablauf der Arbeit orientiert sich wegen der Forschungsnatur am Prototypen-ProzessModell (vgl. Seiten 114ff in [Bal98]). Das Modell wird laut Quelle unter anderem dann verwendet, wenn sich die Realisierbarkeit nicht vorab garantieren l¨asst. Das Modell erlaube es zudem, den Auftraggeber von der prinzipiellen Durchf¨ uhrbarkeit der Idee zu u ¨berzeugen. Beides sind im Kontext dieser Arbeit zutreffende und u ¨berzeugende Argumente. Abbildung 1.1 gibt die Darstellung der Quelle wieder. Der hellblaue Bereich kennzeichnet die Aspekte, die das Prototypen-Modell anderen Modellen hinzuf¨ ugt. Die Gesamtgrafik zeigt eine Erg¨anzung der traditionellen Modelle um ” Prototypen.“ (vgl. Seite 118 in [Bal98]) Die vier Kernprozesse finden sich in den traditionellen Modellen ebenso wieder, werden aber jeweils durch PrototypenAspekte erweitert und sind deshalb nur zum Teil in den blauen Bereich gezeichnet. Die Quelle merkt an, eine Voraussetzung f¨ ur ein erfolgreiches Umsetzen des Modells sei die aktive Beteiligung der Endbenutzer am Prototyping-Prozess, erw¨ ahnt aber ebenso, dass die Vorgehensweise letztlich von der untersuchten Fragestellung abh¨ angt. Im Rahmen dieser Diplomarbeit wurde sicherlich weniger Kontakt zu den Nutzern gepflegt, als dies die Erdenker des Modells im Kopf hatten. Aber schließlich handelt es sich hierbei um eine Diplomarbeit und um kein (wirtschaftlich motiviertes) Softwareprojekt. Das zu erreichende Ziel ist viel eher die Darstellung der generellen Anwendbarkeit in dem konkreten Umfeld des ISL. Diese Arbeit vollzieht also keinen vollst¨andigen Entwicklungsprozess, an des-

5

1.3. ENTWICKLUNGSUMGEBUNG

Kunde

Benutzer

Aquirieren

Erweiterungen

Prototypen-Modell

Demo Prototyp

Prototyp

Labormuster

Pilotsystem

Planen

Definieren

Entwerfen

Implementieren

Durchführbarkeitsstudie

Produktmodell

Änderungen

Produktarchitektur

Produkt

Änderungen

Abbildung 1.1.: Das Prototypen-Modell sen Ende ein einsatzf¨ ahiges Produkt steht, denn dies w¨ urde den Rahmen der Diplomarbeit sprengen. Der Autor hat sich stattdessen auf die ersten Schritte beschr¨ ankt. Es wird geplant, definiert und entworfen, jedoch nicht implementiert. Dementsprechend beschr¨ankt sich die Implementierungsleistung auf die erstellten Prototypen und Labormuster. Es gibt einen Demo-Prototypen, der in Abschnitt 4.2 (Seite 43) dargestellt wird und einen (vertikalen) Prototypen, der in Kapitel 6 (Seite 71) beschrieben wird.

1.3. Entwicklungsumgebung Diese Arbeit entsteht mithilfe von spezialisierten Werkzeugen, die jeweils ihre Aufgabe im Gesamtprozess haben. Beispielsweise werden, um die Gedanken zu strukturieren und zielgerichteter vorzugehen, einige Mindmaps entworfen. Eine

1.3. ENTWICKLUNGSUMGEBUNG

6

Mindmap fixiert ziellos umherirrende Gedanken und erm¨oglicht oder erleichtert es, n¨ utzliche Ideen von solchen zu trennen, die das Thema nicht treffen. Die hierf¨ ur verwendete Software heißt FreeMind und ist unter der URL freemind.sourceforge.net1 herunterzuladen. Ein Exemplar einer solchen Map ist auf der Titelseite zu sehen. W¨ ahrend der Ermittlung der Anforderungen des ISL wird das generische Werkzeug Prot´eg´e verwendet. Dieses erlaubt, eine beliebige Datenstruktur zu definieren, und bietet automatisch passende Eingabeformulare f¨ ur die verschiedenen Datenobjekte an. Das Werkzeug ist f¨ ur die Entwicklung von Ontologien gedacht und spezialisiert sich somit begrifflich auf Dinge wie Klassen, Instanzen und benannte Beziehungen dazwischen. F¨ ur die Dokumentation der Anforderungen wird eine passende Datenstruktur mit Prot´eg´e definiert. Diese beinhaltet Klassen wie Requirement oder Person und vervollst¨andigt diese mit Beziehungen wie depends-on“ zwischen Requirements oder needs“ zwischen Person und ” ” Requirement. Um das Ergebnis kommunizieren zu k¨onnen, wird ein einfaches Export-Plugin entwickelt, welches die Daten in eine XML Datei exportiert, die daraufhin mittels XSL-T in eine f¨ ur g¨angige Browser lesbare Form (HTML und PDF) umgewandelt werden kann. Auf diese Weise hat der Anforderungsanalyst auf der einen Seite eine strukturierte Eingabem¨oglichkeit, die die Beziehungen der Anforderungen untereinander in einer logisch formell korrekten Form ablegt, und auf der anderen Seite kann er eine lesbare Form der Anforderungen automatisch erzeugen. Dies ist jedoch durch kommerzielle Produkte, die sich auf die Dokumentation und Verwaltung von Anforderungen spezialisieren, besser m¨ oglich. Insbesondere k¨ onnen diese Werkzeuge mehrere Mandanten verwalten und professionell Versionierung betreiben, was mit dieser generischen Art und Weise schlecht bis gar nicht funktioniert. Prot´eg´e ist somit zwar kein perfektes Werkzeug f¨ ur diese Aufgabe, aber es ist kostenlos und durch eigene Plugins erweiterbar. Herunterzuladen auf protege.stanford.edu2 . Das Export-Plugin liegt zusammen mit dem n¨ otigen XSL-T Stylesheet und der verwendeten Klassenstruktur f¨ ur Prot´eg´e unter dieser URL vor: www.danielstephan.com/thesis/ prot-req.zip3 . Zur Unterst¨ utzung des Softwaredesigns wird der Enterprise Architect von Sparx Systems4 in der Version 5.0 verwendet. Um Roundtrip-Engineering durchf¨ uhren 1

WWW WWW 3 WWW 4 WWW 2

Adresse: Adresse: Adresse: Adresse:

http://freemind.sourceforge.net http://protege.stanford.edu http://www.danielstephan.com/thesis/prot-req.zip http://www.sparxsystems.com.au/

7

1.3. ENTWICKLUNGSUMGEBUNG

zu k¨onnen, muss die Software Java-Quellcode erzeugen sowie selbigen mittels Reverse Engineering wieder einlesen k¨onnen. Vergleichbare Software mit dieser Funktion von Borland (Together 2005 for JBuilder, derzeit f¨ ur EUR 1740) und NoMagic (MagicDraw Professional, derzeit f¨ ur EUR 255) erwiesen sich verglichen mit dem Enterprise Architect, USD 95, als zu kostspielig. Die Implementation verwendet die aktuellste Version der Sprache Java (java.sun.com/j2se/1.5.05 ) und wird mit der leistungsf¨ahigen Open-Source Entwicklungsumgebung Eclipse (www.eclipse.org6 ) durchgef¨ uhrt. Der Text der Arbeit selber wird, der innovativen Natur ihres Inhalts folgend, weder mit einer u ¨blichen Textverarbeitung noch (direkt) mit Latex, des im wissenschaftlichen Umfeldes u ¨blichen Textsatzsystems, verfasst. Stattdessen wird die XML Variante des urspr¨ unglich auf SGML basierenden Formats Docbook verwendet (siehe www.oasis-open.org/docbook7 ). Der Grund f¨ ur diese Wahl ist in erster Linie die Neugier des Autors. Da es sich um ein XML basiertes Format handelt, wird der Text mit einem XML Editor verfasst. Es handelt sich bei dem XML Editor um , der unter www.oxygenxml.com8 zu beziehen ist. Die Software liefert s¨ amtliche f¨ ur Docbook n¨otigen Stylesheets mit. Die Stylesheets sind alternativ unter docbook.sourceforge.net/projects/xsl/9 zu beziehen. Da der Autor im Rahmen des Schreibens festgestellt hat, dass die mit Docbook erzeugten Ergebnisse nicht ausreichend perfekt gesetzt sind, hat er nach Alternativen gesucht. Das Ergebnis dieser Suche kann auf www.danielstephan.com/ dbp.html10 nachgelesen werden. Somit existiert letztendlich der Text in Form von XML im Docbook Format, der Satz jedoch wird von LATeX durchgef¨ uhrt. Dank DBP existiert ein funktionierender Prozess von XML u ¨ber LATeX zu PDF.

5

WWW Adresse: http://java.sun.com/j2se/1.5.0/ WWW Adresse: http://www.eclipse.org/eclipse/ 7 WWW Adresse: http://www.oasis-open.org/committees/tc home.php?wg abbrev= 6

docbook WWW Adresse: http://www.oxygenxml.com 9 WWW Adresse: http://docbook.sourceforge.net/projects/xsl/ 10 WWW Adresse: http://www.danielstephan.com/dbp.html 8

1.3. ENTWICKLUNGSUMGEBUNG

8

2. Business Analyse 2.1. Ausgangssituation Das ISL besitzt nach eigenen Aussagen mit einem Bestand von u ¨ber 80000 erfassten Eintr¨ agen eine der gr¨ oßten Literatur-Datenbanken im Bereich der Seeverkehrswirtschaft. Diese Daten h¨atten f¨ ur das ISL bzw. f¨ ur dessen Kunden einen hohen Wert. Da Informationen per se immer mehr ausschließlich im Internet gesucht w¨ urden und sich immer weniger Kunden pers¨onlich in die R¨aume des Instituts beg¨ aben, w¨ urde das nicht genutzte Potential der Datenbank immer gr¨ oßer und der Betrieb der Datenbank infolgedessen immer teurer werden. Daher wurde schnell klar, dass der Datenbestand ins Internet gebracht werden muss, um hier der Nachfrage zu begegnen, der offline“ immer seltener entge” gengetreten werden kann. Belegt wurde die Einsicht durch eine Studie [ISL01], die das ISL zusammen mit Roland Berger und PriceWaterhouseCoopers im Auftrage des Bundesministeriums f¨ ur Wirtschaft und Technologie (BMWi) bis Ende 2001 durchgef¨ uhrt hatte. Diese Studie belegte insbesondere den gewachsenen Stellenwert des Internets in Bezug auf die Informationsbeschaffung in Unternehmen der maritimen Wirtschaft. Obwohl laut Studie nur 17,5% der Informationen aus dem Internet bezogen w¨ urden (der pers¨ onliche Kontakt erbringt nach wie vor die meisten relevanten Informationen), w¨ are das Internet als ein wichtiges Medium der Informationsbeschaffung zu sehen, weil die Tendenz zur online Nutzung immanent gegeben sei. Der Grund der noch eher geringen Nutzung k¨onnte im mangelhaften Angebot liegen. Die Studie stellt fest, dass mehr als 90% der Befragten die u aßige Informationsflut als Belastung empf¨anden. Die Menge an In¨berm¨ formationen f¨ uhre zu einem hohen Aufwand bei der Selektion der relevanten Informationen. Zudem seien die Informationen oft nicht aktuell. Diesen Erkenntnissen folgend wurde die Strategie etabliert, Inhalte des ISL im Rahmen eines Portals online anzubieten und ein Gesch¨aftsmodell zu entwickeln, das die erkannten Herausforderungen adressiert.

2.2. ZIELE

10

Business Strategie

on

Pr of ile

Inhal

te

kti Sele

Abbildung 2.1.: ISL-Strategie-Komponenten

Ein Ergebnis dieser Bem¨ uhungen ist bereits zum jetzigen Zeitpunkt erkennbar. Und zwar werden bereits einige Angebote online verkauft. F¨ ur diesen Zweck hat das ISL einen Online-Shop eingerichtet. Dort werden eine Handvoll regelm¨ aßiger Publikationen des ISL angeboten. Diese Publikationen werden nach Aussage des ISL vom Markt nachgefragt. Es handelt sich dabei um vergleichsweise hochwertige Publikationen. Eine Publikationen wie das Jahrbuch kostet zum Beispiel inklusive CD-ROM knapp 300 Euro. Zus¨atzlich gibt es das Shipping Statistics and Market Review, welches 9 Mal im Jahr erscheint, jeweils mit etwas unterschiedlichen Schwerpunkten. Es kostet inkl. CD-ROM 470 Euro pro Jahr1 .

2.2. Ziele Das u ¨bergeordnete strategische Ziel des ISL ist es, Informationen anzubieten und u ¨ber deren Individualisierung Geld zu verdienen. Dieses Hauptziel l¨asst sich, wie in Abbildung 2.1 dargestellt, aus drei Komponenten aufbauen, ohne die es nicht oder schwer verwirklicht werden kann. Ein Kernpunkt und somit die erste Komponente sind die Inhalte, die ange1

Stand: Juli 2005

11

2.3. HERAUSFORDERUNGEN

boten werden sollen. Hier gilt es, eine ansprechende Auswahl sicherzustellen. In diesem Zusammenhang strebt das ISL eine Zusammenarbeit mit Partnerorganisationen an, deren Inhalte zusammen mit denen des ISL in einem gemeinsamen System angeboten werden sollen. Zudem wurde erkannt, dass die Nutzer die Inhalte in aller Regel unverz¨ uglich erwarten. Sofern m¨oglich sollen somit Inhalte in digitaler Form (Volltexte, Statistiken, Tabellen) vorgehalten und vom zahlenden Kunden auf Knopfdruck abgerufen werden. Das Angebot kann nur dann f¨ ur die Kunden interessant sein, wenn die Menge an hilfreichen Inhalten groß genug ist. Diese Erkenntnis liefert im Umkehrschluss die Forderung, dass Kunden die gew¨ unschten Inhalte auf einfache Weise aus dem Fundus selektieren k¨onnen m¨ ussen und somit das System entsprechend m¨ achtige Recherchemechanismen aufweist, die die zweite Komponente darstellen. Diese soll die Strukturen der Informationslandschaft offensichtlich machen und geeignete Navigationselemente bereitstellen, damit sich der Kunde zurechtfindet und einfach eine Vielzahl f¨ ur ihn relevante Inhalte finden kann. Um das Informationsangebot wertvoller zu gestalten, soll es individuell auf den Nutzer zugeschnitten werden, dies schließt den Kreis. Das wiederum setzt die Existenz von individuellen Kundenprofilen voraus, auf deren Basis personalisierte Angebote maßgeschneidert werden k¨onnen. Diese Angebote beinhalten einen automatischen Benachrichtigungsdienst u ¨ber neue Dokumente, die zum Kundenprofil passen, der mittels E-Mail realisiert werden soll, sowie eine M¨ oglichkeit, fehlende Informationen (unbefriedigte Nachfrage) online zu bem¨angeln. Letzte Funktion soll die Kundenw¨ unsche erkennbar machen und das ISL in die Lage versetzen, auf die Nachfrage besser zu reagieren. Auf diese Arbeit bezogen k¨ onnen nat¨ urlich nicht alle Ziele des ISL umgesetzt werden. Daher konzentriert sie sich auf die zweite Komponente und entwickelt eine innovative Recherchetechnologie.

2.3. Herausforderungen Um zu verstehen, welche Herausforderungen f¨ ur die Recherche in Informationssystemen wie dem des ISL existieren, sollte man zun¨achst wissen, wie eine solche Recherche abl¨ auft. Was ist also Recherche? Recherche wird hier als Oberbegriff f¨ ur die Suche nach Informationen verstanden. Im Kontext dieser Arbeit sind es speziell die Suchvorg¨ ange, die mit Hilfe eines Informationssystems wie der ISL Seabase durchgef¨ uhrt werden. Aber betrachten wir einmal, wie das typische

2.3. HERAUSFORDERUNGEN

12

Nutzerverhalten w¨ ahrend einer solchen Suche aussieht. Der Ablauf einer typischen Recherche beginnt, sobald ein Nutzer ein Defizit oder ein Interesse entwickelt und nach Informationen sucht, die den neu aufgekommenen Bedarf befriedigen. Der Nutzer wird m¨oglicherweise nicht zuerst das Internet aufsuchen, sondern stattdessen zun¨achst seine eigenen B¨ ucher, sowie Dateien und Datenbanken durchforsten und eventuell noch jemanden anrufen, aber sp¨ atestens danach sucht er das Internet auf und landet hoffentlich z¨ ugig auf den Webseiten des ISL. Wie in [TAAK04] von Teevan et al. dargelegt wurde, gibt es f¨ ur den Nutzer im Internet im groben zwei Methoden, ans Ziel zu gelangen. Die eine Methode besteht darin, eine m¨ oglichst exakte Suchanfrage zu formulieren, die die gesuchten Informationen ausreichend exakt beschreibt, so dass das System direkt das Gesuchte liefert. Diese Vorgehensweise nennt das genannte Paper Teleporting. Der Nutzer teleportiert sich im u unschten ¨bertragenen Sinne direkt zu der gew¨ Information. Im Buch [RM02] von Rosenfeld und Morville wird es The Perfect Catch genannt und jedoch dargelegt, dass dieses sehr simple Vorgehen alleine oft nicht zum Ziel f¨ uhrt. Daf¨ ur gibt es mehrere Gr¨ unde, zum einen weiß der Nutzer manchmal nicht genau genug, wonach er sucht. In diesem Falle muss er seine Suche allgemeiner halten, sich erst einmal umschauen und das Angebot spielerisch“ erforschen. ” Anders ausgedr¨ uckt: der Nutzer muss sich zun¨achst orientieren und Teleporting ist f¨ ur ihn nicht m¨ oglich. Und selbst wenn er weiß, wonach er sucht, so ist die Sprache, die er f¨ ur die Suche verwendet nicht notwendigerweise die selbe, mit der die gesuchte Information erfasst wurde. Dabei ist mit Sprache noch nicht einmal Sprache im Sinne von Franz¨ osich oder Deutsch, sondern eher die Wortwahl gemeint, die bei unterschiedlichen Menschen unterschiedlich ausf¨allt. [RM02] fragt in diesem Zusammenhang ’PDA’, ’Handheld’ oder ’Handheld PC’“? ” Alle hier betrachteten Autoren stellen jeweils auf ihre Weise fest, dass ein Nutzer die Schwierigkeiten durch ein mehrschrittiges Vorgehen zu u ¨berwinden versucht, bei dem sich Orientierung/Browsen und Direktsuche abwechseln. Teevan et al. nennen dies Orienteering und belegen empirisch dessen bevorzugte Nutzung. [Bat89] nennt es Berrypicking, weil der Nutzer u ¨ber verschlungene Pfade durch den Informationsraum wandert und auf dem Wege die Beeren pfl¨ uckt, die ihn interessieren. Im Paper von Teevan et al. wird vermutet, dass diese kombinierte, aus mehreren Schritten bestehende Suche die kognitiven Pro-

13

2.3. HERAUSFORDERUNGEN

zesse von Nutzern weniger fordert und deshalb bevorzugt wird. Sie haben empirisch festgestellt, dass Nutzer bevorzugen, einigen Verweisen zu folgen und sich dadurch Schritt f¨ ur Schritt dem Ziel anzun¨ahern, anstatt eine exakte Anfrage anzugeben und direkt zum Ziel zu gelangen. Das gilt sogar, wenn der Suchende genau weiß, wo das Gesuchte liegt, und er oder sie sogar ohne weiteres in der Lage w¨ are, die Anfrage exakt genug zu formulieren. Ein Informationssystem sollte folglich ein mehrschrittiges, iteratives Vorgehen erlauben oder gar besonders unterst¨ utzen. Das ISL ist daf¨ ur bereits gut aufgestellt, denn der gepflegte, ausf¨ uhrliche Thesaurus ist eine gute Grundlage daf¨ ur, Orientierungshilfen anbieten zu k¨onnen. Ein dar¨ uber hinausgehendes Clustering kann dies noch verbessern.

2.3. HERAUSFORDERUNGEN

14

3. Marktanalyse 3.1. Kriterien Auswahl Es gilt nun herauszufinden, wie die Suche in online Informationssystemen in der Praxis vom Rest der Welt organisiert wird. Es sollen dadurch u ¨bliche Vorgehensweisen demonstriert und der Ansatz dieser Arbeit in einen Kontext gesetzt werden. Dokumente, Webseiten oder Dateien in Datenbanken zu suchen ist ein ganz zentraler Faktor, der sich mit der Zunahme der Menge an Informationen, die sich in den Datenbanken dieser Welt verstecken, an zunehmender Wichtigkeit erfreut. Daher bieten so gut wie alle Informationssysteme mehr oder weniger ausf¨ uhrliche Unterst¨ utzung f¨ ur die Recherche in ihren Systemen an. Die Auswahl der betrachteten Informationssysteme beinhaltet eine Reihe derer, die bereits vom ISL als relevante Konkurrenz auf dem Markt erkannt worden waren. Dar¨ uberhinaus werden einige allgemein bekannte Online-Dienste betrachtet, sowie auch solche die ¨ahnliche Ans¨atze in anderen M¨arkten verfolgen. All diese Dienste werden hier nach einer Reihe von Kriterien ausgewertet. Die Kriterien st¨ utzen sich sowohl auf die technische Umsetzung des Angebots, als auch auf dessen Wirksamkeit in Bezug auf wirtschaftliche Faktoren. Im folgenden sollen die Kriterien aufgelistet und erl¨autert werden. Community Beinhaltet das Angebot Dienste f¨ ur eine virtuelle Gemeinschaft? Derartige Dienste erlauben die Wertsch¨opfung zwischen Kunden und erh¨ohen somit die Wertigkeit des Angebots mit Hilfe von Netzwerkeffekten. Zielgruppe An wen richtet sich das Angebot in erster Linie? Erfassung Auf welche Weise kommen die Daten ins System? Erfasst der Anbieter selber oder verkauft er den Zugriff auf Datenbanken anderer Firmen? Erfassung durch Kunden K¨ onnen Kunden eigene Dokumente in das System einpflegen?

3.1. KRITERIEN AUSWAHL

16

Suche mittels boolschen Operatoren Sind Begriffe mittels UND/ODER beliebig kombinierbar? Suche auf der Basis einer Taxonomie Sind die Dokumente mit Schlagworten versehen, die untereinander in einer oder mehreren Spezialisierungsbeziehungen stehen (Taxonomie)? Suche ¨ ahnlicher Begriffe m¨ oglich Ist das System in der Lage, trotz Tippfehler sinnvolle Ergebnisse zu liefern? Volltextsuche Suche im Volltext des Angebots ist m¨oglich. Clustering Der Suchmechanismus gruppiert die Suchergebnisse automatisch. Angebot ist aktuell Ist das Angebot aktuell? Monate alte Neuigkeiten weisen auf ein schlecht gepflegtes System hin und werden kaum Nutzer anziehen. Viele brandaktuelle Artikel wiederum zeugen von einem erfolgreichen Angebot mit echtem Nutzwert . Angebot beinhaltet digitale Dokumente Sind die Dokumente online zu beziehen und zu lesen? Angebot beinhaltet Reports u ¨ber Rohdaten Steht hinter dem Angebot eine Datenbank , deren Inhalte in Form von Tabellen und Graphen ohne textliche Beschreibung dargeboten werden? Angebot beinhaltet kostenpflichtige Suchergebnisse Sind die Ergebnisse des verwendeten Suchmechanismus kostenpflichtig? Angebot beinhaltet kostenpflichtige Dokumente Sind einzelne Dokumente k¨auflich zu erwerben? Angebot beinhaltet kostenpflichtigen Systemzugang Ist der Zugang zum System oder zu Teilen des Systems pauschal kostenpflichtig? Marketingplattform Es besteht eine M¨oglichkeit f¨ ur Partner und andere Firmen, auf der Web Site Werbung zu machen. Sei es durch Banner oder sponsored news“. ” Werbefinanziert Die Angebote finanzieren sich haupts¨achlich durch Werbung.

Yellow Pages Das System beinhaltet Verzeichnisse von Firmen und Produkten.

17

3.2. KONKURRENTEN Die Ergebnisse sind in Abbildung 3.1 (Seite 18) nachzulesen.

3.2. Konkurrenten 3.2.1. FIZ-Technik e.V. FIZ Technik e.V.1 ist ein gemeinn¨ utziger technisch-wissenschaftlicher Verein. Mitglieder sind: VDMA e.V. (Verband Deutscher Maschinenund Anlagenbau), VTDI e.V. (Textil) und FWD e.V. (Werkstoffe) sowie die Industrieunternehmen und Forschungseinrichtungen: Robert Bosch GmbH, Stuttgart, DaimlerChrysler AG, Stuttgart, Siemens AG, M¨ unchen, MAN B&W Diesel AG, Augsburg und FraunhoferGesellschaft, M¨ unchen. Das Fachinformationszentrum Technik erstellt bibliographische Datenbanken und bietet diese in elektronischer Form an. Dazu werden j¨ahrlich ca. 120000 Dokumente aus Fachzeitschriften, Tagungsb¨anden, Forschungsberichten und Dis¨ sertationen ausgewertet und gespeichert. Uber 300 Mitarbeiter sind mit dieser Aufgabe betreut. Auch hier wird, ebenso wie beim ISL, jedes ausgewertete Dokument mit einem Kurzreferat versehen, in Kategorien einsortiert und verschlagwortet. Der dazugeh¨ orige Thesaurus umfasst jeweils etwa 50000 deutsche und englische Begriffe. Die Recherche in den Datenbanken ist prinzipiell kostenpflichtig. Dabei unterscheidet die Preisliste2 zwischen dem normalen Zugriff u ¨ber die Online-Suche sowie einem speziellen Pauschaltarif f¨ ur gr¨oßere Organisationen, die die Recherche aus dem eigenen Intranet heraus erlauben m¨ochten. Der Preis f¨ ur den normalen Zugriff setzt sich aus der Login-Geb¨ uhr von e5,40, die entsprechend bei jedem Login-Vorgang anf¨ allt, einer sog. Anschaltzeit, die auf eine nicht n¨aher spezifizierte Art und Weise aus dem Suchaufwand der Datenbank errechnet wird (durchschnittlicher Preis ca. e100 pro Stunde), sowie einer Dokumentausgabegeb¨ uhr , die je nach Datenbank und Format zwischen e1,50 und e2,50 schwankt und pro angezeigter Bibliographie abgerechnet wird, zusammen. Die Anschaltzeiten und Dokumentausgabegeb¨ uhren schwanken je nach abgefragter Datenbank, ebenso wie die Pauschalpreise. Diese schwanken f¨ ur Großunternehmen von e3885,- bis e65200,- pro Datenbank pro Jahr. KMUs und Fachhoch1 2

WWW Adresse: http://www.fiz-technik.de WWW Adresse: http://www.fiz-technik.de/download/preise.pdf

18 3.2. KONKURRENTEN

Community Zielgruppe Erfassung durch Anbieter Erfassung durch Kunden Suche mittels booleschen Operatoren Suche syntaktisch ähnlicher Begriffe möglich Volltextsuche Clusteranalyse Suche auf der Basis einer Taxonomie Angebot ist relativ aktuell Angebot beinhaltet digitale Dokumente Angebot beinhaltet Reports über Rohdaten Angebot beinhaltet kostenpflichtige Suchergebnisse Angebot beinhaltet kostenpflichtige Dokumente Angebot beinhaltet kostenpflichtigen Systemzugang Marketingplattform Werbe finanziert Yellow Pages T : Techniker / Ingenieure W : Wissenschaftler M : Manager

☑ ☑ ☑

☑ ☑ ☑

☑ ☑

☑ ☑

TW ☑

www.dmkn.de ☑



☑ ☑

☑ MTW MTW ☑ ☑ ☑ ☑ ☑ ☑

www.hwwa.de ☑ ☑ ☑ ☑ ☑



☑ ☑





☑ ☑

☑ ☑ ☑



☑ ☑ ☑

M ☑



TMW ☑

☑ ☑ ☑

TW



☑ ☑



☑ ☑ ☑

☑ ☑

☑ ☑

www.clusty.com

☑/-

www.marine-net.com



☑ ☑

portal.acm.org

Marktvergleich www.marinetalk.com TMW TMW ☑ ☑ ☑

www.springerlink.com ☑



☑ WM

www.netacademy.org ☑

Abbildung 3.1.: Vergleichstabelle

www.fiz-technik.de

19

3.2. KONKURRENTEN

schulen zahlen zwischen e788,- und e13020,-. Es gibt 10 FIZ-Technik-eigene Datenbanken und 16/17 fremde Datenbanken, die FIZ-Technik lizensiert und integriert hat. Der Autor stellt fest, dass das Preissystem auf ihn durch die vielen Einzelposten abschreckend wirkt. Hier w¨are eine Mischkalkulation mit weniger einzelnen Posten eventuell eher anzuraten. FIZ Technik nutzt Volltextsuche und erlaubt die Verkn¨ upfung mittels boolschen Operatoren. Zusammen mit dem aufwendigen Thesaurus ist die Methodik recht fortschrittlich, wenn auch kompliziert. Es wird kein Clustering durchgef¨ uhrt.

3.2.2. FIZ Karlsruhe / STN Online Services Das FIZ Karlsruhe ist eine 1977 gegr¨ undete gemeinn¨ utzige Gesellschaft mit dem Auftrag, Fachinformationen bereitzustellen. Dieses tut sie insbesondere dadurch, dass sie im Rahmen des STN Online Service in Kooperation mit der American Chemical Society (ACS) und der Japan Science and Technology Corporation (JST) weltweit existierende Datenbanken in ihr System integriert. Ferner werden auch eigene Datenbanken erstellt und gepflegt. Unter anderem z¨ahlt hierzu die Zeitschriftendatenbank der Thieme Verlagsgruppe3 sowie das System von vascoda4 . Die Preise5 sind nicht sehr weit von denen von FIZ-Technik entfernt und sind eher etwas h¨ oher. Die Anschaltzeit ist auch hier zu finden und scheint ein branchen¨ ubliches Ph¨anomen darzustellen. Auff¨allig ist im Vergleich zu FIZ-Technik, dass die Geb¨ uhr f¨ ur die Anzeige bzw. den Druck (Dokumentausgabegeb¨ uhr ) drei mal so hoch ist und je nach Datenbank auch Preise von u ur diesen Posten zu sehen sind. ¨ber e20,- f¨ Der Fokus liegt hier eher in der Integration von Datenbanken (im Rahmen von STN) sowie im Auftritt als IT Dienstleister. Dadurch ist die Anzahl der Datenbanken wesentlich h¨ oher als bei FIZ Technik, deren Hauptarbeit in der Erfassung und Pflege der eigenenen Datenbanken zu stecken scheint. Die genaue Anzahl der Datenbanken geht aus der oben genannten Preisliste, in der jede Datenbank einzeln aufgelistet ist, hervor.

3

WWW Adresse: http://www.thieme-connect.de WWW Adresse: http://www.vascoda.de 5 WWW Adresse: http://www.stn-international.de/service/prices/EUROde.pdf 4

3.2. KONKURRENTEN

20

3.2.3. Deutsches Maritimes Kompetenz Netz (DMKN) Das DMKN hat den Anspruch, Wissen im maritimen Umfeld zu sammeln und verf¨ ugbar zu machen. Ins Leben gerufen hat es das Deutsche Marine Institut, die Marine-Offizier-Vereinigung (MOV) e.V. und die Marine-Offizier-Hilfe (MOH) e.V. gemeinsam mit Kooperationspartnern. Auf der Website kann man nach Artikeln, Studien, Berichten und a¨hnlichen Dokumenten recherchieren und bekommt die Dokumente auch gleich in elektronischer Form auf den Schirm geliefert. Zudem kann man sich im ExpertNet ein Bild von den Experten aus Wirtschaft und Wissenschaft im Bereich der maritimen Wirtschaft und Technik machen. Als eines der wenigen maritimen Angebote im Internet beinhaltet das DMKN auch ein Forum , in dem sich Interessierte untereinander austauschen k¨ onnen. Interessant ist, dass das ¨ offentliche Forum von den Nutzern dieses Systems fast v¨ ollig ignoriert wird. Obwohl offenbar die Artikel und sonstigen informativen Beitr¨ age regelm¨ aßig aktualisiert werden und somit von einem lebendigen System zeugen, gibt es keinerlei Interesse am pers¨onlichen Austausch. Die meisten im System verzeichneten Experten sind offenbar damit zufrieden, aufgelistet worden zu sein und haben keine eigenen Beitr¨age ins System gebracht. Die absolute Mehrheit der Beitr¨age stammt aus der Zeitschrift MarineForum, die von den Betreibern des DMKN herausgegeben wird. Diese Erkenntnis relativiert den zuerst entstandenen Eindruck eines lebendigen Systems. Offenbar ist der gr¨ oßte und beinahe einzige Anbieter von Informationen im DMKN der Betreiber des DMKNs selber. Seit Ende 2004 beteiligt sich das ISL am DMKN und bietet im Rahmen eines Kompetenzzentrums f¨ ur die Seeverkehrswirtschaft eigene Inhalte an. Die Recherchem¨ oglichkeiten des DMKN erlauben Anfragen mit boolschen Operatoren (AND/OR). Zus¨ atzlich erlaubt das System die Suche mittels Wort ¨ Varianten, sowie mittels einer syntaktischen Ahnlichkeit (dort Fuzzy Suche genannt).

3.2.4. HWWA - Hamburgisches Welt-Wirtschafts-Archiv Das Hamburgische Welt-Wirtschafts-Archiv ist eine wissenschaftliche Serviceeinrichtung, dessen Ziel es ist, Informationen zu sammeln, aufzubereiten, zu bewerten und verf¨ ugbar zu machen. Es analysiert weltwirtschaftliche Fragestel-

21

3.2. KONKURRENTEN

lungen, informiert und ber¨ at. Aktueller Hinweis6 : Das HWWA ist aktuell als Auslaufmodell zu betrachten. Es geh¨orte lange Zeit zur Leibniz Gemeinschaft und wurde damit ¨ offentlich gef¨ordert. Nach einigen sehr kritischen Evaluierungen hat sich die Gemeinschaft jedoch dazu entschlossen, das Institut nicht weiter zu f¨ordern. Teile des HWWA werden zuk¨ unftig im neugegr¨ undeten Wirtschaftsinstitut HWWI aufgehen und bleiben daher mindestens zum Teil erhalten. Alle Dienstleistungen des HWWA zu beleuchten, w¨ urde zu weit f¨ uhren. Im Kontext dieser Arbeit ist allerdings der Bereich der Kataloge und der OnlinePublikationen interessant. Das HWWA bietet keine Community Features an. Der online Zugriff wird u ¨ber die URL http://webopac.hwwa.de/seitevor.htm7 erm¨ oglicht.

Kataloge Das HWWA bietet online Nachweise von B¨ uchern, Periodika, und Aufs¨atzen aus Zeitschriften und Sammelwerken in gedruckter oder elektronischer Form, Firmen und K¨ orperschaften mit weiterf¨ uhrenden Links an. Ausserdem Presseartikel, Gesch¨ aftsberichte, Spezialsammlungen etc. F¨ ur diesen Zweck existiert ein ausgefeilter Suchmechanismus, der auf ei¨ nem komplexen Thesaurus basiert. Alle wichtigen Suchfunktionen (Ahnlichkeit, boolsche Operationen, Volltext. . . ) sind vorhanden.

Online Publikationen Das Angebot umfasst im Zusammenhang mit dem elektronischen Dokumentenarchiv des HWWA sowohl Nachweise nicht-elektronischer Dokumente als auch solche von elektronischen Dokumenten. Letztere sind im Archiv teilweise im Volltext verf¨ ugbar. Dabei unterscheidet der Katalog zwischen frei verf¨ ugbaren, HWWA-intern verf¨ ugbaren, sowie kostenpflichtig verf¨ ugbaren Dokumenten. Falls m¨ oglich verweist der Katalog auf den Anbieter des Dokumentes, bei dem es dann bezogen werden kann. Verf¨ ugbare Volltexte liegen im PDF-Format auf HWWA-Servern oder beim Anbieter selber. Im letzteren Fall verweist der Katalog auf den Anbieter. Neben den Angeboten, die u ¨ber den Katalog zu erreichen sind, bietet das HWWA spezielle Informationsdienste an. H¨aufig sind die Produkte online im 6 7

Pressemitteilung: http://idw-online.de/pages/de/news117649 WWW Adresse: http://webopac.hwwa.de/seitevor.htm

3.2. KONKURRENTEN

22

PDF oder HTML Format verf¨ ugbar - teilweise kostenfrei und teilweise kostenpflichtig.

3.2.5. MarineTalk MarineTalk versteht sich als Informationsanbieter im maritimen Sektor. Das Angebot umfasst Informationen u uber, wer sie ¨ber spezielle Produkte und dar¨ herstellt. Zudem werden ca. alle sechs Wochen aktuelle Entwicklungen im maritimen Sektor sowohl u ¨ber neue Produkte als auch u ¨ber allgemeine Themen in den News-Bereich eingepflegt. Das Angebot beinhaltet im Rahmen der Wer-Macht-Was-Suche (Buyers Guide) Kurzvorstellungen der Unternehmen, die als Werbe-M¨oglichkeit f¨ ur die verzeichneten Unternehmen beworben werden. Den Unternehmen werden verschiedene Werbe-Pakete angeboten, von denen eines gratis, eines 10 USD im Monat und eines 20 USD im Monat kostet. Im letzten Falle wird eine bis zu 6 Seiten umfassende Firmendarstellung angeboten, w¨ahrend in der Gratisversion weder Email noch Homepage des verzeichneten Unternehmens angegeben werden kann und sich ausschließlich auf Adresse und Telefon beschr¨ankt wird. Das mittlere Angebot bietet die M¨ oglichkeit, Verweise auf die Firmen Homepage sowie eine Email Adresse hinzuzuf¨ ugen und erlaubt zus¨atzlich, eine textliche Kurzbeschreibung der Firma mit in das Listing aufzunehmen. Diese Beschreibung ist auch f¨ ur die Suche effektiv. Wie viele Kunden welches Angebot nutzen f¨allt laut MarineTalk allerdings unter das Gesch¨aftsgeheimnis, so dass auf diese Information verzichtet werden muss. Die Suchfunktion umfasst eine Schlagwortsuche, sowie spezifische Eingrenzungen. Beispielsweise ist es m¨oglich, die Suche nach Anbietern auf ein Land oder auch einen bestimmten Hafen zu beschr¨anken. Firmen, die sich in das Verzeichnis eintragen lassen m¨ ochten, haben die M¨oglichkeit, bis zu 50 Stichworte anzugeben, unter denen sie gefunden werden k¨onnen. Die Stichworte sind allerdings beliebig und unterliegen keiner festen Struktur, wie es in einem Thesaurus der Fall w¨ are. Das MarineNet bearbeitet jede Einsendung manuell und pr¨ uft insbesondere die gew¨ unschten Schlagw¨orter auf Duplikate. Je nach Qualit¨at der eingesendeten Artikel/News wird der Beitrag entweder editiert oder auf der Basis der eingesendeten Information neu geschrieben. Dieses Vorgehen garantiert ein gleichbleibend hohes Qualit¨ atsniveau der Beitr¨age.

23

3.3. WISSENSCHAFTLICHE ANGEBOTE

3.2.6. MarineNet Das MarineNet ist eine japanische Unternehmung, die Informationen und Dienstleistungen f¨ ur die maritime Wirtschaft anbietet. Der Fokus des Angebots liegt dabei auf dem Zusammenbringen von K¨aufer und Verk¨aufer maritimer Produkte und Dienstleistungen. Dem entsprechend bietet das Unternehmen SchiffsAuktionen , Preisinformationen von Gebraucht-Schiffen sowie die M¨oglichkeit, online nach Chartering-Informationen zu suchen und somit die Frage zu beantworten, ob im Hafen X ein geeignetes Schiff liegt, welches gechartert werden kann. Im letzteren Falle vermittelt MarineNet kostenfrei zwischen dem Suchenden und dem Schiffs-Eigner bzw. stellt mindestens den Kontakt her. Die meisten Funktionalit¨ aten sind nur f¨ ur Mitglieder des Systems (kostenpflichtig) zu erreichen. Es gab in keinem gratis zu erreichenden Teil des OnlineAngebots eine Suche. Es gibt jedoch in den verschiedenen nach Bezahlung zu erreichenden Bereichen jeweils spezielle, auf das jeweilige Angebot zugeschnittene Suchmethoden. Dezu geh¨ oren allerdings keine Schlagwort-Suche oder gar hinterlegte Thesauri . Die Leistungen umfassen meistens Listen, beispielsweise von zu verkaufenden Frachtern oder in der letzten Zeit durchgef¨ uhrten Besitz¨anderungen etc. Von Interesse d¨ urfte allerdings sein, dass das MarineNet ausgew¨ahlte Statistiken aus dem Fundus der Beratungsfirma Drewry8 in das eigene Angebot integriert. Die Bedingungen des Nutzungsvertrages zwischen MarineNet und Drewry fallen sicherlich unter das Gesch¨aftsgeheimnis, so dass hier auch nicht weiter geforscht wurde. Dazu ist zu bemerken, dass vereinzelt veraltete Inhalte (Statistik u ¨berarbeitet 2002. . . ) im System zu finden sind.

3.3. Wissenschaftliche Angebote 3.3.1. Netacademy, a scientific community Die Netacademy ist ein System f¨ ur wissenschaftliche Gemeinschaften, das vom MCM, Institut f¨ ur Medien und Kommunikationsmanagement9 ins Leben gerufen wurde und die von den Teilnehmern f¨ ur die Publikation von Forschungsergebnissen und News genutzt wird. Auf diese Weise soll ein zentrales Repository 8 9

WWW Adresse: http://www.drewry.co.uk WWW Adresse: http://www.mcm.unisg.ch/

3.3. WISSENSCHAFTLICHE ANGEBOTE

Abbildung 3.2.: Beispiel einer MarineNet Suchmaske

24

25

3.3. WISSENSCHAFTLICHE ANGEBOTE

Abbildung 3.3.: Inhalt von Drewry, angeboten von MarineNet

3.3. WISSENSCHAFTLICHE ANGEBOTE

26

entstehen, wodurch es Nachfragern erleichtert wird, die Dokumente zu finden. Wissenschaftler bieten ihre Ergebnisse zwar h¨aufig online an, tun dies aber in der Regel u ¨ber ihre Homepage . Wenn man nun die Menge der wissenschaftlich t¨ atigen Personen zugrunde legt und daraus die Zahl der Homepages ableitet, wird man sicherlich eine stolze Menge an Orten im Internet ermitteln, an denen wissenschaftliche Dokumente abgelegt sein k¨onnten. Die Netacademy konsolidiert nun zumindest schon mal die Ergebnisse der teilnehmenden Wissenschaftler, sofern diese Ihre Dokumente in das System einpflegen. Viele Publikationen sind kostenlos zu bekommen, sofern man sich am System angemeldet hat. Interessant wird es jedoch bei kostenpflichtigen Dokumenten, die ebenso in der Netacademy registriert sind. Konkret handelt es sich dabei um regelm¨ aßig erscheinende Journale, die es einerseits in Form eines Abonnements gedruckt zu kaufen gibt und deren Beitr¨age andererseits neben einigen weiteren kostenpflichtigen Dokumenten einzeln u ¨ber das Portal Ingenta10 zu erwerben sind, welches sich auf wissenschaftliche Publikationen spezialisiert hat. Einzeln sind die Dokumente ausschließlich in elektronischer Form zu bekommen. ¨ Uber die Usability der Netacademy l¨asst sich streiten, aber das Prinzip des Modells ist klar: S¨ amtliche kostenpflichtigen elektronischen Inhalte werden u ¨ber das gr¨ oßere Portal abgewickelt. Dort sind die Dokumente durch die Suchfunktion einer vermutlich gr¨ oßeren Nutzergruppe zug¨anglich. Zudem werden die Bezahlungsmodalit¨ aten weitgehend von Ingenta u ¨bernommen, was den administrativen Aufwand verringert. Die Suchfunktion ist simpel gehalten und erlaubt die freie Eingabe eines oder mehrerer Begriffe. Die Ergebnisse lassen sich auf Dokumentarten einschr¨anken.

3.3.2. SpringerLink Hierbei handelt es sich um das Online Informationssystem des Springer Verlages, der sich in erster Linie an den professionellen und wissenschaftlichen Nutzer wendet und hochwertige Publikationen aus dem wissenschaftlichen und wirtschaftlichen Umfeld verlegt. Das SpringerLink Angebot des Verlages konzentriert sich ausschließlich auf Produkte des Verlages. Es erm¨oglicht dem Leser, hochwertige wissenschaftliche Journale online zu lesen. Zu diesem Zweck bietet SpringerLink eine ausgefeilte Suchfunktion, sowie den Zugriff auf Abstracts und Inhaltsangaben der Publika10

WWW Adresse: http://www.ingentaselect.com

27

3.3. WISSENSCHAFTLICHE ANGEBOTE

tionen kostenfrei an. Volltexte werden ausschließlich kostenpflichtig f¨ ur 35 USD pro Artikel angeboten. Es gibt keine Community Features, Experten Verzeichnisse o.¨a.

3.3.3. ACM Portal Die ACM ist bereits seit langer Zeit (1947 gegr¨ undet) in der Informatik eine feste Gr¨ oße. Sie nennt sich selbst eine Society, also eine Gesellschaft. Sie strebt an, das wissenschaftliche Arbeiten im Computing-Sektor zu unterst¨ utzen und bietet ihren Mitgliedern einiges an Unterst¨ utzung. Sie finanziert sich vermutlich in erster Linie u ¨ber die Mitgliedsbeitr¨age und ihre Publikationen, die sie verlegt und die, so wie zum Beispiel ihr Journal Communications of the ACM“, ” weltweit h¨ ochste Anerkennung erlangt haben. Das Angebot umfasst neben einer langen Liste selbstverlegter Journale und Konferenzprotokolle den Zugang zu ausgew¨ahlten B¨ uchern und Kursen f¨ ur Software-Entwickler und Studenten, die f¨ ur zahlendes Publikum sogar im Volltext vorliegen. Die B¨ ucher sind nicht herunterladbar, aber jederzeit online einsehbar - jedenfalls solange die Subskription der ACM-Mitgliedschaft aktiv ist. Es gibt jedoch auch Netzwerk-Lizenzen f¨ ur Firmen und Universit¨aten, die es erlauben, bestimmte IP-Bereiche freizuschalten, so dass alle Zugriffe aus den jeweiligen Netzen heraus automatisch erlaubt sind. Die hiesigen Universit¨aten nutzen dieses attraktive Angebot in der Regel auch. (Der Autor dieser Zeilen ist dennoch ACM Mitglied, denn so hat er auch von zu Hause direkten Zugriff.) Als besonders interessant im Kontext dieser Arbeit stellt sich das ACM Portal11 dar. Es handelt sich dabei um ein Informationssystem, welches den Zugriff auf Publikationen des ACM mit Hilfe eines Such-Mechanismus erlaubt. Dieses Portal integriert zus¨ atzlich den sogenannten ACM Guide, der das Angebot auf Publikationen anderer Verlage ausdehnt. Laut ACM Angaben beinhaltet der Guide bibliographische Daten von mehr als 800000 Publikationen, die von wissenschaftlichen Anbietern weltweit angeboten werden. Die Integration dieser weltweiten Quellen beschr¨ ankt sich auf die Erfassung und Verlinkung der Publikationen. Um auf die Volltexte Zugriff zu haben, muss der Nutzer mit dem jeweiligen Anbieter Kontakt aufnehmen und zum Beispiel das Buch kaufen, wenn es eines ist, oder auch eine kostenpflichtige Mitgliedschaft eingehen. Der Suchmechanismus ist wie u ¨blich zweigeteilt. Es gibt eine einfache Suche, die f¨ ur alle kostenlos benutzbar ist, und eine erweiterte Suche (siehe Abbildung 11

WWW Adresse: http://portal.acm.org

3.3. WISSENSCHAFTLICHE ANGEBOTE

Abbildung 3.4.: Erweiterte Suche im ACM Portal

28

29

3.4. TECHNISCH RELEVANTES

3.4) f¨ ur den zahlenden Kundenkreis. Bei der Benutzung des Systems fiel bereits auf, dass oft die erweiterte Suche n¨otig wurde, um die gew¨ unschten Suchergebnisse hinreichend exakt zu beschreiben. Besonders wichtig wird dieses Feature in Zusammenhang mit der Beschr¨ankung auf 200 ausgegebene Publikationen, denn selbst wenn sich das gesuchte Dokument in der Liste befinden m¨ usste, so hat man doch erst darauf Zugriff, wenn es sich unter den ersten 200 befindet. Um das zu garantieren, sind so exakte Suchanfragen n¨otig, die nur durch die erweiterte Suche m¨ oglich sind. Die erweiterte Suche erm¨ oglicht wie in Abbildung 3.4 gezeigt, dass die Suche gezielt auf einzelne Felder wie zum Beispiel Autorname, ISBN oder Titel beschr¨ ankt werden kann. Außerdem wird eine Klassifikation angeboten ( CCS“), ” die die Dokumente thematisch in eine hierarchische Struktur einbindet und die nat¨ urlich auch f¨ ur die Suche verwendet werden kann. Volltexte des ACM sind direkt u ¨ber das Portal online als PDF zu bekommen, sofern es sich um Journal-Artikel oder Konferenzprotokolle handelt. B¨ ucher sind nicht als Volltext vorhanden. Da das ACM sehr anerkannte Journale besitzt und die Artikel durchweg von hoher wissenschaftlicher Qualit¨at sind, sind die Volltexte bei der wissenschaftlichen Auseinandersetzung mit informationstechnischen Themen unabk¨ ommlich. Diese Volltexte stellen also einen deutlich wahrnehmbaren Wert dar. Daher ist der Zugriff auf sie den zahlenden Kunden vorbehalten. Lange Rede kurzer Sinn: das Portal ist zwar zun¨achst gratis zu testen. Um es aber wirklich effektiv und erfolgreich zu nutzen, ben¨otigt man zwingend eine kostenpflichtige vollwertige Mitgliedschaft. Die Gratisnutzung ist somit ein K¨oder f¨ ur Kunden, die durch die spielerische Erforschung des Gratisbereichs des Portals einen Eindruck des Umfanges des Angebots bekommen k¨onnen. Dieses Vorgehen kann nach Ansicht des Autors auch f¨ ur das ISL eine m¨ ogliche Herangehensweise darstellen.

3.4. Technisch Relevantes 3.4.1. Clusty / Viv´ısimo Die Firma Viv´ısimo stellt Clustering Software her, die sie (sicherlich nicht billig) unter der Bezeichnung Viv´ısimo Clustering Engine (VCE) anbietet. Eine Besonderheit des Vorgehens ist, dass das Clustering on-the-fly ausgef¨ uhrt wird. Es gibt kein vollst¨ andiges Clustering des Datenbestandes. Stattdessen werden

3.4. TECHNISCH RELEVANTES

30

ausschließlich die Such-Ergebnisse einem Ad-Hoc Clustering unterworfen. Da das System darauf ausgerichtet ist, die Ergebnisse einer Suchmaschine zu clustern, betrachtet es Titel und Abstract, den Suchmaschinen u ¨blicherweise automatisch liefern. Laut Viv´ısimo beinhaltet der Clustering Algorithmus zwar ¨ keinerlei Vorwissen (Thesauri oder Ahnliches), wurde aber von den Entwicklern speziell darauf ausgerichtet Cluster zu erzeugen, die beachten, what users ” wish to see when they examine clustered documents“ (vivisimo.com12 ). Zudem bietet sie ein Produkt namens Clusty13 an. Dabei handelt es sich um eine Meta-Suchmaschine, die verschiedene Suchmaschinen abfragt, deren Ergebnisse sammelt und mittels VCE clustert. Interessanterweise fragt Clusty nicht mehr nur gew¨ ohnliche Suchmaschinen ab, sondern erlaubt zus¨atzlich die Suche in weiteren Quellen wie zum Beispiel einer Preissuchmaschine (www.bizrate.com14 ) oder einer Bildersuchmaschine (picsearch.com15 ). Es existiert somit eine gemeinsame Oberfl¨ache f¨ ur die Suche in mehreren unterschiedlichen Quellen. Hervorzuheben ist die Integration der Kategorisierung von bizrate.com. Bizrate hat die Produkte in Kategorien einsortiert, wie zum Beispiel Men’s T-Shirts oder Women’s T-Shirts bei Shirts. Diese Kategorien zeigt es zus¨ atzlich zu den automatisch ermittelten Clustern an. Probier-Link16 Mit Clusty lassen sich sehr einfach eigene Erfahrungen mit Clustering Angeboten sammeln. Das Vorgehen von Clusty w¨are nach Meinung des Autors auch f¨ ur das ISL sehr interessant.

3.4.2. carrot2 Dies17 ist ein Programmierframework in Java, welches sich als Experimentierplattform in Bezug auf das Clustering von Suchergebnissen versteht. Daher passt es sehr gut zur Zielsetzung der Arbeit und soll hier mit aufgef¨ uhrt werden. Der von carrot2 verwendete Ansatz unterscheidet sich von dieser Arbeit insofern, als dass dort f¨ ur das Clustern ein eigener Algorithmus (LINGO) verwendet wird. LINGO basiert auf einem durch LSI (siehe auch Abschnitt 5.3.4) erzeugten approximierten Datenraum, der durch die drei Matrizen T S DT dar12

WWW WWW 14 WWW 15 WWW 16 WWW 13

17

Adresse: http://vivisimo.com/docs/howitworks.pdf Adresse: http://clusty.com Adresse: http://www.bizrate.com Adresse: http://picsearch.com Adresse: http://clusty.com/search?v%3aproject=clusty-shopping&query=

shirt WWW Adresse: http://www.cs.put.poznan.pl/dweiss/carrot/

31

3.4. TECHNISCH RELEVANTES

gestellt wird. Dabei ist S eine diagonale Matrix (alle Werte auf 0, außer in der Diagonalen), die die Singul¨ arwerte enth¨alt. Der Unterschied ist beim Finden der Cluster am gr¨ oßten. Und zwar errechnet LINGO f¨ ur jeden Singul¨arwert einen dazu passenden Begriff, bzw. eine dazu passende Phrase (LINGO sucht auch nach Begriffsgruppen). Jeder gefundene Begriff wird nun flugs zum Clu¨ ster erkl¨ art. Dann werden noch die Dokumente entsprechend ihrer Ahnlichkeit zu diesen gefundenen Clustern jeweils einem dieser Cluster zugeordnet, fertig. Das System macht einen sehr guten Eindruck und die Idee hinter LINGO besticht ebenso durch ihre Einfachheit wie durch ihre Effektivit¨at.

3.4. TECHNISCH RELEVANTES

32

Teil II.

Definition

4. Technische Analyse 4.1. Ist-Analyse Ziel ist die Kl¨ arung der derzeitigen Situation im Kontext des Seabase Informationssystems. Identifikation des aktuellen Datenmodells, Definitionen von existierenden Schnittstellen, Identifikation der beteiligten Software Komponenten sowie insbesondere die Kl¨ arung, wie die Prozesse aktuell f¨ ur Erfassung und Recherche ablaufen.

4.1.1. Komponenten und Schnittstellen Die beiden Systeme, die haupts¨achlich zusammenarbeiten, um die Systemfunktionalit¨ at bereitzustellen, sind die Software Faust und der Webserver, der eine Apache+PHP Konfiguration nutzt. Bei Faust handelt es sich um ein Datenbanksystem mit einfachen Dokumentenmanagement Funktionen, das f¨ ur den Einsatz in Bibliotheken und ¨ahnlichen Einrichtungen, in denen bibliographische Objekte (Dokumente, B¨ ucher, Zeitschriften,. . . ) erfasst und verwaltet werden m¨ ussen, optimiert ist. Die Dokumenttypen sind sehr weitgehend flexibel definierbar; die f¨ ur die Erfassung ben¨otigten Felder k¨ onnen frei benannt und angelegt werden. Es erlaubt Verkn¨ upfungen mit Online-Quellen und das Erfassen und Speichern beliebiger digitaler Dokumente. Im ISL werden zwar die digitalen Dokumente sowie die Online-Quellen nach und nach st¨arker ins Blickfeld ger¨ uckt, Literaturhinweise auf Publikationen, die in der ISL-Bibliothek tats¨achlich auch in Papierform vorhanden sind, nehmen aber nach wie vor den gr¨oßten Teil des Datenbestandes ein. Die Schnittstelle zwischen der auf PHP basierenden Suche und der FaustDatenbank definiert sich u ¨ber eine Textdatei, die durch ein speziell entwickeltes Makro aus Faust heraus produziert wird. Deren Format ist sehr simpel aufgebaut. Es besteht aus einer Textzeile pro bibliographisches Objekt. Die Textzeile wiederum ist wie folgt aufgebaut:

4.1. IST-ANALYSE

36

id Component Model FAUST system

«artifact»

«executable»

Logical Model::Export data

Logical Model:: Faust

Seabase

import script

«artifact» Index data

search mask

Abbildung 4.1.: System-Komponenten Zeile ::= Feld1 "|" ... "|" Feldx "|" Deskriptoren Deskriptoren ::= Deskriptor ";" Deskriptoren | Deskriptor Sie besteht somit aus x durch | getrennten Feldern und einer Liste von durch ; getrennten Deskriptoren. Um welche Felder es sich handelt und in welcher Reihenfolge diese jeweils in den Zeilen zu finden sind ist aus Tabelle 4.1 (Seite 40) und Tabelle 4.2 (Seite 41) ersichtlich. Damit der Zugriff auf die Daten aus der Suche heraus performant ablaufen kann, wird diese Textdatei zun¨achst eingelesen, es werden die signifikanten Informationen erkannt (Listen von Autoren, Deskriptoren,. . . ) und in f¨ ur die Suche optimierter Form abgelegt.

4.1.2. Prozesse Es gibt im Wesentlichen zwei Hauptprozesse. Dabei handelt es sich zum einen um den Prozess Erfassung“ und den Prozess Recherche“. Beide sind beim ISL ” ”

37

4.1. IST-ANALYSE

aktuell im Einsatz. Die Erfassung wird von Mitarbeitern des ISL durchgef¨ uhrt. Der Prozess Erfassung (Abbildung 4.2 (Seite 38), Anwendungsf¨alle sind gr¨ un, Systemzust¨ ande sind rot dargestellt und produzierte Datenobjekte in blau) beginnt, sobald ein neues Dokument im ISL angeschafft wird oder der Erfassungsbedarf anderweitig aufkommt, z.B. durch eigene Recherchen im Internet. Ein solches Dokument wird zun¨ achst inhaltlich intellektuell analysiert und erfasst. Die Ergebnisse k¨ onnen dann in das Faust-System eingetragen werden. Dabei wird unter anderem eine inhaltliche Zusammenfassung (auch Kurzreferat genannt) des Dokuments im System hinterlegt. Des weiteren werden bibliographische Informationen eingegeben und das Dokument in die Begriffshierarchie des ISL (ISL-Thesaurus) eingegliedert. Sofern sich hierbei der Bedarf ergibt, den Thesaurus zu erweitern, wird das getan. Am Ende eines Arbeitstages dann wird der vierte Anwendungsfall, der Export, angestoßen. Dieser besteht im Wesentlichen aus der Auswahl eines Makros im Faust-System, welches selbst¨andig eine Liste mit den bibliographischen Informationen in eine Textdatei schreibt, die f¨ ur das online Suchformular zug¨angig ist. Die Kunden reagieren auf Informationsbedarf mit einer Suchanfrage, die sie im online Suchformular eintragen. Dabei haben sie Zugriff auf eine Schlagwortliste sowie auf eine Liste aller verzeichneten Autoren. Siehe Darstellung des Ablaufs, Abbildung 4.3 (Seite 39). Die Suchmaske, zu sehen in Abbildung 4.4 (Seite 41), erlaubt die Eingabe von Autor, Titel, zwei Schlagworten (Deskriptoren), Erscheinungsjahr, Sachgebiet und der Bibliothekssignatur sowie zus¨atzlich eines Stichwortes, nach welchem das System in den Zusammenfassungen sucht. Alle Eingaben sind mit UND verkn¨ upft.

4.1.3. Datenmodell Das Datenmodell, welches sich letztlich online wiederspiegelt, wird durch den Export-Vorgang aus der Software Faust heraus erzeugt. Es besteht f¨ ur jede Publikation aus einer langen Liste an Feldern mit ihren Werten und einer Liste an zugeh¨ origen Deskriptoren. Da die Deskriptoren als Liste exportiert werden, sind die hierarchischen Beziehungen, die im Faust existieren, online nicht mehr verf¨ ugbar und tauchen somit auch im Datenmodell nicht auf. Siehe Tabelle 4.1 (Seite 40).

4.1. IST-ANALYSE

38

Neue Publikation liegt vor.

Thesaurus aktualisiert

Startereignis

V

Publikation

Zusammenfassung und Klassifikation erstellen

V Thesaurus

XOR

Klassifikation ermittelt

Thesaurus unzureichend

Daten in Faust eintragen Thesaurus erweitern

Neue Daten liegen in Faust vor

V

Geschäftsschluss

V

Legende Ereignis

V oder

Datendatei

Export anstoßen

V

Information

und

Funktion

Neue Publikation erfasst

Abbildung 4.2.: Erfassungsprozess

Endereignis

39

4.1. IST-ANALYSE

Anfrage formulieren Suchseite aufrufen

Suchbegriffe angeben

Anfrage beantworten

Hauptsächlich manuelle Aktivität. Nicht extra angegeben aber dennoch vorhanden ist die verfügbare Hintergrundinformation wie der Thesaurus sowie die Liste von Autoren, die das Angeben von Suchbegriffen erleichtert.

Datendatei auslesen

Zeigt den Ablauf auf dem Server, der anhand der Anfrage eine sinnvolle Antwort erarbeiten muss. Ranking erzeugen

Dokument selektieren

Liste mit Dokumenten zeigen

Diese Aktivität ist wieder in erster Linie manuell.

Dokument auswählen

Created by Borland® Together® Designer Community Edition

Abbildung 4.3.: Rechercheprozess

4.1. IST-ANALYSE

40

Bezeichner

Typ

Zweck

Titel

Text

Titel des Dokuments

Jahr

Text

Erscheinungsjahr

ND

Text

eindeutige Dokumentnummer, 8-stellig

DT

Text

Dokumenttyp (z.B. J f¨ ur Journal)

LI

Text

Literature Indicator (z.B. S f¨ ur Selbst. Einheit)

CODE

Text

6-stelliger Zeitschriftencode (Dummy)

Land

Text

Erscheinungsland

ISSN

Text

International Standard Serial Number

ISBN

Text

International Standard Book Number

Sprache

Text

Sprache der Publikation

Sprache Kurzref.

Text

Sprache des Kurzreferats

Bd.

Text

Angabe einer Bandnummer

H.

Text

Angabe einer Heftnummer

S.

Text

Angabe einer Seitennummer

Abb.

Text

Anzahl Abbildungen

Tab.

Text

Anzahl Tabellen

Lit.

Text

Literaturangaben (Literaturzitate)

Sig.

Text

Signatur der Bibliothek

Auswerter

Text

Mitarbeiter inhaltliche Erschließung

Erfasser

Text

Mitarbeiter Formalerschließung

PLZ

Text

Postleitzahl des Verlags

PZB

Text

Postzustellbezirk

L¨ andercode

Text

Land des Erscheinens

Sachgebiete

Text

Liste zugeh¨origer Sachgebiete

Titel¨ ubersetzung

Text

Titel¨ ubersetzung des Originaltitels

Titelanmerkung

Text

Titelanmerkung (z.B. Special Report)

Verfasser

Text

Der Verfasser (eine Person)

Korp. Verfasser

Text

Herausgebende Korporation oder Institution

Herausgeber

Text

Name des Herausgebers

Zeitschriftentitel

Text

Titel der Zeitschrift Tabelle 4.1.: Dataobject

41

4.1. IST-ANALYSE

Abbildung 4.4.: Screenshot der Suchmaske

Bezeichner

Typ

Zweck

Erscheinungsort ¨ Ubergeord. Publ.

Text

Erscheinungsort

Text

Name der Publikation, die das Objekt beinhaltet

Verlag

Text

Name des Verlages

Ort

Text

Ort des Verlages

Str./Postf.

Text

Adresse des Verlages

ID-Nr

Text

unbekannte Nr

Freie Begriffe

Text

Schlagworte, die nicht im Thesaurus vorkommen

Kurzreferat

Text

Kurze Zusammenfassung des Inhalts

URL

Text

Bei online Dokumenten dessen URL

Tabelle 4.2.: Dataobject (Fortsetzung)

4.1. IST-ANALYSE

42

4.1.4. Einschr¨ ankungen Das oben genannte Vorgehen ist etwas limitiert - alleine schon dadurch, dass die Klassifikation aus dem Literaturerfassungssystem Faust nicht vollst¨andig exportiert wird. Der Export wird mithilfe eines Makros durchgef¨ uhrt. Dieses Makro kann mithilfe eines Faust-spezifischen Basic Dialekts entwickelt werden. Dabei ist man nat¨ urlich generell der M¨achtigkeit der API unterworfen, die Faust den Basic Programmen bietet. Wie aus der Dokumentation der API zu entnehmen ist, erlaubt die Sprache das Extrahieren genau eines Oberbegriffes zu einem gefundenen Deskriptor. Falls der Thesaurus die M¨oglichkeit der Polyhierarchie (das heißt, dass ein Begriff mehrere Oberbegriffe haben und somit zu mehreren Begriffs-Klassen gleichermaßen geh¨oren kann) nutzt, geht diese beim Export verloren. Gew¨ ohnliche Hierarchien dagegen sind jedoch im Prinzip vollst¨andig exportierbar, da Faust Basic durch die Befehle desc down und desc next das Traversieren der Unterbegriffe eines Begriffes erlaubt. Derzeit wird diese M¨oglichkeit jedoch nicht genutzt. Ein gebr¨ auchliches Mittel, die Recherche in Informationssystemen zu erleichtern, sind sogenannte Synonymringe. Ein solcher Ring besteht aus einem Hauptbegriff, unter welchem die Dokumente erfasst werden, und mehreren Synonymen. Diese Synonyme k¨ onnen dann in der Suche anstatt des eigentlichen Begriffes verwendet werden. Das ist deswegen hilfreich, weil verschiedene Menschen mit verschiedener Vorbildung und einem unter Umst¨anden auch unterschiedlichem Kulturkreis, andere Begriffe f¨ ur die selbe Sache verwenden. Sofern also bekannt ist, dass Dinge unterschiedlich benannt werden k¨onnen, so macht es Sinn, diese unterschiedlichen Benennungen als Synonym im System zu hinterlegen. Faust Basic erlaubt das Extrahieren genau eines Synonyms. Sind mehrere Synonyme hinterlegt, wird nur das erste ausgelesen. Derzeit werden gar keine Synonyme ausgelesen. Betrachtet man das System aus der Sicht der Nutzer, f¨allt einem zun¨achst auf, dass . . . • . . . offenbar die Felder Stichwort und Deskriptor gleichermaßen nach inhaltlichen Kriterien selektieren, w¨ahrend die genaue Wirkungsweise unklar bleibt. Die Angabe eines Sachgebietes stellt sogar die dritte M¨oglichkeit dar, wobei diese nur sehr grob selektiert. • . . . um Deskriptoren f¨ ur die Suche verwenden zu k¨onnen, der Suchende die

43

4.2. PROTOTYP verf¨ ugbaren Deskriptoren kennen muss. Dazu wird eine Liste angeboten, die die Deskriptoren alphabetisch sortiert anzeigt. Diese Liste beinhaltet eine ganze Reihe sehr spezieller Begriffe und ist sehr umfangreich. Benutzer m¨ ussen sich folglich durch die langen Listen arbeiten und dort passende Begriffe w¨ ahlen. Der Autor findet den Prozess aufw¨andig und abschreckend. • . . . die Signatur den meisten Kunden unbekannt sein d¨ urfte, da sie die Erfassungsmethodik der ISL-Bibliothek wiederspiegelt und deren Kenntnis voraussetzt. Somit werden sie das gleichnamige Feld kaum ausf¨ ullen k¨ onnen und es kann genau so gut entfernt werden, um das Formular u ¨bersichtlich zu halten. • . . . keine Volltextsuche existiert. • . . . viele andere Felder des Datenmodells in der Suchmaske nicht angeboten werden.

4.2. Prototyp Zur Erinnerung: es soll ein Clustering Konzept dargestellt werden, mit dessen Hilfe die Suche im System qualitativ verbessert werden kann. Dadurch soll es m¨oglich sein, die Struktur von Suchergebnissen besser zu u ¨berblicken und sich aus der (eventuell sehr großen) Menge an Ergebnissen diejenigen zu selektieren, die am ehesten in Frage kommen.

4.2.1. Oberfl¨ achenprototyp Zun¨ achst soll ein Modell der Benutzerschnittstelle zur Diskussion gestellt werden. Dies geschieht, um fr¨ uhzeitig zu demonstrieren, wie sich Abl¨aufe und Designs letztendlich in einem fertigen Produkt wiederspiegeln k¨onnen. Da in den Gespr¨ achen mit dem ISL h¨ aufig erw¨ahnt wurde, dass Personalisierung ein Thema ist, wurde dies in dem nun folgenden Vorschlag mit eingebaut. Abbildung 4.5 zeigt also einen Vorschlag, wie sich Clustering f¨ ur den Benutzer darstellt. Dieser Vorschlag beinhaltet ein flaches Clustering der Dokumente (keine hierarchischen Cluster). Im Folgenden werden die durch nummerierte gelbe Kreise markierten Bereiche n¨aher erl¨autert (die Nummer entspricht dem Platz in der folgenden Aufz¨ ahlung).

4.2. PROTOTYP

44

Abbildung 4.5.: Recherche-Formular 1. Dieser Block beinhaltet die f¨ ur die Arbeit wesentlichen Ergebnisse, n¨amlich die ermittelten Cluster. Es werden all die Cluster aufgelistet, dessen Dokumente sich in der Ergebnisliste wiederfinden. Dieser Block erlaubt somit, die Ergebnisliste durch Mausklick (die Namen sind aktive anklickbare Elemente) auf die Dokumente des gew¨ahlten Clusters einzuschr¨anken. Ein ahnliches Prinzip nutzt die Suchmaschine Clusty. Siehe auch S. 29 und S. ¨ 30. 2. Der Aktionskasten beinhaltet die M¨oglichkeiten, die der Nutzer hat. Alle Aktionen beziehen sich direkt auf die Ergebnisliste bzw. die selektierten Dokumente der Liste. Anzeigen f¨ uhrt dazu, dass die ausgew¨ahlten Dokumente in einer Detail-Ansicht dargestellt werden. Diese Funktionalit¨at besitzt das aktuelle System bereits in ¨ahnlicher Form. Speichern soll dem Nutzer erlauben, die ausgew¨ahlten Dokumente zu sichern. Damit dies m¨ oglich ist, muss die Web Site personalisierbar sein, denn die Funktion setzt voraus, dass sich der Nutzer in sein Profil einloggen kann und die gew¨ ahlten Dokumente dort in seinem Profil als Verweise hinterlegt werden. Drucken dagegen entspricht im Wesentlichen der Funktion Anzeigen, mit dem einzigen Unterschied, dass die Anzeige zum Beispiel in einem neuen Fenster auf eine Weise passiert, die f¨ ur das Ausdrucken optimiert ist.

45

4.2. PROTOTYP

Abbildung 4.6.: Verweis auf ¨ahnliche Dokumente

Der Druck-Dialog des Browsers ¨offnet sich automatisch. 3. Das Suchformular ist der Google-Suche nachempfunden worden, da in einem vorhergehenden Gespr¨ach signalisiert wurde, dass die Art und Weise, wie Google das Formular aufbaut, als sehr angenehm verst¨andlich empfunden wurde. Man besitzt auf diese Weise eine sehr intuitive M¨oglichkeit, Suchbegriffe mit Hilfe boolscher Logik zu kombinieren, ohne dass eine spezielle Anfragesyntax notwenig w¨ urde. M¨ochte der Nutzer jedoch eher nach bibliographischen Gesichtspunkten detailliert nach Autoren, Erscheinungsdatum, Verlag o.¨a. suchen, so f¨ uhrt ihn der Verweis Erweiterte Suche zu einem entsprechend komplexeren Suchformular. 4. Die Ergebnisliste ist entsprechend der Angabe im Suchformular auf eine bestimmte Anzahl an Eintr¨agen beschr¨ankt. Sollte die Menge an Ergebnissen die Anzahl u ¨bersteigen, kann der Nutzer hier die anzuzeigende Seite ausw¨ ahlen und auf diese Weise in der Ergebnisliste bl¨attern. Um den obigen Vorschlag noch etwas zu erweitern, ließe sich f¨ ur jedes einzelne gefundene Dokument der dazugeh¨orige Cluster anzeigen, bzw. alle Dokumente des Clusters. In Abbildung 4.6 wird die Zeile mit einem Pfeil markiert, die den Verweis auf den Cluster beinhaltet.

4.2.2. Prozess: Cluster erzeugen Dieser Vorgang soll Cluster in der Datenbank anlegen, so dass jedem Cluster eine Reihe von Dokumenten zugeordnet sind. Er teilt sich in Aktivit¨aten auf, die denen des KDD Prozesses (siehe Abschnitt 5.2) entsprechen. Die folgenden Abs¨ atze beschreiben also diesen Vorgang und entsprechen jeweils einem Ab-

4.2. PROTOTYP

46 Analyse

Dokument analysieren

nächstes Dokument

nein

fertig? ja

Dokumente analysiert

«realize»

Selektion

Analyse

Transformation

Cluster

Interpretation

«realize» Selektion Export aus Faust

Import in Seabase

DB Anfrage

«realize»

Cluster

Erfasser Cluster erkennen

Cluster prüfen

ok? Parameter anpassen

ja

Cluster speichern

nein

Abbildung 4.7.: Clustering Prozess

schnitt des besagten KDD Prozesses. Abbildung 4.7 (Seite 46) zeigt den Ablauf in einem UML Aktivit¨ atsdiagramm. Selektion ist der erste Teil von KDD. In S. 46 ist es die gleichnamige Aktivit¨at ganz zu Beginn. Er besteht aus den Export- und Import-Vorg¨angen, durch die der Datenbestand des Systems aktualisiert wird, sowie aus dem Selektionsvorgang, der die zu clusternden Daten ausw¨ahlt. Preprocessing entspricht dem Extrahieren von wesentlichen Merkmalen der Datens¨ atze (Feature Selection) und l¨auft im Diagramm unter der Bezeichnung Analyse“. (Siehe auch Abschnitt 5.3.3.) Ergebnis dieser Aktivit¨at ist eine Li” ste von Features, die sich als Beschreibung von Datens¨atzen tauglich erwiesen haben. Zudem wurden die Dokumente bereits auf der Basis dieser Features statistisch ausgewertet, so dass am Ende dieses Schrittes zum Beispiel alle n¨otigen Statistiken vorliegen. Transformation nennt sich jener Schritt, der die Daten f¨ ur die Cluster Analyse so vorbereitet, dass der Algorithmus die Daten in einem f¨ ur ihn passenden

47

4.2. PROTOTYP

Format bekommt. Da der gew¨ ahlte Ansatz auf dem Vektorraummodell (S. 56) basiert, besteht das Ergebnis aus einer Menge von Dokument-Vektoren, die insgesamt die Term-Dokument-Matrix darstellen. Data Mining heißt der vierte KDD Schritt, der hier der Aktivit¨at Cluster“ ” entspricht. Der Algorithmus nimmt die Vektoren als Eingabe und erzeugt eine Reihe von Clustern. Die Anzahl der Cluster wird jedoch fest vorgegeben. Diese Aktivit¨ at setzt voraus, dass die Qualit¨at der Cluster u uft wird, so dass ¨berpr¨ die M¨ oglichkeit besteht, die Clusteranzahl anzupassen und den Algorithmus mit diesem ge¨ anderten Parameter erneut laufen zu lassen. Es ist noch nicht ersichtlich, wie die Laufzeit des Algorithmus sein wird. Er hat prinzipiell eine exponentielle Laufzeitcharakteristik, so dass zu erwarten ist, dass er bei großen Datenmengen sehr lange dauert. Dadurch k¨onnte es sich als hilfreich erweisen, wenn diese Zyklen manuell gesteuert werden k¨onnen, damit nach Ermessen der zust¨ andigen Person die Struktur vorzeitig als ausreichend optimal“ erkl¨art ” werden kann. Es gilt hier, ein Gleichgewicht zwischen Laufzeit (Geduld) und Qualit¨ at herzustellen. Interpretation wird die letzte Aktivit¨at genannt. Sie besteht darin, Namen f¨ ur die Cluster zu vergeben, die die durch sie repr¨asentierten Dokumente thematisch am besten identifizieren. Es bietet sich hier an, Begriffe aus dem Thesaurus zu verwenden. Ergebnis dieses letzten Schrittes sind eine Liste von benannten Clustern und deren zugeordneten Dokumenten.

4.2.3. Datenmodell Die im System abzulegenden Informationen umfassen die Dokumente und Autoren sowie Terme (Deskriptoren), wie sie aus dem Faust exportiert wurden. ¨ Im Diagramm sind aus Gr¨ unden der Ubersicht nicht alle Attribute angegeben, sondern nur die f¨ ur die Cluster-Analyse Wesentlichen (welche Felder insgesamt vorhanden sind, wurde ja bereits in der Ist-Analyse oben aufgelistet).

4.2.4. Komponenten und Schnittstellen Das System besteht zum einen nat¨ urlich aus der Faust-Software, die vom ISL f¨ ur die Erfassung von Dokumenten verwendet wird. Diese Software exportiert wie im Diagramm angegeben seinen Datenbestand, der von einer Import-Komponente eingelesen wird. Im Hintergrund des Ganzen steht eine SQL Datenbank; diese wird von der

4.2. PROTOTYP

48

Cluster -

Author

name: String

-

belongsTo

firstName: String lastName: String

writtenBy

Document -

faustId: int abstract: String title: String subject: List

relatesTo Descriptor parent

-

Feature

name: String language: char[2]

Abbildung 4.8.: Datenstruktur

FAUST system

«artifact» Export data

Produces an Index for selected fields, to allow potential search applications to access the clustering data in a quick and optimized manner.

«executable» Faust

SeaCLUSTER core

Importer

Indexer

Data Access

Interpreter

Writes all imported and infered data into a SQL database, which can be used by client software afterwards, to make use of the cluster data.

Finds names for the clusters.

Analyzer

Transformer

Abbildung 4.9.: System-Komponenten

Clusterer

49

4.2. PROTOTYP

Data Access Komponente kontrolliert. Auf welche Weise der Zugriff passieren soll, ist an dieser Stelle offen gelassen. (Auf jeden Fall sollte es m¨oglich sein, PostgreSQL als Datenbanksystem zu verwenden. Das ist bei der Wahl zu bedenken.) Das eigentliche Clustering findet in der Analyse Komponente statt, die alle f¨ ur die Analyse des Datenbestands n¨otigen Algorithmen beherbergt. Der Indexer baut aus den Inhalten der Datenbank einen Index auf, der Grundlage f¨ ur zu beantwortende Suchanfragen wird. Der Clusterer ermittelt die Cluster und legt ihre Repr¨asentation in der Datenbank ab. Der Analyzer ermittelt f¨ ur die Inhalte der Datenbank passende Features. Siehe dazu auch Abschnitt 5.3.3 (Seite 59).

4.2. PROTOTYP

50

5. Wissenschaftliche Analyse Es ist geplant, einen Clustering Algorithmus einzusetzen, um die Suche in den Daten des ISL effektiver zu gestalten. Die Zielsetzung findet sich im Forschungsbereich Information Retrieval wieder, der in diesem Kapitel zun¨achst erl¨autert werden soll. Zudem sollen alternative und/oder einfachere Methoden aufgezeigt werden, die ebenfalls zur Verbesserung einer Suchfunktion beitragen k¨onnen. Clustering ist eben bei weitem nicht die einzige Methode, so etwas zu erreichen. Weil die Erw¨ ahnung des Begriffs h¨aufig Assoziationen hervorruft, die hier nicht passen, sei eine Erl¨ auterung des Begriffs eingeschoben. Der Begriff Clu” ster“ wird in den unterschiedlichsten Kontexten verwendet. Cluster in der Wirtschaft werden als Verb¨ ande von Betrieben verstanden, in der Astronomie versteht man unter Clustern Sternhaufen und auch die Physik und die Mathematik verwenden jeweils eigene Bedeutungen des Begriffs. All diese Begriffe haben jedoch eines gemeinsam: sie beschreiben die Gruppierung von etwas. Sei es von Betrieben in der Wirtschaft oder von Sternen in der Astronomie oder gar von Computern in der Informationstechnik, in jedem Fall handelt es sich um eine Gruppierung oder Anh¨ aufung von gleichartigen Dingen. In dieser Arbeit soll Clustering f¨ ur die Gruppierung von Dokumenten stehen. Die erzeugten Gruppen lassen sich auch als Klassen von Dokumenten betrachten. Die Vorgehensweise passt sich in das Forschungsfeld Information Retrie” val“ ein und wird ebenfalls im Bereich Knowledge Discovery from Databases“ ” (KDD) [FPSS96] eingesetzt. Daher sollen diese beiden Felder kurz vorgestellt werden.

5.1. Information Retrieval Der Forschungsbereich Information Retrieval“ (kurz: IR) existiert in der In” formatik bereits seit vielen Jahren. Das Buch von van Rijsbergen mit dem Titel Information Retrieval“ [VR79] kam beispielsweise in der ersten Ausf¨ uhrung ” bereits 1975 heraus und die Inhalte der Thematik wurden schon vorher in Uni-

5.1. INFORMATION RETRIEVAL

52

versit¨ aten gelehrt. Van Rijsbergen identifiziert die 1940er Jahre als die Zeit, in der man begann, dem IR mehr Aufmerksamkeit zu schenken. Es handelt sich also um eine Problematik, die sehr lange schon eine gewisse Wichtigkeit in der Informatik erlangt hat und die diese nie wirklich verloren hat. Besonders seit dem Aufkommen des Internet und den Suchmaschinen, die oft eher schlecht als recht Dokumente aus den schier unendlichen Dokumentenmengen fischen k¨ onnen, ohne die heute aber niemand auskommen k¨onnte, hat das Thema IR neuen Auftrieb bekommen. IR besch¨ aftigt sich in der Hauptsache damit, mit welchen Mechanismen sich am besten Informationen (insbesondere Dokumente) auffinden lassen. Insbesondere findet sich in der Literatur ([VR79]) die Unterscheidung, dass IR Systeme keine Antworten, die das gesuchte Wissen direkt beinhalten, geben, sondern ausschließlich Hinweise dar¨ uber liefern, in welchen Dokumenten jenes am wahrscheinlichsten zu finden sein wird. Somit sind die heutigen Suchmaschinen wie Google, Overture oder Fireball eigentlich ganz klassische IR Systeme. Van Rijsbergen teilt den Bereich IR in drei Teilbereiche auf, die sich f¨ ur IR als besonders wesentlich herausgestellt haben. Das sind zum einen die inhaltliche Analyse, zum anderen die Informationsstruktur und als drittes die Bewertung. Der erste Teilbereich Analyse“ besch¨aftigt sich damit, sinnvolle Repr¨asentatio” nen (siehe auch S. 56) von Dokumenten zu finden, die von Computern verarbeitbar sind. Dies ist deshalb ein wichtiger Aspekt, weil die hier betrachteten Dokumente zum gr¨ oßten Teil von Menschen f¨ ur Menschen geschrieben wurden und folglich in einer nat¨ urlichsprachlichen Form vorliegen. Diese nat¨ urlichsprachliche Form dem Computer verst¨andlich zu machen, ist nach wie vor unm¨oglich. Es gibt sehr viele ambivalente Konstrukte in der Sprache, deren Bedeutung sich dem menschlichen Leser erst im Kontext erschließt und mitunter aktuelles Hintergrundwissen verlangt. Dies ¨ahnelt in gewisser Weise Insider-Witzen“, ” u ¨ber die nur Personen mit gleichem Hintergrundwissen lachen k¨onnen. Nichtsdestotrotz gibt es durchaus Bestrebungen, Texte linguistisch zu erfassen und Satzkonstrukte zu erkennen. (An dieser Stelle schneidet sich das Fachgebiet Information Retrieval mit dem der Computerlinguistik. Es lohnt sich somit, interdisziplin¨ ar vorzugehen.) Trotz aller Bem¨ uhungen und auch trotz aller Erfolge in dem Bereich hat es noch immer wenig damit zu tun, dass der Computer nun den Text verstehen“ k¨ onnte, so wie es ein Mensch t¨ate. Das Ziel der Bem¨ uhungen ” ist es stattdessen, den Text so zu strukturieren, dass er sich f¨ ur eine automatisch durchgef¨ uhrte Auswertung eignet. Dabei werden Informationen aus dem

53

5.1. INFORMATION RETRIEVAL

Text extrahiert und in formelle Strukturen u uhrt. Diese Methoden bauen ¨berf¨ eine Statistik u ¨ber die verwendeten Begriffe auf und schlussfolgern auf der Basis dieser Statistik. Sie sind damit zum Beispiel in der Lage, eine Wahrscheinlichkeit zu errechnen, nach der das ausgewertete Dokument mit einer Suchanfrage (oder anderen Dokumenten im Fundus) korreliert. Der zweite Teilbereich, die Informationsstruktur, basiert auf dem Gedanken, dass die unterschiedlichen Dokumente in irgend einer Form in Beziehung zu¨ einander stehen. Zum Beispiel k¨onnen sie thematische Ahnlichkeiten aufweisen, vom selben Autor verfasst worden sein oder eine andere Eigenschaft aufweisen, die sie in Beziehung stellt. Selbst die Erkenntnis, dass zwei Dokumente keinerlei ¨ Ahnlichkeiten aufweisen, stellt eine Art von Beziehung dar. Zu guter Letzt ist eine Metrik von N¨oten, die es erm¨oglicht, dass verschiedene Methoden bewertet und verglichen werden. Es stellt sich die Frage, auf welcher Basis die Effektivit¨ at eines IR Systems gemessen werden kann. Diese Frage konnte bereits 1966 von Cleverdon (siehe auch [CMK66]) beantwortet werden, der einen Katalog von mehreren Kriterien aufgestellt hatte, mit deren Hilfe Informationssysteme bewertet werden k¨onnen. Van Rijsbergen erkl¨art, dass von den ermittelten Kriterien nur precision und recall f¨ ur die Effektivit¨at von IR Systemen ausreichende Aussagekraft besitzen, weshalb sich die IR community auf diese beiden beschr¨ ankt. Precision gibt das Verh¨altnis zwischen der Anzahl von tats¨ achlich relevanten Dokumenten und der Anzahl der insgesamt ermittelten Dokumente an. Eine Precision von 1 hieße demnach, dass alle im Rahmen einer Suchanfrage ermittelten Dokumente tats¨achlich relevant w¨aren, w¨ahrend ein Wert von 0 daf¨ ur st¨ unde, dass kein Dokument der Ergebnismenge relevant w¨ are. Das zweite Kriterium, Recall, beschreibt das Verh¨altnis zwischen der Anzahl relevanter Dokumente in der Ergebnismenge und der Anzahl relevanter Dokumente im System insgesamt. Ein Wert von 0 hieße demnach, dass von allen relevanten Dokumenten keines ausgegeben worden w¨are und ein Wert von 1 hieße, dass sich im Gegenteil s¨amtliche relevanten Dokumente in der Ausgabemenge bef¨ anden. Abbildung 5.1 zeigt, welche Kombinationen aus Ergebnissen und dessen Relevanz m¨ oglich sind. Diese einzelnen Mengen zueinander in Beziehung gesetzt ergibt eine ganze Reihe mehr oder weniger sinnvolle Maßzahlen, von denen Precision und Recall jeweils eine ist. Als Beispiel sei an dieser Stelle noch zus¨atzlich der Wert mit der Bezeichnung Fallout definiert, der die gegens¨atzliche Bedeutung 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 the measurement of effectiveness. Relevance will once again be assumed to have its broader meaning of 'aboutness' and 'appropriateness', that is, a document is ultimately determined to be relevant or not by the user. Effectiveness is purely a measure of the ability of the system to satisfy the user in terms of the relevance of documents retrieved. Initially, I shall concentrate on measuring effectiveness by precision and recall; a similar analysis could be given for any pair of equivalent measures.

5.2. KNOWLEDGE DISCOVERY IN DATABASES

54

It is helpful at this point to introduce the famous 'contingency' table which is not really a contingency table at all.

RELEVANT

NON-RELEVANT

RETRIEVED

A ∩ B

A ∩B

B

NOT RETRIEVED

A ∩ B

A ∩B

B

A

A

N

(N = number of documents in the system) Abbildung 5.1.: Tabellarische Darstellung aus [VR79] zur¨ uckgeliefert wurden; und er ist entsprechend 0, wenn kein unrelevantes Dokument zur¨ uckgeliefert wurde. precision = recall = f allout =

|A ∩ B| |B| |A ∩ B| |A| A ∩ B A

In aktuellen Forschungsbeitr¨agen werden die beiden Werte h¨aufig kombiniert und in eine Bewertungsfunktion u uhrt, die den beiden Werten jeweils eigene ¨berf¨ Priorit¨ aten gibt, wie es beispielsweise bei einem gewichteten Mittel der beiden Werte der Fall ist. Wie die Gewichtungen verteilt werden, h¨angt stark von der Dom¨ ane, sprich den vorhandenen Dokumenten und deren Struktur, ab. Diese Arbeit beleuchtet nun haupts¨achlich den zweiten Teilbereich des IR, der sich um die Beziehungen der Dokumente untereinander k¨ ummert.

5.2. Knowledge Discovery in Databases Bei KDD, wie von Fayyad et. al [FPSS96] vorgeschlagen, handelt es sich um einen Prozess, der darauf abzielt, Muster in Datenmengen zu erkennen. Die Motivation dazu ergibt sich daraus, dass diese Datenmengen immer gr¨oßer werden, und dass auch Dank des Internets und der globalen Vernetzung der Zugriff auf diese Daten sehr wichtig geworden ist. In der Zeit des Dotcom-Booms hieß es, nicht der Große fresse den Kleinen, sondern der Schnelle den Langsamen. Dies ließe sich ohne weiteres auch so umdichten, dass der Wissende den Unwissenden frisst. Korrekte und aktuelle Informationen zu besitzen ist also ein Wettbe-

55

5.2. KNOWLEDGE DISCOVERY IN DATABASES

Abbildung 5.2.: KDD Prozess von Fayyad et al.

werbsvorteil. Leider gen¨ ugt es dazu nicht, haufenweise Rohdaten zu sammeln, denn am Ende muss ein Mensch diese Daten interpretieren k¨onnen. Große Mengen Rohdaten zu interpretieren und dort befindliche Zusammenh¨ange zu erkennen, dies ist das Ziel von KDD Prozessen. Im Unterschied zum Information Retrieval suchen KDD Prozesse explizit nach Wissen und nicht nur nach Dokumenten, die (mit einer bestimmten oder unbestimmten Wahrscheinlichkeit) das Wissen enthalten. Abbildung 5.2 (Seite 55) zeigt den Prozess. Der f¨ ur den Prozess wichtigste Schritt ist das Data Mining. Die Schritte vorher haben zur Aufgabe, die Daten zu selektieren und vorzubereiten, damit die Data Mining Algorithmen u ¨berhaupt eine passende Eingabe bekommen, und danach steht nur noch der Schritt Evaluation. Der erste Schritt Selektion soll darstellen, dass es zun¨achst notwendig ist, aus den Datenmengen eine Auswahl zu treffen, die die zu analysierenden Daten enth¨ alt. Welche Daten in die Analyse mit einbezogen werden kann durchaus starke Auswirkungen auf die Ergebnisse haben. Wenn wichtige Informationen ignoriert werden, sind die Ergebnisse m¨oglicherweise nicht repr¨asentativ, und wenn zu viele unwichtige Daten mit einbezogen werden, k¨onnen die Ergebnisse verf¨alscht werden und Aspekte anzeigen, die f¨ ur den Anwendungsfall uninteressant sind. Zudem steigt h¨ aufig die Laufzeit der Algorithmen je nach Gr¨oße der Eingabemenge, so dass schon aus rein technischen Gr¨ unden eine Eingrenzung der Eingabe sinnvoll wird. Danach kann es n¨ otig sein, die Daten im Schritt Preprocessing zu s¨aubern

¨ VON DOKUMENTEN 5.3. REPRASENTATION

56

oder zu konsolidieren. Beispielsweise geh¨ort dazu, unvollst¨andige oder fehlerhafte Daten zu erkennen und zu entfernen. Auch k¨onnen an dieser Stelle Summen gebildet werden, falls diese f¨ ur den Anwendungsfall anstatt der eigentlichen Daten interessant sind. In jedem Falle wird hier bereits auf simple Weise ein bereinigtes Modell der Daten erzeugt, das der n¨achste Schritt als Eingabe verwendet. Dabei handelt es sich um den Schritt Transformation. Er ist notwendig, weil der Algorithmus u ur den Ablauf des ¨blicherweise Daten in einem speziellen, f¨ Algorithmus optimalen, Format ben¨otigt, in das die vorhandenen Daten erst gewandelt werden m¨ ussen. Der Algorithmus selber wird durch den darauf folgenden Schritt Data Mining dargestellt. Hier konzentriert sich das Forschungsinteresse, da die anderen Schritte mit wohlbekanntem Programmierhandwerk ohne gr¨oßere Probleme durchgef¨ uhrt werden k¨ onnen. Die Probleme in den obigen Schritten sind eher organisatorischer Natur (es m¨ ussen gut ausgebildete Mitarbeiter existieren, die nicht nur technisches sondern auch fachliches Know-how besitzen). Daten umzuwandeln ist beispielweise eine inzwischen sehr gut beherrschte Anforderung an Computersysteme. Data Mining Algorithmen dagegen sind h¨aufig mit komplexer Mathematik ausgestattet und lassen sich in das vergleichsweise neue Forschungsfeld der K¨ unstlichen Intelligenz (KI) einordnen (kommerziell erfolgreiche Anwendungen ca. seit Mitte der 1980er Jahre1 ). Der letzte Schritt nach dem Data Mining steht f¨ ur die Interpretation bzw. Auswertung der Ausgaben des Algorithmus. Diese kann beispielsweise darin m¨ unden, dass die Ausgaben als neue, st¨arker abstrahierte Daten in der Datenbank abgelegt werden, die sp¨ater in anderen Prozessen Anwendung finden. Es k¨ onnte jedoch ebenso eine Art Report erzeugt und pr¨asentiert werden.

5.3. Repr¨ asentation von Dokumenten Auf dem Weg zu Dokumenten-Clustern stehen wir zun¨achst der Frage gegen¨ uber, auf welche Weise die vorliegenden Dokumente im System repr¨asentiert werden, so dass die inhaltlichen Aspekte vergleichbar werden. Hier gibt es einige Ans¨ atze, die von sog. Word-Bags bis hin zu linguistischen Systemen reichen. In den meisten F¨ allen wird f¨ ur die Repr¨asentation der Dokumente das Vektorraummodell (Vector Space Model, VSM) verwendet. Dies basiert letzt1

Seite 24 in [RN95]

¨ VON DOKUMENTEN 5.3. REPRASENTATION

57

endlich auf der Idee, die Dokumente jeweils als multidimensionale Vektoren darzustellen. Definition: Eine Dimension des Vektors wird Feature genannt. Denn jede Dimension beschreibt eine Eigenschaft des Dokuments auf eine zun¨achst nicht n¨aher spezifizierte Weise. Definition: Im Vektorraummodell repr¨asentiert der Vektor v ein Dokument d aus der Menge aller Dokumente D auf der Basis von n ausgew¨ahlten Features wie folgt: v(d) = {f1 , . . . , fn }, d ∈ D |

{z

nf eatures

(5.1)

}

5.3.1. Einordnung in Situation des ISL Im Falle des ISL existiert eine manuell angelegte Klassifikation auf der Basis eines multihierarchischen Thesaurus sowie einer groben Einteilung in Sachgebiete. Dokumente werden klassifiziert, indem sie eine Kombination an Begriffen aus dem Thesaurus sowie ein Sachgebiet zugewiesen bekommen. Eine Klasse definiert sich also durch die Kombination aus Begriffen sowie aus dem Sachgebiet. Um dies formell darzustellen sei nun K die Menge aller Klassen, S die Menge aller Sachgebiete, D die Menge aller Dokumente und T die Menge aller Terme. Dann l¨ asst sich eine Funktion desc definieren, die beschreibt, welche Begriffe aus T einem Dokument D zugeordnet werden. Und mit der Hilfe von desc l¨asst sich die Menge K wie folgt definieren. P(T ) = {X|X ⊆ T } desc

:

D → P(T )

K = {(X, s)|s ∈ S, X ∈ P(T ) ∧ ∃d ∈ D, desc(d) = X}

(5.2)

Die folgenden Abschnitte verwenden die hier eingef¨ uhrten Bezeichnungen S, T, D und K f¨ ur die jeweilige dargestellte Problematik.

5.3.2. Das Dokument als Wortsack (aka word-bag) Ein Text besteht aus der Menge seiner Worte. Auch wenn diese Erkenntnis zun¨achst ¨ außerst naiv klingt, so ist selbst daraus eine einfachste Repr¨asentation eines Dokuments m¨ oglich. In diesem einfachsten Falle ist jedem Wort ein

¨ VON DOKUMENTEN 5.3. REPRASENTATION

58

Feature zugeordnet. Ein Feature beschreibt dann f¨ ur sein“ Wort die H¨aufigkeit ” dessen Auftretens im Text. Dies folgt dem Gedanken, dass Begriffe, die h¨aufig vorkommen, eher dem Inhalt des Textes entsprechen als solche, die nur selten oder gar nie im Text vorkommen. Dieser Logik folgend entsprechen Features, die f¨ ur ein bestimmtes Dokument mit einem hohen Wert ausgestattet sind, besonders gut dem Inhalt dieses Dokuments. Luhn [Luh58] f¨ ugt dieser Idee noch eine weitere hinzu. Und zwar schl¨agt er vor, zus¨ atzlich noch die relative Position der W¨orter im Satz zu bewerten und somit eine kombinierte Bewertung von Begriffen zu verwenden. Das ließe sich zum Beispiel so umsetzen, dass sich benachbarte Begriffe gegenseitig Boni geben. Dadurch erh¨ oht sich die Bewertung eines Begriffs allein dadurch, dass es neben einem stark bewerteten Begriff steht. In der Praxis werden vor der statistischen Verarbeitung die betrachteten Worte mindestens auf ihre Wortst¨amme reduziert (genannt Stemming“), um die ” vielen Variationen, die aufgrund von Konjugationen oder unterschiedlichen Auspr¨ agungen in Einzahl und Mehrzahl entstehen, auf einen gemeinsamen Begriff zur¨ uckzuf¨ uhren. Zudem werden sogenannte Stoppw¨orter aus der Menge der betrachteten Begriffe entfernt, die mit ausreichender Sicherheit keine bedeutungstragende Funktion haben. Dabei handelt es sich haupts¨achlich um Artikel oder Pronomen sowie einige Verben. Zum Beispiel: ist“, ein“, f¨ ur“, der“ ” ” ” ” und weitere ¨ ahnliche Worte. Sp¨ atestens dann hat man eine einfache aber wirksame Repr¨asentation des Dokumenten-Inhalts geschaffen. Dennoch ist sie nat¨ urlich weit davon entfernt, perfekt zu sein. Insbesondere erschließt sich der Sinn eines Wortes mitunter erst aus seinem Kontext. Den Kontext nicht zu ber¨ ucksichtigen, kann besonders bei kurzen Texten zu falschen Schl¨ ussen f¨ uhren. Auch das Stemming ist nicht in allen F¨ allen perfekt. Mitunter reduziert es Begriffe auf die gleichen Wortst¨ amme, die eine v¨ ollig andere Bedeutung haben. Auch andersherum wird ein Schuh daraus: es reduziert Begriffe auf unterschiedliche Wortst¨amme, obwohl sie v¨ ollig identische Bedeutungen haben. Weiterhin werden derart ermittelte Feature-Vektoren sehr groß und spannen einen riesigen Raum mit sehr vielen Dimensionen auf. Dadurch werden Berechnungen im Vektorraum sehr rechenintensiv. Folglich entsteht der Wunsch, die Dimensionalit¨at der Vektoren ¨ zu verringern und gleichzeitig die inhaltliche Ubereinstimmung der Vektoren mit der Zielsetzung des Textes zu erh¨ohen.

¨ VON DOKUMENTEN 5.3. REPRASENTATION

59

5.3.3. Methoden f¨ ur die Beschr¨ ankung auf wesentliche Features Aufgrund der genannten Beschr¨ankungen ist es sinnvoll, nach Wegen zu suchen, die Dimensionalit¨ at der Feature Vektoren einzuschr¨anken. Yang und Pedersen [YP97] sind eben dieser Frage nachgegangen und haben verschiedene Methoden auf ihre Wirksamkeit hin u uft. Die Gewinner der Studie sollen an dieser ¨berpr¨ Stelle kurz vorgestellt werden.

Inverse Document Frequency Dieser Ansatz wurde bereits in [SJ72] beschrieben, wo er als Collection Fre” quency Weight“ bezeichnet wurde. Die Annahme dahinter ist, dass offenbar solche Begriffe f¨ ur die Klassifikation besonders n¨ utzlich sind, die in einzelnen Dokumenten besonders h¨ aufig vorkommen, gleichzeitig aber in der gesamten Sammlung nur selten auftauchen. Solche Begriffe trennen einzelne Dokumente sehr gut von anderen und sind daher von Vorteil. idfi = log

N ni

(5.3)

Rechnerisch kann IDF recht einfach als das Verh¨altnis zwischen der Zahl an Dokumenten insgesamt (N) und der Anzahl jener Dokumente, in denen der jeweilige Begriff bzw. das Feature i vorkommt (ni ) angegeben werden, so dass letztendlich f¨ ur jedes einzelne Feature ein entsprechender IDF-Wert existiert. Um entscheiden zu k¨ onnen, welche Features in den meisten Dokumenten vorkommen und welche nicht, w¨ are ein Schwellenwert denkbar, der die allgemeine Umschreibung die meisten“ expliziert. Features, deren IDF nun u ¨ber diesem ” Schwellenwert l¨ age, k¨ onnten aus der Betrachtung ausgeschlossen werden. H¨ aufiger d¨ urfte IDF jedoch als Mittel zur Gewichtung der ermittelten H¨aufigkeiten angewandt werden. In dieser Funktion nennt man es auch TF-IDF, kurz f¨ ur Term Frequency and Inverse Document Frequency. Dabei multipliziert man einfach die ermittelten H¨ aufigkeiten (TF) eines Terms i in einem Dokument j mit der passenden IDF f¨ ur den Term i.

Information Gain Information Gain (IG) beschreibt den Informationsgewinn, der durch ein Feature in Bezug auf die Klassifikation erbracht wird. Um den Gewinn ausdr¨ ucken zu k¨onnen, ben¨ otigt man zun¨ achst ein Maß f¨ ur den Informationsgehalt. Ein

¨ VON DOKUMENTEN 5.3. REPRASENTATION

60

Begriff, dessen Auftreten oder Nichtauftreten in Dokumenten eine hohe Aussagekraft u ¨ber die Klassifikation hat, der hat einen hohen Informationsgehalt. Dies l¨ asst sich wie folgt verallgemeinern und formeller ausdr¨ ucken. Der Informationsgehalt wurde urspr¨ unglich von Shannon [Sha48] in Bezug ¨ auf die Kapazit¨ at von Ubertragungskan¨ alen betrachtet. Mit Kapazit¨at ist hier ¨ die Information, die pro Zeiteinheit maximal durch den Ubertragungskanal geleitet werden kann, gemeint. Seine Motivation war, formell mathematisch zu beschreiben, wie sich Rauschen auf die Korrektheit u ¨bertragener Daten auswirkt und welche M¨ oglichkeiten es gibt, diesem Effekt entgegenzuwirken. Mit ¨ Rauschen sind Fehler gemeint, die bei der Ubertragung passieren k¨onnen. Rauschen hat die Eigenschaft, gleichm¨aßig verteilt nach einer bestimmten Wahrscheinlichkeit (Signal-to-Noise-Ratio oder kurz SNR) aufzutreten. Die These von Shannon bez¨ uglich der Information ist nun, dass es bei einer bestimmten SNR eine ganz bestimmte Menge an Information gibt, die so durch den teilweise verrauschten Kanal geleitet werden kann, dass am anderen Ende ein rauschfreies fehlerloses Ergebnis steht. Diese Menge an Information ist eine theoretische Gr¨ oße, die auch durch schlaueste Kodierungsverfahren nicht u ¨berschritten werden kann. Es gibt nun eine feste maximale Kapazit¨at, die auf unverrauschte Weise erreicht wird und die systemimmanent und gegeben ist. Wie sich diese Kapazit¨at durch Rauschen erniedrigt, wird durch Shannons Maß f¨ ur Information (auch Entropie genannt) mathematisch errechnet. Dies hat er in einer Formel wie folgt ausgedr¨ uckt2 :

H=−

n X

pi log pi

(5.4)

i=1

Auf Information Retrieval u ¨bertragen l¨asst es sich derart, dass hierbei nach Wegen gesucht wird, so wenige Features (entsprechend Bits) wie m¨oglich zu verwenden, um so viel Information wie m¨oglich auszudr¨ ucken, um damit eine m¨ oglichst exakte Klassifizierung zu erreichen. Der Trick dabei ist, Rauschen (in Bezug auf die Klassifikation falsche Begriffe, Fehler, oder gleichm¨aßig verteilte Begriffe) herauszurechnen. Nun l¨ asst sich die von Shannon ermittelte Formel f¨ ur den Informationsgehalt verwenden, um den Informationsgewinn auszudr¨ ucken, den ein bestimmter Term t (bzw. ein bestimmtes Feature) f¨ ur die Klassifikation des Dokuments 2

Beweis siehe [Sha48], Seite 28ff

¨ VON DOKUMENTEN 5.3. REPRASENTATION

61

einbringt. Und zwar wie folgt:

G(t) = −

m X

P (ci ) log P (ci )

i=1

+P (t) +P (t)

m X i=1 m X

P (ci |t) log P (ci |t) P (ci |t) log P (ci |t)

(5.5)

i=1

In dieser Formel bezeichnet c eine Klasse aus der Menge aller Klassen (i=1. . . m), denen jeweils ein Dokument entweder zugeordnet wird oder nicht. Dabei ist P(c) die Wahrscheinlichkeit oder Frequenz, mit der ein Dokument dieser Klasse c zugeordnet wird. P(t) ist die Frequenz des Auftretens des Terms/Features t und P(c|t) entsprechend die Frequenz, mit der Dokumente bei vorliegendem Feature t der Klasse c zugeordnet werden. Mutual Information Mutual Information (MI) beschreibt die statistische Korrelation, in diesem Fall zwischen Features und Klassen, und ist folgendermaßen definiert.

I(t, c) = log

P (t ∧ c) P (t) × P (c)

(5.6)

Gleichung 5.6 geht auf das Maß des gemeinsamen Informationsgehaltes von Kullback-Leibler [KL51] zur¨ uck, das in Gleichung 5.7 dargestellt ist. Es geht von zwei unterschiedlichen Wahrscheinlichkeitsverteilungen u ¨ber eine gemeinsame Wahrscheinlichkeitsvariable x aus, die in Beziehung gesetzt werden. Besondere Eigenschaften: Dieses Maß ist nicht symmetrisch, so dass es eher als Inklusion verstanden werden kann. Zudem ist zu beachten, dass es unendlich wird, wenn die Wahrscheinlichkeit q f¨ ur x 0 ist, w¨ahrend dies bei p f¨ ur x nicht der Fall ist.

IKL (p, q) = log

p(x) q(x)

(5.7)

Die Formel, die im allgemeinen unter der Bezeichnung Kullback-LeiblerDivergenz bekannt ist und die auch im folgenden die Grundlage bilden soll, entspricht dem erwarteten gemeinsamen Informationsgehalt. Der Erwartungswert beschreibt den durchschnittlichen Wert einer Wahrscheinlichkeitsverteilung und

¨ VON DOKUMENTEN 5.3. REPRASENTATION

62

erweitert die Formel zur KL-Divergenz u ¨ber eine Wahrscheinlichkeitsvariable x mit n Auspr¨ agungen wie folgt: n X p(x) pi log = pi log q(x) qi i



KL(p|q) = Ep IKL (p, q) = Ep



(5.8)

Auf unsere Dom¨ ane der Klassifizierung von Termen bezogen wird aus 5.8 und 5.6 die Gleichung 5.9 f¨ ur Terme t. M I(t) =

m X

P (t ∧ ci ) log

i=1

P (t ∧ ci ) P (t) × P (ci )

(5.9)

Dabei beschreibt MI, wie viel Information von P(t) in P(c) und von P(c) in P(t) enthalten ist. Sind die Wahrscheinlichkeitsverteilungen P(c) und P(t) unabh¨ angig voneinander, hat MI den Wert 0, ansonsten ist er positiv. Je h¨oher er ist, um so mehr Information ist beiden Verteilungen gemein. Es existiert eine Absch¨ atzung der obigen Formel auf der Basis der Anzahlen A, B und C, sowie der Gesamtanzahl an Dokumenten N. Die Anzahlen begr¨ unden sich durch Korrelationen von t und c wie folgt: t mit c (A), t ohne c (B) sowie c ohne t (C) und m¨ unden in der Absch¨atzung: I(t, c) ≈ log

A×N (A + C) × (A + B)

(5.10)

Anwendung Bei den drei erl¨ auterten Maßen kommt nur DF ohne eine Lernphase aus. Sowohl IG als auch MI basieren auf Wahrscheinlichkeitsverteilungen, die zun¨achst unbekannt sind. Sie setzen voraus, dass eine Klassifikation existiert, der Dokumente zugeordnet sind und dass eine Menge an Termkandidaten existiert. Nur wenn das der Fall ist, k¨ onnen die n¨otigen Wahrscheinlichkeitsverteilungen P(c) oder P(t) u ¨berhaupt ermittelt werden. Wenn die zugrundeliegenden Daten nicht ausreichen, ist eine Trainingsmenge ausreichender Gr¨oße mit repr¨asentativen Dokumenten anzulegen, damit die n¨otigen Wahrscheinlichkeitsverteilungen ermittelt werden k¨ onnen.

5.3.4. Latent Semantic Indexing LSI [DFL+ 88] arbeitet ebenso wie die meisten anderen bekannten Verfahren mit dem Vektorraummodell und repr¨asentiert ein Dokument somit als Feature Vektor.

¨ VON DOKUMENTEN 5.3. REPRASENTATION

63

LSI extrahiert mit Hilfe von Singular Value Decomposition (SVD) [WRR03] aus einer Dokument-Term-Matrix n orthogonale Faktoren, aus denen die urspr¨ ungliche Matrix durch Linearkombination ann¨ahernd wiedergewonnen werden kann. Bei diesem Vorgehen werden Detailinformationen ignoriert, es wird aber davon ausgegangen, dass die den Dokumenten latent“ innewohnende ” Struktur erhalten bleibt. Die prinzipbedingte Unsch¨arfe sei hilfreich, da auch Suchanfragen oft unscharf seien. Die Idee basiert darauf, dass sich jede i*j Matrix X (i Terme, j Dokumente) mittels SVD in die Matrizen T, S und D zerlegen l¨asst (siehe Gleichung 5.11), so dass T und D zueinander orthogonale Matrizen darstellen. S ist eine diagnonale Matrix aus einzelnen Werten (singular values) und verbindet T und D so, dass sich mittels Linearkombination die Ursprungsmatrix X ergibt. Im Verlaufe des Algorithmus wird die S-Matrix jedoch k¨ unstlich verkleinert. Und zwar werden alle kleinsten Werte entfernt, so dass nur noch k (etwa 50-300) Werte u ¨brig bleiben. Die nun entstandene Matrix-Struktur (i*k)(k*k)(k*j) approximiert dann den urspr¨ unglichen Vektorraum. Der gew¨ahlte Wert von k ist nat¨ urlich kritisch. Wird er zu klein gew¨ ahlt, werden wichtige Features entfernt, wird er zu groß gew¨ ahlt, w¨ achst die Dimensionalit¨at und somit die Rechendauer eventuell zu stark.

X = T SD     

x11 · · · x1j .. .. .. . . . xi1     

· · · xij

   = 

t11 · · · t1m .. . . .. . . . ti1

· · · tim

    



s11 ..

. smm

   

d11 .. .

··· .. .

d1j .. .

dm1 · · · dmj

    (5.11) 

Anfragen an das System werden mit LSI als Pseudo-Dokument-Vektor modelliert. In dieser Form existiert ein Abstandsmaß von diesem Dokument zu anderen (echten) Dokumenten im Raum, auf dessen Basis das System die Antwort formulieren kann. Weiterhin k¨ onnen Begriffe, die sich in der N¨ahe befinden, in dem Zusammenhang als Suchbegriffe vorgeschlagen werden. Ergab die Suche zu wenige Ergebnisse, ist es auch m¨oglich, die Suchanfrage ohne R¨ uckfrage durch ¨ahnliche Terme zu erweitern und so automatisch die Suche breiter gestalten.

¨ VON DOKUMENTEN 5.3. REPRASENTATION

64

Das Verfahren sei erfolgreicher als u usse ¨bliche Feature Selection Verfahren, m¨ aber hinter echten“ Clustering Ans¨atzen zur¨ uckstehen, inbesondere hinter dem ” im Paper von Baker vorgeschlagenen Verfahren Distributional Clustering. [BM98] Andere halten die Kombination eines Clustering Mechanismus mit LSI f¨ ur sinnvoll. U.a. sind die Autoren des Papers [XLG03] dieser Ansicht: [. . . ] conse” quently, traditional data clustering methods such as K-means have to be applied in the eigenvector spaces to find the final document clusters“(Seite 2). Diesem Rat m¨ ochte sich der Autor dieser Arbeit gerne anschließen. Auch LINGO (siehe Abschnitt 3.4.2 (Seite 30) und [Osi03] setzt sein Clustering Verfahren auf LSI auf. Wie kann nun die Berechnung eines Abstandsmaßes im SVD-Raum vonstatten gehen? Um diese Frage zu beantworten, muss man sich zun¨achst klar machen, dass verschiedene Fragestellungen existieren, die zu verschiedenen Vergleichen und damit zu verschiedenen Berechnungen f¨ uhren. Zum Beispiel kann man fragen, wie stark ein bestimmter Term mit einem bestimmten Dokument zusammenh¨ angt, oder man kann den Zusammenhang zweier Dokumente untereinander pr¨ ufen. Im Folgenden seien alle relevanten Fragestellungen mit ihren L¨osungen dargestellt (ebenfalls entnommen aus [DFL+ 88]). Term - Dokument Dies ist an sich die simpelste Frage, die man stellen kann, denn die Antwort ist in der zugeh¨ origen Zelle der Ursprungsmatrix X enthalten. Wenn man nun jedoch davon ausgeht, dass X nicht (mehr) existiert, sondern nur die drei Matrizen T, S und D zur Verf¨ ugung stehen, dann muss der Wert durch eine entsprechende Linearkombination der Matrizen errechnet werden. In Gleichung 5.12 sei dies in einer Formel dargestellt. Hier wird der Zusammenhang zwischen dem Term i und dem Dokument j errechnet. |S|−1

X

tik skk dkj

(5.12)

k=0

Term - Term Der Vergleich von Term zu Term findet im Zeilen-Raum statt. Jede Zeile von T entspricht bekanntlich einem Vektor eines spezifischen Terms. F¨ ur den Vergleich wird das Skalarprodukt bem¨ uht, daher sieht die einfache Rechnung so aus wie in Gleichung 5.13 dargestellt. Dabei sei angemerkt, dass die Zeilen i und j der

¨ VON DOKUMENTEN 5.3. REPRASENTATION

65

Term-Matrix T jeweils mit ihren Skalaren multipliziert werden, wodurch die Achsen im Raum ihrer allgemeinen Bedeutung entsprechend verzerrt werden (dies begr¨ undet den Faktor s2 in der Formel). |S|−1

X

tik s2kk tjk

(5.13)

k=0

Dokument - Dokument Bei diesem Vergleich gilt das selbe wie bei dem Vergleich zweier Terme, nur dass in diesem Falle statt der Zeilen der Term-Matrix T die Spalten i und j der Dokument-Matrix D’ verwendet werden. Siehe Gleichung 5.14. |S|−1

X

dki s2kk dkj

(5.14)

k=0

Dokument - Pseudo-Dokument Nun gibt es Situationen, in denen man auf Daten trifft, die in der Matrix X nicht verzeichnet waren. Falls man zum Beispiel auf ein neues unbekanntes Dokument mit dessen Vektor vneu trifft und dieses mit den bestehenden Termen oder Dokumenten vergleichen m¨ochte, so muss man den Vektor vneu zun¨achst in den Raum der Matrix D hinein-transformieren. Auf diese Weise k¨ onnen zudem SVD Strukturen iterativ erweitert werden, ¨ ohne dass bei jeder Anderung des Datenbestandes die Matrizen komplett neu berechnet werden m¨ ussten. Es gen¨ ugt in diesem Falle, das neue Dokument in den Vektor-Raum hineinzuprojizieren und den neuen Vektor zu der bestehenden Dokument-Matrix D hinzuf¨ ugen. Falls das Dokument neue Terme beinhaltet, sind diese ebenfalls auf ¨ ahnliche Weise hinein zu projizieren und zu der Matrix T hinzuzuf¨ ugen. Der Vorgang ist jedoch nicht ganz problemlos, denn bei ¨ jeder Anderung der D- oder T-Matrix ohne eine entsprechende Anpassung der Diagonalmatrix S stimmt die Zuordnung ein kleines St¨ uck weniger. Aber gehen wir zur¨ uck zur Berechnung des Projektions-Vorganges. Man nehme an, es g¨ abe nun den besagten Dokument-Vektor vneu , welcher auf die selbe Weise konstruiert wurde wie jene der bestehenden Dokumente in der Originalmatrix X. Er kennt somit f¨ ur jeden einzelnen Term dessen gewichtete Frequenz oder Auftretensh¨ aufigkeit. Gleichung 5.15 zeigt, wie sich eine passende Repr¨ asentation dneu f¨ ur den unbekannten Dokument-Vektor vneu errechnen l¨asst. − → → d neu = − v Tneu T S −1

(5.15)

5.4. CLUSTERING

66

5.4. Clustering Nehmen wir nun an, dass mit den obigen Techniken Feature-Vektoren f¨ ur die Dokumente so angelegt wurden, dass nur wirklich aussagekr¨aftige Begriffe f¨ ur die weitere Verarbeitung verwendet werden. Dann sollen hier Algorithmen vorgestellt werden, die diese Vektoren zu Clustern zusammenfassen. Allgemein lassen sich Clustering Algorithmen darin unterscheiden, dass einige eine hierarchische Cluster-Struktur erzeugen, andere jedoch nicht (zum Beispiel K-means). Zudem gibt es unterschiedliche Freiheitsgrade bei der Definition dieser Struktur. Die einfacheren Algorithmen verlangen mindestens eine vorab festgelegte Zahl von Clustern. Andere verwenden Thresholds als Maß, um w¨ahrend des Ablaufs Entscheidungen dar¨ uber zu treffen, ob neue Cluster hinzugef¨ ugt werden m¨ ussen und somit die Anzahl zu erh¨ ohen ist oder nicht. Angenommen, es existiert eine Reihe von Klassen, denen Dokumente zugeordnet werden k¨ onnen. Dann folgt es dem intuitiven Verst¨andnis einer Klassifikation, dass ein Dokument durchaus mehreren Klassen zugeordnet werden kann. Beispielsweise kann ein Dokument sowohl der Klasse G¨ uterverkehr als auch der Klasse Containertransport zugeordnet sein, da es inhaltlich beide Themen anspricht. Um noch einen Schritt weiterzugehen, ist es ebenso wahrscheinlich, dass das Dokument beide Themen zu einem jeweils unterschiedlichen Grad betrachtet. Modell-basierte Clustering Ans¨atze gehen nun davon aus, dass Modelle existieren, die die Zuordnung eines Dokuments zu einer Klasse beschreiben. Es sind verschiedene Modelle denkbar, am verbreitetsten scheinen jedoch Gaußsche Verteilungen3 zu sein. Diese nennt man auch Normalverteilungen. Charakteristisch f¨ ur sie ist, dass sie durch eine Reihe voneinander unabh¨angiger Einfl¨ usse entstehen. Beispielsweise sind Messfehler in der Regel normalverteilt. Eine Reihe gleichartiger Messungen wird jedes Mal einen ¨ahnlichen Wert ergeben, der jedoch vom wahren Wert wegen zuf¨alliger Messungenauigkeiten abweicht, wobei jede Messung von der vorherigen unabh¨angig ist. Die durchschnittliche Abweichung wird Varianz genannt. Eine Normalverteilung wird somit durch ihre Parameter µ (Erwartungswert) und σ (Varianz) n¨aher definiert und auch als N(µ,σ)-Verteilung bezeichnet. Zudem ist zu jeder Normalverteilung eine sogenannte Wahrscheinlichkeitsdichte ϕ wie folgt definiert. 3

Seite 393 in [DP88]

67

5.4. CLUSTERING

ϕ(x; µ; σ) = √

(x−µ)2 1 e− 2σ2 , −∞ < x < ∞ 2πσ

(5.16)

Jedem Cluster entspricht eine solche Verteilung und eine dazugeh¨orige Dichte. Da ein Dokument zu unterschiedlichen Graden unterschiedlichen Clustern angeh¨ oren kann, muss f¨ ur jedes Dokument eine Mischfunktion der unterschiedlichen Wahrscheinlichkeitsdichten existieren, die die verschiedenen Cluster mit unterschiedlicher Gewichtung w zusammengef¨ uhrt werden. Diese ist, wie von Bradley et al.[BFR99] erl¨ autert, f¨ ur ein Dokument x u ¨ber alle k Cluster mit Index h wie folgt definiert.

p(x) =

k X

wh · fh (x|µh , σh )

(5.17)

h=1

Die Gewichte w ergeben aufsummiert 1 und entsprechen dem Anteil an Dokumenten, die in Cluster h geh¨ oren. Die Funktion f dagegen ist die Wahrscheinlichkeitsdichtefunktion f¨ ur die Verteilung beliebiger Dokumente x in Bezug auf den Cluster h, parametrisiert mit der n¨otigen Erwartung und Varianz. Der Algorithmus sch¨ atzt diese Formel ab, indem er ihre Parameter (bestehend aus den Gewichten, Erwartungen und Varianzen) mit Hilfe des Maximum Likelihood Verfahrens derart w¨ahlt, dass die resultierende Likelihood-Funktion maximal ist. Die Likelihood-Funktion wird u ¨ber den kompletten DokumentenRaum aufgestellt und stellt die Qualit¨at ( how well the corresponding mixture ” model fits the data“ 4 ) der gesch¨atzten Parameter dar. Hier die Formel, bei der Φ f¨ ur die Menge aller Parameter steht:

L(Φ) =

X x∈D

log

k X

!

wh · fh (x|µh , σh )

(5.18)

h=1

Der Ablauf besteht im Wesentlichen aus zwei Schritten[LGXZ02] [BFR99], die sich bis zum Erreichen eines Stop-Kriteriums abwechseln und somit iterativ die L¨ osung optimieren. Der erste Schritt wird h¨aufig als E-Schritt (Gleichung 5.19) bezeichnet, w¨ ahrend der Zweite (Gleichung 5.20) dann den M-Schritt darstellt. W¨ ahrend des ersten Schrittes werden die Wahrscheinlichkeiten berechnet, nach der sich Dokument x in Cluster h aufh¨alt. Der zweite Schritt optimiert die Parameter mit Hilfe der Ergebnisse des ersten Schritts. 4

Seite 7 in [BFR99]

5.4. CLUSTERING

68

wj · fh (x|µjh , Σjh ) , h = 1, . . ., k whj (x) = P h j wi · fi (x|µji , Σji )

(5.19)

i

whj+1 =

X

whj (x)

x∈D

P

= µj+1 h

x∈D

whj (x) · x

P x∈D

P

Σj+1 h

=

x∈D

whj (x)

j+1 T whj (x)(x − µj+1 h )(x − µh )

P x∈D

whj (x)

, h = 1, . . ., k

(5.20)

Die Gleichungen Gleichung 5.19 und Gleichung 5.20 verlangen nach etwas zus¨ atzlicher Erl¨ auterung. Insbesondere wird hier mit dem großen griechischen Zeichen Sigma ein vorher unbenutztes Symbol verwendet. Es ersetzt das bislang verwendete Symbol σ f¨ ur die Varianz und signalisiert, dass hier dazu u ¨bergegangen wurde, mehrdimensionale Gaußsche Wahrscheinlichkeitsverteilungen zu verwenden. Dies ist notwendig, da die zu clusternden Objekte komplexe Textk¨ orper beinhalten, die kaum auf eindimensionale Art und Weise repr¨asentiert werden k¨ onnen. Daher gehen wir zu mehrdimensionalen Verteilungen u ¨ber. Der Erwartungswert µ ist analog mehrdimensional geworden und liegt nun in Form eines Vektors vor. Die durch das Sigma dargestellte Varianz ist in der mehrdimensionalen Form eine Kovarianzmatrix. Sonst ¨andert sich nichts. Das Stopp-Kriterium wird von der oben erw¨ahnten Likelihood Funktion geliefert, sobald diese an einem lokalen Maximum konvergiert.

Teil III.

Umsetzung

6. Statisches Modell Das System war von Beginn an eine sehr experimentelle Plattform, so dass zu keinem Zeitpunkt eine ausf¨ uhrlich geplante Architektur vorlag. W¨ahrend der Forschung daran wurden st¨ andig an verschiedenen Aspekten mehrere Alternativen ausprobiert, so dass sich inzwischen einige Design-Aspekte als sinnvoll herauskristallisiert haben, die im Folgenden besprochen werden sollen.

6.1. Data Objects Die Anwendung verwendet durchgehend objektorientierte Prinzipien und macht auch f¨ ur das Datenmodell keine Ausnahme. Da die Daten in einer relationalen Datenbank abgelegt werden sollen, ist ein relationales Modell trotz grunds¨atzlich objektorientierter Ausrichtung unausweichlich. Somit gibt es hier zwei Modelle, ein relationales (S. 72) und ein objektorientiertes (S. 73 und S. 74). Es gibt hier f¨ ur jedes Objekt der objektorientierten Sicht eine Tabelle in der relationalen Sicht, so dass die Umsetzung vom Einen auf das Andere sehr unkompliziert ist. Dank Hibernate l¨asst sich diese Umsetzung deklarativ bewerkstelligen. Das bedeutet, dass f¨ ur jedes Objekt eine Mapping Datei im XML Format vorliegt, die von Hibernate ausgewertet wird. Es gibt keinen Code in der Anwendung, der irgendwie Bezug auf die relationale Natur der Datenbasis nimmt, die Umsetzung erledigt Hibernate v¨ollig transparent.

6.2. Data Access Objects ¨ Ein wichtiges Ziel bei der Uberlegung, auf welche Weise man seinen Datenzugriff strukturieren m¨ ochte, ist die m¨oglichst weitgehende Unabh¨angigkeit der Zugriffsmechanismen von anderen Teilen der Anwendung. Der Grund leuchtet sofort ein: da es so viele verschiedene M¨oglichkeiten des Zugriffs auf Daten gibt (JDBC, Hibernate, XML, . . . ), die nat¨ urlich auch unterschiedliche Vor- und Nachteile besitzen, die sich m¨ oglicherweise erst in einer sp¨ateren Phase der Entwicklung bemerkbar machen, m¨ochte man in der Lage sein, die Technik sp¨ater

1

DESCRIPTORS

+PK_DESCRIPTORS

DOC_DESC_CT

+FK_DESCRIPTORS +FK_DOCUMENTS 0..* 0..*

(docid = descid descid = desclang) «FK»

1

«PK» PK_DESCRIPTORS(INT, VARCHAR)

+PK_DESCRIPTORS

Abbildung 6.1.: Datenobjekte, relationale Sicht

+ + +

«FK» FK_DOCUMENTS(INT) «PK» PK_DOC_DESC_CT(INT, INT, VARCHAR) «FK» FK_DESCRIPTORS(INT, INT)

*pfK «Column» docid: INT *pfK «Column» descid: INT *PK «Column» desclang: VARCHAR(2)

+

1

(parentDescId = descid parentDescLang = desclang) «FK»

*PK «Column» descid: INT *PK «Column» desclang: VARCHAR(2) «Column» descname: varchar(64)

+PK_DESCRIPTORS

(childDescId = descid childDescLang = desclang) «FK»

+FK_DESC_CHILD 0..*

+ + +

(docid = docid) «FK»

DOCUMENTS

+

1 +PK_Collection

«PK» PK_Collection(INT)

+PK_Collection

«FK» FK_TERM_SCHEMA_Collection(INT) «PK» PK_TERM_SCHEMA(INT)

Collection

STOPWORDS

+ +

«FK» FK_STOPWORDS_Collection(INT) «PK» PK_STOPWORDS(VARCHAR, VARCHAR)

*PK «Column» word: VARCHAR(32) *PK «Column» lang: VARCHAR(2) FK «column» collectionid: INT

+FK_STOPWORDS_Collection 0..*

«FK» FK_CLUSTER_Collection(INT) «PK» PK_DOC_CLUSTER(INT)

*PK «Column» clusterid: INT «Column» clustername: varchar(128) «column» idx: INT «Column» indexterms: varchar(2048) FK «column» collectionid: INT

(collectionid = collectionid) «FK»

1

1 DOC_CLUSTER

+PK_DOC_CLUSTER

+ +FK_CLUSTER_Collection +

*PK «column» collectionid: INT «column» COLLNAME: VARCHAR(80)

(collectionid = collectionid) «FK» +FK_TERM_SCHEMA_Collection 0..* TERM_SCHEMA

0..*

0..*

(clusterid = clusterid) «FK»

+FK_CLUSTER

«FK» FK_CLUSTER(INT) «FK» FK_DOCUMENTS(INT) «PK» PK_DOC_CLUSTER_CT(INT, INT)

0..* (collectionid = collectionid) (collectionid = collectionid) «FK» «FK» +PK_Collection 1 +PK_Collection 1

+FK_DOCUMENTS_Collection

1

0..*

DOC_CLUSTER_CT *pfK «Column» docid: INT *pfK «Column» clusterid: INT «Column» probability: float(0) + + +FK_DOCUMENTS +

(docid = docid) «FK» +PK_DOCUMENTS

(subsetid = setid) «FK»

1

«PK» PK_SubSet(INT) +PK_SubSet

«FK» FK_DOCUMENTS_Collection(INT) «FK» FK_DOCUMENTS_SubSet(INT) «PK» PK_DOCUMENTS(INT)

*PK «column» termid: INT «column» idx: INT «column» termPart1: varchar(50) «column» termPart2: varchar(50) «column» termPart3: varchar(50) FK «column» collectionid: INT + +

+

+FK_DOCUMENTS_SubSet 0..*

1

SubSet *PK «column» setid: INT «column» SETNAME: VARCHAR(80)

*PK «Column» docid: INT «Column» abstract: varchar(40000) «Column» abstract_lang: varchar(2) «Column» title: varchar(256) «column» idx: INT FK «column» collectionid: INT FK «column» subsetid: INT

+PK_DOCUMENTS

+FK_DESC_PARENT 0..*

«FK» FK_DESC_CHILD(INT, VARCHAR) «PK» PK_DESC_RELATIONS(INT, VARCHAR, VARCHAR, INT) «FK» FK_DESC_PARENT(INT, VARCHAR)

+ + +

DESC_RELATIONS

«column» parentDescId: INT «column» parentDescLang: VARCHAR(2) «column» childDescLang: VARCHAR(2) «column» childDescId: INT

*pfK *pfK *pfK *pfK

6.2. DATA ACCESS OBJECTS 72

73

6.2. DATA ACCESS OBJECTS

db::DocumentsSubSet -

name: String m_documents: Set setid: int

+ + + + +

DocumentsSubSet() «property get» getName() : String «property set» setName(String) : void «property get» getSetid() : int «property set» setSetid(int) : void «property get» getDocuments() : Set «property set» setDocuments(Set) : void -subset

db::Document

Serializable

-

DEFAULT_LANGUAGE: String = Locale.ENGLISH.... abstractLang: String = DEFAULT_LANGUAGE abstractText: String assignments: List descriptors: List docid: int idx: Integer title: String subset: DocumentsSubSet collection: DocumentCollection

+ + + + + + + + + + + + + + + + + + +

descriptorIterator() : Iterator «property get» getAbstractLang() : String «property get» getAbstractText() : String «property get» getAssignments() : List «property get» getDescriptors() : List «property get» getDocid() : int «property get» getTitle() : String «property set» setAbstractLang(String) : void «property set» setAbstractText(String) : void «property set» setAssignments(List) : void «property set» setDescriptors(List) : void «property set» setDocid(int) : void «property set» setTitle(String) : void «property get» getIdx() : Integer «property set» setIdx(Integer) : void «property get» getCollection() : DocumentCollection «property set» setCollection(DocumentCollection) : void «property get» getSubset() : DocumentsSubSet «property set» setSubset(DocumentsSubSet) : void

db::AssignmentId # #

serialVersionUID: long = 3545796602355855672L docid: int clusterid: int

# # # # + + +

«property get» getClusterid() : int «property set» setClusterid(int) : void «property get» getDocid() : int «property set» setDocid(int) : void equals(Object) : boolean hashCode() : int createFrom(Cluster, Document) : AssignmentId -id

-document

db::Assignment -

cluster: Cluster document: Document id: AssignmentId probability: double

+ + + # + + + + +

Assignment() «property get» getCluster() : Cluster «property get» getDocument() : Document «property get» getId() : AssignmentId «property get» getProbability() : double «property set» setCluster(Cluster) : void «property set» setDocument(Document) : void «property set» setId(AssignmentId) : void «property set» setProbability(double) : void

Abbildung 6.2.: Datenobjekte, objektorientierte Sicht, Teil 1

6.2. DATA ACCESS OBJECTS

74

db::DocumentCollection -

name: String documents: Set terms: Set stopwords: Set clusters: Set collectionid: int

Term db::Term

+ + + + + + -collection + + + + +

DocumentCollection() «property get» getName() : String «property set» setName(String) : void «property get» getDocuments() : Set «property set» setDocuments(Set) : void «property get» getCollectionid() : int «property set» setCollectionid(int) : void «property get» getStopwords() : Set «property set» setStopwords(Set) : void «property get» getTerms() : Set «property set» setTerms(Set) : void «property get» getClusters() : Set «property set» setClusters(Set) : void

-collection

-collection

-collection

-

idx: int termid: int collection: DocumentCollection

+ + + + + + + + + + + + + +

Term() Term(com.danielstephan.seacluster.Term) «property get» getIdx() : int «property get» getTermid() : int getTermPart1() : String getTermPart2() : String getTermPart3() : String «property set» setIdx(int) : void «property set» setTermid(int) : void setTermPart1(String) : void setTermPart2(String) : void setTermPart3(String) : void «property get» getCollection() : DocumentCollection «property set» setCollection(DocumentCollection) : void

db::Cluster + + + + + + -cluster + + + + + +

Serializable

clusterid: int assignments: List collection: DocumentCollection name: String idx: int = -1 indexterms: String

db::Stopword

«property get» getIndexterms() : String «property set» setIndexterms(String) : void «property get» getIdx() : int «property set» setIdx(int) : void «property get» getClusterid() : int «property get» getName() : String «property set» setClusterid(int) : void «property set» setName(String) : void «property get» getAssignments() : List «property set» setAssignments(List) : void «property get» getCollection() : DocumentCollection «property set» setCollection(DocumentCollection) : void

-

serialVersionUID: long = 3256719593660822325L DEFAULT_LANGUAGE: String = Locale.ENGLISH.... id: Id = new Id() collection: DocumentCollection

+ + + + + + + +

eq(String, String) : boolean hc(Object) : int getLang() : String getWord() : String setLang(String) : void setWord(String) : void «property get» getId() : Id «property set» setId(Id) : void «property get» getCollection() : DocumentCollection «property set» setCollection(DocumentCollection) : void

db::Descriptor Serializable db::DescriptorId # #

serialVersionUID: long = 3257571689536435251L id: int = -1 DEFAULT_LANGUAGE: String = Locale.ENGLISH.... lang: String = DEFAULT_LANGUAGE

# # # # + +

«property get» getId() : int «property set» setId(int) : void «property get» getLang() : String «property set» setLang(String) : void equals(Object) : boolean hashCode() : int

#id

# # # -

documents: List id: DescriptorId = new DescriptorId() word: String parents: List children: List

+ + + + + + + # + + + +

«property set» setId(DescriptorId) : void «property get» getDocuments() : List getLang() : String «property get» getWord() : String «property set» setDocuments(List) : void setLang(String) : void «property set» setWord(String) : void «property get» getId() : DescriptorId «property get» getChildren() : List «property set» setChildren(List) : void «property get» getParents() : List «property set» setParents(List) : void

Abbildung 6.3.: Datenobjekte, objektorientierte Sicht, Teil 2

75

6.3. DATA ACCESS COMMANDS

onnen, ohne dass die gesamte Anwendung davon beeintr¨achtigt ¨andern zu k¨ wird. Daher f¨ uhrt man eine Abstraktionsschicht ein, die den Datenzugriff von anderen Teilen der Anwendung abschottet. Diese Schicht besteht hier aus einer Reihe von Zugriffsobjekten. Jedes dieser Objekte bietet die Methoden an, die die Anwendung im Rahmen ihres Ablaufs ben¨otigt, und implementiert sie - spezifisch f¨ ur eine ausgew¨ahlte Technologie. Die hier verwendete Technologie wird durch Hibernate bereitgestellt (ein OpenSource Projekt, es handelt sich dabei um einen objektrelationalen Mapper, kurz ORM, der eine objektorientierte Schnittstelle f¨ ur relationale Datenbanken bietet). Dies sei am Bespiel des DAOs f¨ ur das Cluster Objekt dargestellt (in S. 76 und S. 77 zu sehen). Zentral f¨ ur die Abstraktion ist die Trennung der Implementation (ClusterDaoImpl) von seiner Spezifikation (ClusterDao, erbend von Dao). Die Anwendung arbeitet ausschließlich mit der Schnittstelle ClusterDao. Die verwendete Implementation (in diesem Falle eben ClusterDaoImpl) l¨asst sich jedoch deklarativ (mit Hilfe einer XML-Datei f¨ ur die Konfiguration des Systems) jederzeit a ¨ndern, ohne dass Anwendungscode davon betroffen ist. Das Basis-Interface Dao wurde eingef¨ uhrt, nachdem klar wurde, dass viele Methoden in jedem DAO n¨ otig werden w¨ urden. So sind diese Gemeinsamkeiten auch in der Struktur dokumentiert. Aus den selben Gr¨ unden wurde das Objekt DaoSupport eingef¨ uhrt, das die Gemeinsamkeiten der verschiedenen DAOs f¨ ur Hibernate implementiert.

6.3. Data Access Commands W¨ahrend der Entwicklung hat sich herauskristallisiert, dass in den prinzipiell eher groben Zugriffsmethoden der DAOs zu oft ¨ahnliche Abl¨aufe kodiert waren und die Wiederverwendung dieser Abl¨aufe damit eher schlecht war. Das f¨ uhrte dazu, dass Code in einem DAO weitgehend optimiert wurde, weil die Notwendigkeit dort akut war, w¨ ahrend in einem anderen DAO ganz ¨ahnlicher Code noch v¨ ollig unoptimiert vorlag. Die Code-Qualit¨at war damit an einigen Stellen unn¨ otigerweise niedriger als an anderen. Somit suchte der Autor nach M¨oglichkeiten, den Code mobiler“ und die ” Struktur der Datenzugriffsschicht feingranularer zu gestalten. Die L¨osung erschien in Form des Command Patterns (siehe dazu auch [GHJV96]). Eigentlich ist das Command Pattern f¨ ur die Entwicklung von Benutzerschnittstellen ent-

6.3. DATA ACCESS COMMANDS

76

Dao

Dao

«interface» db::AssignmentDao +

«interface» db::ClusterDao +

batchAssignment(List, List, List) : void

getOrCreateById(int) : Cluster

«inter db::Desc + + + +

findDescriptorsForDocument(Do findSameDescriptors(Descriptor) store(Descriptor) : Descriptor setAsBeingEqualTo(Descriptor,

DaoSupport

DaoSupport
db::AssignmentDaoImpl

db::ClusterDaoImpl

-

serialVersionUID: long = 3257001077261023284L

-

serialVersionUID: long = 3258416122973139766L

+ + +

getEntityName() : String getEntityClass() : Class batchAssignment(List, List, List) : void

+ + +

getEntityName() : String getEntityClass() : Class getOrCreateById(int) : Cluster

Abbildung 6.4.: DAO Struktur, Teil 1

wickelt worden. Dort sind Aktionen der Benutzer als Commands modelliert, so dass jede Aktion von einem eigenen eigens daf¨ ur gestalteten Objekt behandelt wird. Dadurch sind auch hier Implementationen austausch- und beliebig oft, an verschiedenen Stellen, einsetzbar. Schließlich bieten Anwendungen oft mehrere M¨ oglichkeiten an, um die selbe Aktion auszuf¨ uhren - zum Beispiel sowohl u ¨ber das Men¨ u als auch u ¨ber ein Icon. Durch das Command Pattern wird der Code mobil. Diese Eigenschaft wurde hier f¨ ur Datenzugriffsmechanismen ausgenutzt. F¨ ur den Zweck wurde das Muster jedoch erweitert. Man kann in Abbildung 6.8 sehen, dass jedes Command Objekt eine execute() Methode mitbringen muss. Dies entspricht der Vorgabe des Command Patterns. Das AbstractCommand Objekt jedoch wurde bereits Hibernate- und Springframework-spezifisch erweitert. Die getSession() Methode erlaubt den Subklassen den Zugriff auf die Hibernate-Session und die execute(Command) Methode erm¨oglicht den Subklassen, wiederum andere Commands aufzurufen. Auf diese Weise k¨onnen Commands sich gegenseitig ausf¨ uhren und trotzdem jederzeit eine g¨ ultige Session

77

6.3. DATA ACCESS COMMANDS

Iterable Query «interface» dao::Dao + + + + + + + + + + + + +

iterator() : Iterator getObjects() : List objectsByExample(T) : List iterate(IteratingCallback) : void getById(Serializable) : T store(T) : T remove(T) : void removeAll() : void deleteByExample(T) : void getObjectsForCriteria(List) : List getQueryWithName(String) : Query getQuery() : Query execute(Command) : S

«realize» T HibernateDaoSupport Serializable Dao dao::DaoSupport

Dao rface» riptorDao ocument, String) : List r) : List Descriptor) : void

-

log: Log = LogFactory.getL... _entityName: String

+ + + + + + + + + + + + + + + + + + + + +

getObjects() : List getFirstObject() : T execute(Command) : S getObjectsForCriteria(List) : List iterate(IteratingCallback) : void getById(Serializable) : T getEntityClass() : Class getEntityName() : String getIdentityName() : String iterator() : Iterator removeById(Serializable) : void store(T) : T objectsByExample(T) : List remove(T) : void removeAll() : void deleteByExample(T) : void getQueryWithName(String) : Query getQuery() : Query addCriterion(Criterion) : Query create(Dao) : Query getDao() : Dao

Dao
updateIdx(Map) : void readDocumentSchema() : Map readDocumentSchema(Query) : Map
DaoSupport DaoSupport

db::DescriptorDaoImpl er> -

serialVersionUID: long = 3616727175584233017L

+ + + + + + +

findDescriptorsForDocument(Document, String) : List findSameDescriptors(Descriptor) : List generateId() : int setAsBeingEqualTo(Descriptor, Descriptor) : void store(Descriptor) : Descriptor getEntityName() : String getEntityClass() : Class

db::DocumentDaoImpl -

serialVersionUID: long = 4048795675800384562L log: Log = LogFactory.getL...

+ + + +

getEntityClass() : Class readDocumentSchema() : Map readDocumentSchema(Query) : Map updateIdx(Map) : void

Abbildung 6.5.: DAO Struktur, Teil 2

6.3. DATA ACCESS COMMANDS

78

Dao «interface» db::StopwordDao

Document>

Integer>

+ + + + + +

Dao

getWordsAsStrings() : List getAll() : List getWordsAsStringsForLanguage(String) : List getAllForLanguage(String) : List store(Stopword) : Stopword iterator() : Iterator

«interface» db::TermDao + +

getSchema() : TermSchema store(TermSchema) : void

DaoSupport DaoSupport

db::StopwordDaoImpl -

serialVersionUID: long = 3544389201736120633L

+ + + + + + +

getWordsAsStrings() : List getAll() : List getAllForLanguage(String) : List getWordsAsStringsForLanguage(String) : List iterator() : Iterator store(Stopword) : Stopword getEntityClass() : Class

db::TermDaoImpl -

serialVersionUID: long = 3258415036430235700L

+ + + +

getSchema() : TermSchema store(TermSchema) : void getEntityName() : String getEntityClass() : Class

Abbildung 6.6.: DAO Struktur, Teil 3

voraussetzen. Der Vorgang ist in Abbildung 6.9 etwas vereinfacht dargestellt. Man muss bei der Betrachtung des Diagramms bedenken, dass die Methode execute() jeweils von den Commands spezifisch implementiert wird, w¨ahrend die Methode execute(Command) in AbstractCommand implementiert ist. Der Grund f¨ ur die Trennung von execute() und execute(Command) liegt darin, dass Hibernate ein Session Objekt ben¨ otigt, welches vor der Transaktion ge¨offnet und nach der Transaktion geschlossen werden muss, und dass kein einzelner Command dieses tun soll, die Session somit transparent im Hintergrund verwaltet werden muss. Dennoch sollen die Commands eventuell Zugriff auf die Session haben (daher die Methode getSession() in AbstractCommand). Will man nun vermeiden, dass die Commands sich gegenseitig irgendwie die Sessions weiterreichen, muss dies im Hintergrund passieren - in diesem Falle geschieht dies in execute(Command) transparent. Der aufmerksame Leser wird beim Studium des Diagrammes in Abbildung

79

6.3. DATA ACCESS COMMANDS

T AbstractCommand dao::FetchTemplate

FetchTemplate commands::FetchFromCollection -

collectionName: String config: ProcessConfiguration

+ + + + +

«property get» getConfig() : ProcessConfiguration «property set» setConfig(ProcessConfiguration) : void fetch() : void «property get» getCollectionName() : String «property set» setCollectionName(String) : void

~ -

queue: BlockingQueue filters: List>

+ + + + + + ~ + -

put(T) : boolean put(T, long, TimeUnit) : boolean put(List) : boolean execute() : T fetch(FetchTemplate) : void fetch() : void setBlockingQueue(BlockingQueue) : void add(Filter) : void applyFilters(T) : void

FetchTemplate FetchTemplate

commands::QueryForListOfIds

commands::FetchWithIdFile -

idFileName: String log: Log = LogFactory.getL...

+ + + +

FetchWithIdFile() fetch() : void readIdsFromFile(String) : Set «property get» getIdFileName() : String «property set» setIdFileName(String) : void

-

log: Log = LogFactory.getL... idList: List batchSize: int = 30

+ + + + + +

QueryForListOfIds(List) QueryForListOfIds(String) QueryForListOfIds() fetch() : void readIdsFromFile(String) : List «property get» getIdList() : List «property set» setIdList(List) : void

FetchTemplate commands::FetchRandomTemplate -

log: Log = LogFactory.getL... collectionName: String config: ProcessConfiguration max: int = Integer.MAX_VALUE

+ + + + + + + +

FetchRandomTemplate() fetch() : void «property get» getCollectionName() : String «property set» setCollectionName(String) : void «property get» getConfig() : ProcessConfiguration «property set» setConfig(ProcessConfiguration) : void getMaxResults() : int setMaxResults(int) : void

Abbildung 6.7.: Data Access Commands, Teil 1

6.3. DATA ACCESS COMMANDS

80

«interface» command::Command +

execute() : T

AbstractCommand commands::BatchAssign

«realize» T Command HibernateCallback

-

documentIds: List clusterIds: List probabilities: List

+ +

BatchAssign(List, List, List) execute() : Object

command:: AbstractCommand -

session: Session

+ + +

«property get» getSession() : Session execute(Command) : S doInHibernate(Session) : Object

T AbstractCommand command::FetchObject

AbstractCommand

-

criteria: List persistentClass: Class

+ + + +

FetchObject(List, Class) FetchObject(Class) execute() : T addCriterion(Criterion) : FetchObject

commands::FetchAssignment ~ ~

d: Document c: Cluster

+ +

FetchAssignment(Document, Cluster) execute() : Assignment

AbstractCommand commands::StoreTermSchema

~getAssignmentCommand ~

schema: TermSchema

+ +

StoreTermSchema(TermSchema) execute() : Integer

AbstractCommand commands::Initialize

AbstractCommand commands::AssignDocumentToCluster ~ ~ ~ ~

log: Log = LogFactory.getL... d: Document c: Cluster p: double getAssignmentCommand: FetchAssignment

+ + + +

getFetchAssignmentCommand() : FetchAssignment setFetchAssignmentCommand(FetchAssignment) : void AssignDocumentToCluster(Document, Cluster, double) execute() : Object

~ ~ ~

log: Log = LogFactory.getL... obj: Object prop: String pd: PropertyDescriptor

+ +

Initialize(Object, String) execute() : Object S

AbstractCommand> command::Fetch

~

log: Log = LogFactory.getL... entityClass: Class

+ +

DeleteAllObjects(Class) execute() : Integer

criteria: List persistentClass: Class

+ + + +

Fetch(Class) Fetch(List, Class) execute() : List addCriterion(Criterion) : Fetch

S

AbstractCommand command::DeleteAllObjects

-

AbstractCommand> command::FetchAll -

persistantClass: Class

+ +

FetchAll(Class) execute() : List

Abbildung 6.8.: Data Access Commands, Teil 2

81

6.3. DATA ACCESS COMMANDS

«interface» :Dao Clustering Logic

BatchAssign(documentIds,clusterIds,probabilities)

batchAssign :BatchAssign

execute(batchAssign)

execute()

AssignDocumentToCluster(document,cluster,probability) assignDoc :AssignDocumentToCluster

S:= execute(assignDoc)

execute()

FetchAssignment(document,cluster) fetchAssignment :FetchAssignment

assignment:= execute(fetchAssignment)

execute()

assignment

Abbildung 6.9.: Beispiel: BatchAssign Command 6.8 festgestellt haben, dass AbstractCommand zus¨atzlich HibernateCallback implementiert. Zur Erkl¨ arung: Dies ist die Schnittstelle zum Springframework, und beinhaltet die Methode doInHibernate(Session). Das Springframework und seine Schnittstellen sind in [JH04] beschrieben. Das besprochene Session Management wird zusammen mit der Transaktionsverwaltung vom Springframework transparent durchgef¨ uhrt.

6.3. DATA ACCESS COMMANDS

82

7. Dynamisches Modell Ohne im Klassenmodell zu stark in die Tiefe zu gehen, soll hier der Ablauf dargelegt werden. Ziel dieses Kapitels soll es sein zu zeigen, welche Komponenten welche Algorithmen ausf¨ uhren. Die nun folgenden Abschnitte sind entsprechend des Ablaufes vom Rohdokument bis hin zum fertig benannten Cluster sortiert.

7.1. Stoppworte finden Zun¨ achst wird die Textmenge einmal auf der Suche nach Stoppworten durchlaufen. Dabei werden alle Begriffe so gez¨ahlt, dass ein Begriff pro Dokument nur einmal gez¨ ahlt wird. Denn es ist hier vor allem interessant, in wievielen Dokumenten die Begriffe jeweils vorkommen. Wie oft sie in den Dokumenten vorkommen ist nicht relevant. Abbildung 7.1 zeigt die erzielte Wortverteilung im Reuters Korpus. Die Begriffe wurden nach ihrer H¨ aufigkeit sortiert, so dass eine Kurve sichtbar wird. Man kann sehen, dass die allergr¨oßte Menge an Begriffen sehr selten vorkommt. Man kann auch sehen, dass ein paar wenige Begriffe extrem h¨aufig vorkommen, in anderen Worten sieht man die Kurve nach langer Flaute sehr stark hochschnellen, so dass kaum noch eine Kurve zu erkennen ist, sondern das Gebilde eher nach einem leeren Graph mit etwas Schmutz in der rechten unteren Ecke ¨ aussieht. (Ubrigens: Der am h¨ aufigsten auftretende Begriff ist hier the“.) ” Diese Form der Kurve ließ sich f¨ ur eine einfache Absch¨atzung von Stoppworten nutzen. Zun¨ achst markiert der Algorithmus alle Worte als Stoppwort, die nur ein oder zwei Mal auftreten, da diese offenbar keine Aussagekraft in Bezug auf die Gemeinsamkeiten von Dokumenten besitzen, die im sp¨ateren Clustering relevant werden. Dann, um auch die h¨aufigsten Worte als Stoppwort zu deklarieren, wird die Steigung der Kurve ermittelt. Zusammen mit einem definierbaren Schwellenwert (ein Wert von 2.0 erschien nach einigen Experimenten als sinnvoll) lassen sich dann alle Worte, die rechts von dem durch den Schwellenwert gekennzeichnetet Begriff liegen, als Stoppwort deklarieren. Um kurzfristige Aus-

7.2. TERM-DOKUMENT-MATRIX ERSTELLEN

84

160000

140000

120000

Häufigkeit

100000

80000

60000

40000

20000

0 1

1392 2783 4174 5565 6956 8347 9738 11129 12520 13911 15302 16693 18084 19475 20866 22257 23648 25039 26430 27821 Term Nr

Abbildung 7.1.: Wort H¨aufigkeiten reißer zu ignorieren und somit nicht zu fr¨ uh einzuschreiten, werden jeweils drei Steigungswerte gemittelt. Sodann hat man eine Liste von Stoppworten, die in der Datenbank abgelegt werden.

7.2. Term-Dokument-Matrix erstellen Die sp¨ ater zu clusternden Texte werden zun¨achst vorbereitet. Die verf¨ ugbaren Daten bestehen bekanntlich aus den Liste von Deskriptoren und Sachgebieten und freien Begriffen, sowie aus den Kurzreferaten, die zu jedem Dokument verfasst werden. W¨ ahrend die Listen bereits in der gew¨ unschten Form vorliegen, so dass jeweils ein Begriff ein Feature darstellt, muss der Text erst in seine Bestandteile aufgebrochen werden. Dies funktioniert folgendermaßen, dass jedes Dokument einzeln zun¨achst durch einen Lexer l¨ auft, der anhand der Interpunktionszeichen im Text selbigen in einzelne Token aufteilt. Der Lexer ist in der Lage, E-Mails und WWW Adressen zu erkennen und als eigenst¨ andige Token zu behandeln. Die Token laufen danach durch einen SentenceDetector. Dies ist ein Objekt, welches Beginn und Ende von S¨atzen anhand einer einfachen Absch¨atzung (die zwar oft zutrifft, aber manchmal irrt) zu erkennen vermag. Derzeit wer-

85

7.2. TERM-DOKUMENT-MATRIX ERSTELLEN

Dokumente einlesen start

nächstes Dokument verarbeiten

Dokument analysieren Token erkennen

Satzgrenzen erkennen

Wortgruppen erkennen auf Wortstämme reduzieren StoppWorte entfernen

Abbildung 7.2.: Ablauf Text Analyse Term-Frequenz-Matrix aufbauen

mittels TF-IDFinterpretiert. Damit werden den schlicht beliebigeRoh-Matrix Satzzeichen als Satzgrenzen LSI anwenden anlegen

gewichten

auch Nebens¨ atze zu eigenst¨ andigen S¨atzen, ebenso wie eingeklammerte S¨atze oder W¨ orter. Die Erkennung dieser S¨atze oder Teils¨atze ist lediglich f¨ ur die Phrasen-Erkennung n¨ otig, denn Wortfolgen mit Satzzeichen dazwischen werden generell nicht als Kandidaten f¨ ur Phrasen angenommen. Dieser Detector Cluster erkennen

erzeugt Sentence Objekte, die als Container f¨ ur die Token des jeweiligen Satzes fungieren. Danach

Dokument Vektoren aus den LSI Ergebnissen wiederum werden selektierenalle

Sentence Objekte durchlaufen und auf wie-

derkehrende Wortgruppen u uft. Kommen in einem Dokument bestimmte ¨berpr¨ EM Clustering

Worte aufiger zusammen vor, wird f¨ ur diese Wortgruppe ein Objekt Phrase DONE h¨ anwenden angelegt, welches ebenso wie das Sentence Objekt als Container f¨ ur die der Wortgruppe zugeh¨ origen Worte gilt. Um zu erkennen, ob Worte mehrfach in Cluster benennen

der gleichen Folge auftreten, werden Suffix-Arrays (urspr¨ unglich beschrieben von [MM90], ¨ ahnlich verwendet von [ZD04]) f¨ ur die Dokumente aufgebaut. Ein Suffix ist eine Zeichenfolge, mit der ein Text endet. Beispielsweise w¨aren ati-

7.2. TERM-DOKUMENT-MATRIX ERSTELLEN

86

on ebenso wie ion Suffixe des Wortes Information. Somit gibt es f¨ ur das Wort Information genau elf unterschiedliche Suffixe, eins f¨ ur jeden Buchstaben. Wie von Zhang et al. dargestellt, werden zwei Suffix-Arrays ben¨otigt - eines normal von links nach rechts (Information, nformation, formation, . . . ), und eines genau umgekehrt von rechts nach links (Information, Informatio, Informati, . . . ; dieses k¨ onnte wohl passender Prefix-Array genannt werden). Beide Arrays werden sortiert (das Suffix-Array normal und das Prefix-Array umgekehrt von rechts nach links), so dass die mehrfachen Vorkommen gleicher Wortfolgen in der durch die Sortierung hergestellten Ordnung direkt nacheinander stehen und somit leicht erkannt werden. Der PhraseDetector und der SentenceDetector sind jeweils Producer. Ein Producer erzeugt Objekte, in diesen F¨allen eben Phrase oder SentencesAndPhrases Objekte. Die verschiedenen Producer sind zusammen mit dem Tokenizer in Reihe geschaltet. Dieser steht am Anfang der Kette und bildet die Schnittstelle zum Lexer. Er erm¨oglicht es, u ¨ber die erkannten Token eines Dokumentes zu iterieren und implementiert dazu die Iterator und Iterable Interfaces. Diese geh¨oren zum Standardumfang der Java-Klassenbibliothek und stellen somit die u ¨bliche Art und Weise dar, wie in Java u ¨ber Datenmengen iteriert wird. Der SentenceProducer nutzt den Tokenizer, um u ¨ber die Token zu iterieren, und erzeugt eine Reihe von Sentence Objekten. Der PhraseDetector, nach Tokenizer und SentenceDetector das Dritte Objekt in der Kette, ruft die Sentences vom SentenceDetector ab, indem er dessen produce() Methode mehrfach aufruft. Nach diesem Vorgang werden die gesammelten Token mit dem SnowballStemmer1 auf ihre Stammform zur¨ uckgef¨ uhrt. Dadurch werden beispielsweise die a ¨hnlichen Worte laufen“ und l¨auft“ auf die gleiche Buchstabenfolge re” ” duziert, so dass sie in der sp¨ ater aufgebauten Tabelle dieselbe Stelle besetzen. Dieses ist ein u ¨bliches Vorgehen bei solchen und ¨ahnlichen Textklassifizierungsaufgaben. Damit die urspr¨ unglichen Begriffe nicht verloren gehen, wird ein Verzeichnis angelegt, das f¨ ur jedes gestemte“ Wort die dazugeh¨origen urspr¨ ungli” chen Begriffe enth¨ alt. Dieses wird sp¨ater f¨ ur die Benennung wichtig. Danach wiederum werden die Token mit einer Liste von Stoppworten (siehe Abschnitt 7.1) verglichen. Alle Token, die in dieser Liste wiedergefunden werden, werden an dieser Stelle fallen gelassen und tauchen somit in sp¨ateren 1

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

Wortgruppen erkennen auf Wortstämme reduzieren StoppWorte entfernen

87

7.3. MATRIX BERECHNUNGEN

Term-Frequenz-Matrix aufbauen

Roh-Matrix anlegen

mittels TF-IDF gewichten

LSI anwenden

Abbildung 7.3.: Cluster Ablauf Matrix Berechnung erkennen Dokument Vektoren aus den LSI Ergebnissen selektieren

Analysen nicht auf.

Es bleiben also f¨ ur das jeweilige betrachtete Dokument eine Menge von Token EM Clustering

u oglicherweise die ein oder andere Phrase. Sowohl Token als auch anwenden ¨brig, sowie m¨

DONE

Phrase nehmen die Stelle von Features ein, wie sie in Abschnitt 5.3 (Seite 56), eingef¨ uhrt wurden. Token und Phrasen werden nun gleich behandelt und eins Cluster benennen nach dem anderen in eine Matrix einsortiert, die dynamisch w¨achst. Bei jedem neuen Feature (Token oder Phrase) wird eine Zeile hinzugef¨ ugt, w¨ahrend bei jedem neuen Dokument eine neue Spalte hinzugef¨ ugt wird. War ein Feature f¨ ur das jeweilige Dokument bereits in der Matrix registriert, wird nur dessen Z¨ahler um eins erh¨ oht. Auf diese Weise enth¨alt die Matrix nach dem Durchlauf des Algorithmus alle H¨ aufigkeiten des Auftretens der jeweiligen Features in den jeweiligen Dokumenten.

7.3. Matrix Berechnungen Der letzte Schritt des vorherigen Abschnittes, also das Sammeln und z¨ahlen der Terme und Phrasen eines Dokumentes, geht nahtlos in den ersten Schritt dieses Abschnittes u ¨ber. Alle Terme werden direkt in eine dynamisch wachsende zweidimensionale Matrix einsortiert, so dass die Werte in den Zellen jeweils die H¨ aufigkeit des Auftretens eines bestimmten Terms in einem bestimmten Dokument darstellen. Hier muss man bedenken, dass die Matrix generell extrem sp¨arlich besetzt ist. Der gr¨ oßte Teil der Zellen beinhaltet den Wert 0. Das leuchtet ein, wenn man sich vor Augen f¨ uhrt, dass f¨ ur jeden m¨oglichen Term eine Zeile in der Matrix existieren muss, ebenso wie f¨ ur jedes m¨ogliche Dokument eine eigene Spalte vorhanden sein muss und dass jedes Dokument nur aus kurzen Zusammenfassungen besteht. Dadurch werden nur eine vergleichsweise geringe Menge an unterschiedichen Begriffen in den jeweiligen Dokumenten verwendet. Es ist zum

7.3. MATRIX BERECHNUNGEN

88

Beispiel nicht ungew¨ ohnlich, 10.000 verschiedene Begriffe verwalten zu m¨ ussen, w¨ahrend in den einzelnen Texten vielleicht nur jeweils 100 Worte vorkommen, von denen sich sogar einige wiederholen. 9.900 Zellen w¨aren bei dieser Annahme auf 0, und das pro Dokument. Rechnet man die Dokumente des ISL (>80.000) auf die zu erwartende Gr¨oße der Matrix um, so bekommt man bei 20.000 Begriffen und 80.000 Dokumenten, sowie 8 Bytes pro Zelle (es werden double Werte gespeichert, um die H¨aufigkeitswerte mit double Gewichten multiplizieren zu k¨onnen, so dass das Ergebnis eine gewisse Genauigkeit beh¨alt) eine Datenmenge von 12.800.000.000 Bytes. Diese Zahl sollte Motivation genug sein, die Gr¨oße zu beschr¨anken. Die Matrix wird deshalb in einer Baumstruktur abgelegt, die der von Javas TreeMap entspricht. (Dessen Source wurde kopiert und leicht angepasst, sie wurde auf die Datentypen long als Schl¨ ussel und double als Wert beschr¨ankt und optimiert.) Die TreeMap verwendet einen sogenannten Rot-Schwarz-Baum, dessen Laufzeitcharakteristik f¨ ur die wesentlichen Operationen O(log(n)) entspricht. Sie legt die Daten so unter Schl¨ usselwerten ab, dass sie nach deren nat¨ urlicher Ordnung sortiert sind. Der Schl¨ ussel repr¨asentiert die Koordinate der Matrix, dessen Werte gespeichert werden sollen. Er wird aus Zeilenindex + X * Spaltenindex berechnet und ist somit bis zu einer Menge von X Dokumenten eindeutig bestimmt (die Dokumente entsprechen den Spalten). Das X darf mit dem maximalen Spaltenindex multipliziert nicht u ¨ber den Wertebereich von long hinaus. Also muss X auf jeden Fall ein positiver Integer sein. Das d¨ urfte jedoch kaum eine echte Einschr¨ ankung darstellen, schließlich ergibt das eine maximale Spalten und Zeilenzahl von jeweils 2 hoch 31. Nachdem diese Matrix fertig aufgebaut ist, wird sie durchlaufen und die verzeichneten Werte jeweils mit Gewichten (TF-IDF, siehe Abschnitt 5.3.3 (Seite 59)) multipliziert. Danach wiederum wird sie im Harwell-Boeing Format [DGL89] auf Platte abgelegt, denn die integrierte LSI-Komponente GTP2 ben¨otigt eine Datei in diesem Format als Eingabe. GTP liest daraufhin die Matrix ein und f¨ uhrt einen SVD Algorithmus aus, der drei Matrizen ergibt, die wie in Abschnitt 5.3.4 (Seite 62) beschrieben zusammen die Ursprungsmatrix approximieren. Die Ergebnisse schreibt GTP wiederum in eine Datei, die nun umgekehrt wieder eingelesen werden muss. Die Ergebnisse landen in einem daf¨ ur erstellten Objekt namens SvdResult, dieses Objekt implementiert die n¨otigen Funktionen, wie Begriffe 2

WWW Adresse: http://www.cs.utk.edu/∼lsi/

Term-Frequenz-Matrix aufbauen

Roh-Matrix anlegen

89

mittels TF-IDF gewichten

LSI anwenden

7.4. CLUSTER ANALYSE

Cluster erkennen Dokument Vektoren aus den LSI Ergebnissen selektieren

EM Clustering anwenden

DONE

Cluster benennen

Abbildung 7.4.: Ablauf Cluster Analyse untereinander verglichen werden, Dokumente untereinander verglichen werden und wie neue Dokumente in den Vektor-Raum eingefaltet“ werden, damit sie ” vergleichbar sind. Die Formeln dazu stehen in Abschnitt 5.3.4.

7.4. Cluster Analyse Aus den Ergebnissen werden die Dokumentvektoren extrahiert und an den Clustering Algorithmus u ¨bergeben. Danach werden Namen vergeben. F¨ ur die Algorithmen, die im Zusammenhang mit dem Clustering n¨otig waren, wurde das Strategy-Pattern ([GHJV96]) verwendet. Jeder wichtige Algorithmus, sei es f¨ ur die Zuweisung von Dokumenten zu Clustern (ClusterAssignmentStrategy) oder f¨ ur das Durchf¨ uhren des Clustering Algorithmus (ClusterStrategy) wird mit einer Schnittstelle ausgestattet, die ihn von dem Code, der ihn benutzt, entkoppelt. Dadurch ist es m¨oglich, die verwendete Implementation flexibel auszutauschen. Im Diagramm sind beispielsweise zwei ClusterStrategy-Implementationen aufgef¨ uhrt. Welche davon zur Anwendung kommt, entscheidet sich sobald der ClusterContext erzeugt und mit einer spezifischen Implementation initialisiert wurde. Die EMClusterStrategy Klasse implementiert der Einfachheit halber gleich zwei Schnittstellen und verh¨ alt sich als ihr eigenes Ergebnis-Objekt. Durch diese Aufteilung der Schnittstellen ist es m¨oglich, dass der Algorithmus nach der Arbeit ein anderes Objekt erzeugt und dieses als Ergebnis zur¨ uckliefert. Es mag, je nach Arbeitsweise des Algorithmus, sinnvoll sein, dies zu tun. In diesem Falle ging es auch so und auf eine Extra-Klasse f¨ ur die Ergebnisse konnte verzichtet

7.5. CLUSTER BENENNUNG UND MATRIZEN

90

werden.

7.5. Cluster Benennung und Matrizen Zur Benennung der Cluster werden die LSI-Ergebnisse verwendet. Diese finden sich im Code in Form eines SvdResult-Objekts wieder. Man sieht in Abbildung 7.6, dass das SvdResult Objekt Zugriff auf die Term- und Dokument-Matrizen bietet, so wie sie vom LSI Code erzeugt worden waren. Man sieht auf dem Diagramm leider nicht den Verweis auf die DiagonalMatrix Klasse. Daber handelt es sich um eine optimierte Subklasse von Matrix, die ausschließlich Werte auf der Diagonalen h¨ alt und zudem ihre Methoden auf die Besonderheiten von diagonalen Matrizen hin optimiert hat, und die hiermit immerhin erw¨ahnt wurde. Um die Benennungen zu finden, wird zun¨achst aus den Dokumenten, die zu dem jeweiligen Cluster geh¨oren, ein Pseudo-Dokument-Vektor erstellt. Dieses ist der Cluster-Zentroid. Er errechnet sich als einfacher Mittelwert-Vektor. Daraufhin werden zu diesem Pseudo-Vektor die Terme gesucht, die ihm am ¨ Ahnlichsten sind. Dazu werden die Methoden (es gibt mehrere, daher Mehrzahl) computeTermDocumentAssociation von SvdResult verwendet. Der erzeugte Cluster befindet sich bereits im SVD-Raum und kann direkt anstatt eines Dokument-Vektors verwendet werden. Im Diagramm ist die Klasse SparseMatrix zu sehen. Diese ist hier der Vollst¨ andigkeit halber aufgef¨ uhrt, denn sie wird nur f¨ ur das Ausf¨ uhren des LSIAlgorithmus ben¨ otigt. Dieser nimmt die Matrix nur in einem solchen Format entgegen. Daher wird die Matrix vor dem LSI-Durchlauf erst in eine solche SparseMatrix-Implementation gewandelt.

91

7.5. CLUSTER BENENNUNG UND MATRIZEN

cluster::ClusterAssignmentStrategy + + +

ClusterAssignmentStrategy() assign(double) : ArrayList toArray(ArrayList) : int[]

+m_ClusterAssignmentStrategy

cluster::ClusterContext cluster::AssignByThreshold

+ + + +

AssignByThreshold() AssignByThreshold(double) assign(double) : ArrayList maxIndex(double) : int

+ + +

DEFAULT_ARFF_FILE_NAME: String = "clusterInput.arff" m_ClusterStrategy: ClusterStrategy m_ClusterAssignmentStrategy: ClusterAssignmentStrategy

+ + + + +

ClusterContext() ClusterContext(ClusterStrategy, ClusterAssignmentStrategy) cluster(Matrix) : ClusteringResult assign(ClusteringResult, int) : int assign(double) : ArrayList

+m_ClusterStrategy «interface» cluster::ClusteringResult

cluster::ClusterStrategy

+ +

+ + +

ClusterStrategy() findClusterProbabilityDistribution(Reader) : ClusteringResult

probabilityDistributionForInstance(Instance) : double[] numberOfInstances() : int instanceAtIndex(int) : Instance

InitializingBean cluster::KMeansStrategy

cluster::EMClusterStrategy

+ + + + +

findClusterProbabilityDistribution(Reader) : ClusteringResult probabilityDistributionForInstance(Instance) : double[] numberOfInstances() : int instanceAtIndex(int) : Instance afterPropertiesSet() : void

+ + + + +

KMeansStrategy() findClusterProbabilityDistribution(Reader) : ClusteringResult probabilityDistributionForInstance(Instance) : double[] numberOfInstances() : int instanceAtIndex(int) : Instance

-wekaInstances analysis:: Instances +

Instances()

Abbildung 7.5.: Klassendiagramm Cluster Algorithmen

7.5. CLUSTER BENENNUNG UND MATRIZEN

«interface» maths::IMatrix + + + + + + + + + + +

92

maths::AbstractMatrix

set(int, int, double) : void get(int, int) : double getRowDimension() : int getColumnDimension() : int getRowDescriptors() : List getColumnDescriptors() : List setRowDescriptors(List) : void setColumnDescriptors(List) : void getColumnVector(int) : IMatrix getMaximumValue() : double getMinimumValue() : double

+ ~ + + + + + +

resetMaxMinValues() : void computeMaximalValues(IMatrix) : double[] computeFrobeniusNormal() : double normalize() : void normalizeColumns() : void normalizeRows() : void lengthOfColumn(int) : double lengthOfRowVector(int) : double

maths::SparseMatrix

+ + + + # + + + + + + + + + + + + +

createFrom(IMatrix) : SparseMatrix createFrom(IndexedSparseMatrix) : SparseMatrix createFrom(Matrix) : SparseMatrix findNumberOfNonZeroValues(IMatrix) : int SparseMatrix() getNumberOfValues() : long getValues() : double[] getRowIndizes() : long[] getColumnPointer() : long[] SparseMatrix(long, long, long, long, long, double) get(int, int) : double getColumnDimension() : int getRowDimension() : int set(int, int, double) : void toDenseMatrix() : Matrix toGtpGeneralObject() : General getColumnVector(int) : IMatrix equals(Object) : boolean

maths::SvdResult

maths::Matrix ~ ~

columnDescriptors: List rowDescriptors: List

+ + + + + + + + + + + + + + + + + + ~ + + + + + + + + + + + + + + + + + + + + +

stringWithMinLengthOf(int, String) : String Matrix(double, int) Matrix(double) Matrix(double, int, int) Matrix(int, int) Matrix(int, int, double) Matrix(Jama.Matrix) copy() : Matrix get(int, int) : double set(int, int, double) : void times(Matrix) : Matrix createFromTransposedVector(double) : Matrix createFromVector(double) : Matrix createMatrixFromColumns(int) : Matrix times(DiagonalMatrix) : Matrix solveTranspose(Matrix) : Matrix transpose() : Matrix solve(Matrix) : Matrix getArray() : double[] getColumnPackedCopy() : double[] getColumnVectorArray(int) : double[] getMeanVector(int) : Matrix getSumVector(int) : Matrix getColumnVector(int) : IMatrix toIndexedSparseMatrix() : IndexedSparseMatrix inverse() : Matrix toJamaMatrix() : Jama.Matrix getRowDimension() : int getColumnDimension() : int singularValueDecomposition() : SvdResult toString() : String equals(Object) : boolean equals(IMatrix, IMatrix) : boolean normalize() : void normalizeColumns() : void normalizeRows() : void lengthOfColumn(int) : double lengthOfRowVector(int) : double computeFrobeniusNormal() : double computeOverallSimilarity() : double

-sv

+v

+ + +

u: Matrix v: Matrix s: DiagonalMatrix

+ + + + + + + + + + + + + + + + + + + + + + + + + + + +

SvdResult(Matrix, DiagonalMatrix, Matrix) SvdResult(Matrix, double, Matrix) SvdResult() dimension() : int get(int, int) : double set(int, int, double) : void getRowDimension() : int getColumnDimension() : int getRowDescriptors() : List getColumnDescriptors() : List setRowDescriptors(List) : void setColumnDescriptors(List) : void rank() : int rowSpaceCompare(int, int) : double columnSpaceCompare(int, int) : double columnSpaceCompare(int, Matrix) : double computeTermDocumentAssociation(int, double) : Double getRootOfS() : double[] computeTermDocumentAssociations(Matrix) : Map computeTermDocumentAssociations(int) : Map projectVectorInColumnSpace(double) : double[] projectVectorInColumnSpace(Matrix) : Matrix projectVectorInRowSpace(Matrix) : Matrix getColumnVector(int) : IMatrix getSTimesV() : Matrix equals(Object) : boolean getMaximumValue() : double getMinimumValue() : double

+u +svdResult

cluster::ClusterNamingContext +

m_ClusterNamingStrategy: ClusterNamingStrategy

+ + +

ClusterNamingContext(ClusterNamingStrategy) nameClusters() : void nameClusters(Fetch) : void

+m_ClusterNamingStrategy cluster::ClusterNamingStrategy +

nameCluster(ClusterNamingContext, Cluster) : void

strategies::NearestTermsNamingStrategy

+

nameCluster(ClusterNamingContext, Cluster) : void

Abbildung 7.6.: Klassendiagramm f¨ ur Matrizen und SVD Ergebnisse

8. Verwendung des Programms 8.1. Installation F¨ ur die Anwendung existiert ein Installationsprogramm, welches die n¨otigen Verzeichnisse anlegt. Dieses liegt in Form eines ausf¨ uhrbaren JAR Archives vor, welches unter Windows u ¨blicherweise schlicht mittels Doppelklick gestartet werden kann. Sollte das nicht funktionieren, so ist es auf der Konsole mittels java -jar seacluster-install.jar ausf¨ uhrbar. Dabei ist nat¨ urlich zu beachten, dass die java Anwendung im Pfad zugreifbar sein muss. Nachdem es in dem gew¨ ahlten Verzeichnis installiert wurde, muss es auf die zu verwendende Datenank eingestellt werden. Im Installationsverzeichnis liegt eine .sql Datei, die das erwartete Datenmodell in SQL beinhaltet. Sofern sich die Datenbank nach dem SQL92 Standard richtet, sollte dieses direkt problemlos in der Datenbank ausgef¨ uhrt werden k¨onnen und dort die n¨otigen Tabellen anlegen. Eventuell muss es jedoch auf die Datenbank zugeschnitten werden, dies sollte vorher evaluiert werden. Ist die Datenbank mit den Tabellen versorgt, m¨ ussen die JDBC-Einstellungen in der seacluster.properties Datei hinterlegt werden. Diese Datei befindet sich ebenfalls im angelegten Installationsverzeichnis. Alle mit EDITME gekennzeichneten Einstellungen m¨ ussen gesetzt werden. Dabei sind keine G¨ansef¨ ußchen oder Klammern zu verwenden. Siehe auch Abschnitt 8.3. Der JDBC Treiber f¨ ur die verwendete Datenbank liegt u ¨blicherweise als JAR vor und muss nur in das lib Verzeichnis kopiert werden. F¨ ur FrontBase und PostgreSQL liegen bereits aktuelle JDBC Treiber vor. Nun gilt es, die DOCUMENTS Tabelle in der Datenbank mit Daten zu f¨ ullen. Hier existiert kein allgemeing¨ ultiger Prozess, dies ist schließlich sehr stark von den lokalen Gegebenheiten abh¨angig. Die Software-Architektur sieht Import-Dienste vor, die jedoch speziell entwickelt werden m¨ ussen. Es existiert ein Import-Dienst f¨ ur das Datenformat des Reuters Textkorpus (siehe auch Abschnitt 9.1.1 (Seite 101)). Dieser wird, falls Bedarf besteht,

¨ 8.2. BENUTZEROBERFLACHE

94

Abbildung 8.1.: Bildschirmfoto des Cluster Browsers u ussen die ¨ber einen Flag auf der Kommando-Zeile gestartet. Zun¨achst m¨ SGML Dateien des Korpus in ein Verzeichnis namens reuters-import kopiert werden. Dann kann SeaCLUSTER folgendermaßen gestartet werden: java -Dservice.importService.load -jar start.jar. Daraufhin werden die Dateien im import Verzeichnis eingelesen, geparst und in die Datenbank geschrieben. Andere Korpora, die im gleichen Format vorliegen, m¨ogen ebenso eingelesen werden k¨ onnen. F¨ ur Quellen in anderen Formaten muss ein spezieller Import-Dienst entwickelt werden. Dies ist jedoch nicht sehr aufwendig. Nun kann SeaCLUSTER durch einen Doppelklick auf start.jar oder die Eingabe von java -jar start.jar auf der Kommandozeile gestartet werden.

8.2. Benutzeroberfl¨ ache Die GUI beinhaltet zun¨ achst nur ein Men¨ u, aus welchem der Clustering Prozess gestartet werden kann. W¨ ahlt man den Cluster Browser () aus, ¨offnen sich mehrere nebeneinanderliegende Listen und ein Textfeld, in denen jeweils die Daten angezeigt werden. Die Art der Navigation wurde durch den File Viewer des legend¨ aren Betriebssystems NEXTSTEP inspiriert, der sich ebenfalls durch nebeneinander angeordnete Listen auszeichnete und keinerlei Baumdarstellung, wie sie in modernen Systemen u ¨blich ist, kannte.

¨ 8.2. BENUTZEROBERFLACHE

95

Abbildung 8.2.: Bildschirmfoto des Men¨ us

W¨ ahlt man einen Cluster in der linken Liste aus, werden die Dokumente in der rechts danebenliegenden Liste angezeigt. W¨ahlt man dort wiederum ein Dokument aus, wird dessen Inhalt im Textfeld daneben angezeigt. Zus¨atzlich wird wiederum daneben und nun ganz rechts eine Liste mit den Begriffen gef¨ ullt, die laut LSI eine starke Zugeh¨origkeit zu dem jeweiligen Dokument aufweisen (sortiert nach Zugeh¨ origkeit). Die Statuszeile zeigt einen Wert, der den Zusammenhang des Clusters repr¨ asentiert und die Qualit¨at des jeweiligen Clusters rechnerisch beweisen k¨ onnen soll. Je h¨oher der Wert, desto ¨ahnlicher sind sich die im Cluster befindlichen Dokumente. Abbildung 8.2 zeigt die M¨ oglichkeiten. Der Gesamtprozess des Clusterings wurde in drei Teilschritte aufgeteilt. compute stopwords analysiert den Datenbestand auf Stoppworte und speichert diese in der Datenbank ab. prep analysiert den Datenbestand erneut, nur wird nun der oben besprochene komplette Analyse-Prozess durchgef¨ uhrt, an dessen Ende der SVD-Algorithmus der LSIKomponente steht. run wiederum f¨ uhrt die eigentliche Clusteranalyse durch, indem es wie angesprochen den EM-Algorithmus des WEKA-Toolkits ausf¨ uhrt. Da der Zustand des Systems nach jedem Schritt vollst¨andig auf Festplatte und in die Datenbank gesichert wird, kann die Anwendung zwischen den Vorg¨angen geschlossen und neu gestartet werden. Ebenso l¨asst sich z.B. der Clustering Algorithmus mit verschiedenen Parametern (Zahl der Cluster) mehrfach aufrufen, um die optimale Zahl experimentell zu ermitteln. Der Punkt run complete f¨ uhrt prep und run in direkter Folge aus. Dies ist eine Vereinfachung, da beide Vorg¨ ange eine Weile dauern k¨onnen und der Nutzer so nicht auf das Ende des ersten Vorgangs warten muss.

8.3. KONFIGURATION

96

${strategy.documents.number}

Abbildung 8.3.: Ausschnitt der Komponentenkonfiguration

8.3. Konfiguration In Abbildung 8.3 wird exemplarisch die Konfiguration einer Komponente gezeigt. Das Format wird vom Spring Framework1 vorgegeben, welches die Komponenten zur Laufzeit mit den jeweiligen Werten versieht und sie wie vorgegeben initialisiert. Es handelt sich dabei um ein auf XML basierendes Format. Der Vorteil, solch eine Konfiguration zu verwenden, liegt in der einfachen nachtr¨aglichen Austauschbarkeit zentraler Komponenten. Dargestellt ist in diesem Beispiel die DocumentProducer-Komponente. Diese liest die Dokument-Daten aus der Datenquelle (der Datenbank) ein und legt sie in einer FIFO-Liste (First In, First Out) ab, aus der sich die weiteren (konsumierenden) Komponenten bedienen k¨onnen. Der DocumentProducer delegiert das eigentliche laden der Dokumente jedoch an eine weitere Komponente, in diesem Falle an das FetchRandomTemplate. Diese Komponente l¨ adt eine bestimmte Anzahl von Objekten in zuf¨alliger Reihenfolge aus der Datenbank. Es ist somit zu erwarten, dass bei jedem Durchlauf andere Objekte aus dem Fundus geladen werden. Man sieht auch, dass die Anzahl an Dokumenten durch eine Variable strategy.documents.number definiert wird. Diese Variable wird aus einer .properties Datei (dies ist ein Standardformat der Java-Plattform f¨ ur Konfigurationsdateien) eingelesen, die entweder im home“-Verzeichnis des Nutzers oder im aktuellen Arbeitsverzeichnis ” unter dem Namen seacluster.properties erwartet wird. Die Annahme, die f¨ ur diese Zweiteilung spricht, ist die, dass die Konfigurationsdatei, die durch die 1

WWW Adresse: http://www.springframework.org

97

8.3. KONFIGURATION

vielen Komponenten des Systems nur schwer u ¨berschaubar ist, selten ge¨andert werden muss, wohingegen die viel u ¨bersichtlichere Properties-Datei all jene Werte beinhaltet, die oft angepasst werden. Im Zuge der Entwicklung war es (beispielsweise f¨ ur die Fehlersuche) notwendig, vergleichbare Ergebnisse zu bekommen. Das ist nun nicht m¨oglich, wenn bei jedem Durchlauf eine zuf¨ allige Dokumentenmenge produziert wird. Aus diesem Grund wurde die Komponente FetchWithIdFile entwickelt, deren Konfiguration in Abbildung 8.3 auskommentiert zu sehen ist. Diese erwartet eine Liste von IDs in einer Textdatei und l¨adt nur die Dokumente, die dort angegeben wurden, in genau der in der Datei vorliegenden Reihenfolge. Um die Anwendung benutzerfreundlicher zu gestalten, w¨are es sicherlich an¨ zuraten, f¨ ur die Konfiguration jeweils Dialoge zu gestalten, die die Anderungen der jeweiligen Datei(en) einfach erm¨oglicht. Darauf wurde jedoch zun¨achst verzichtet. db.jdbc.url Die JDBC URL f¨ ur die Identifikation der Datenbank. Ist abh¨angig von der jeweiligen verwendeten Datenbank. Beispiel f¨ ur FrontBase: jdbc:FrontBase://local/seacluster db.jdbc.user Benutzername f¨ ur die Datenbank db.jdbc.pass Passwort f¨ ur die Datenbank db.jdbc.driver Klassenname des JDBC Treibers f¨ ur die verwendete Datenbank. Beispiel f¨ ur FrontBase: com.frontbase.jdbc.FBJDriver db.hibernate.batchsize Dies kann zur Optimierung der Datenbankzugriffe verwendet werden. Hibernate versucht, bei Bedarf mehrere Objekte in einem Rutsch aus der Datenbank zu lesen. Die Voreinstellung ist 50. db.hibernate.dialect Hibernate besitzt f¨ ur die meisten Datenbanken optimierte Strategien. Welche Strategie verwendet werden soll, entscheidet sich hier. Beispiel f¨ ur FrontBase: org.hibernate.dialect.FrontBaseDialect strategy.analysis.refreshTermSchema true, falls die f¨ ur die Klassifizierung zu verwendeten Terme neu ermittelt werden sollen (Voreinstellung). false sonst. strategy.cluster.number Anzahl zu errechnender Cluster.

8.3. KONFIGURATION

98

strategy.cluster.discretize true, falls die Werte vor dem Clustering in diskrete Klassen eingeteilt werden sollen. false sonst (Voreinstellung). strategy.cluster.shift true, falls die Wertebereiche so verschoben werden sollen, dass der gr¨ oßte positive Wert und der kleinste negative Wert den selben Abstand von 0 besitzen, dass also 0 genau in der Mitte des Wertebereichs liegt. false sonst (Voreinstellung). strategy.cluster.normalize true, falls der Wertebereich gestaucht oder geschrumpft werden soll, so dass er sich innerhalb des Intervalls zwischen -1 und +1 befindet und diesen so gut wie m¨oglich ausf¨ ullt (Voreinstellung). false sonst. strategy.documents.number Anzahl zugrundegelegter Dokumente. -1 bedeutet alle Dokumente“. FetchWithIdFile jedoch ignoriert diese Einstel” lung. strategy.idListFileName Beinhaltet den Dateinamen der Datei, die DokumentIDs zur Verwendung beinhaltet. Wird nur von FetchWithIdFile verwendet. strategy.stopwords.threshold Legt die Steigung der Kurve in Abbildung 7.1 (Seite 84) fest, ab der Worte als Stoppwort einsortiert werden. 2.0 ist Voreinstellung. strategy.stopwords.includefile Legt den Dateinamen der Datei fest, aus der das System solche Begriffe entnimmt, die auf jeden Fall ein Stoppwort sein sollen. strategy.stopwords.excludefile Legt den Dateinamen der Datei fest, aus der das System solche Begriffe entnimmt, die auf keinen Fall ein Stoppwort werden sollen. Hat im Zweifel vor includefile Vorrang.

Teil IV.

Abschluss

9. Ergebnisse und Fazit 9.1. Technische Perspektive 9.1.1. Testdaten Um die Algorithmen testen zu k¨onnen, wurde der in der Forschung oft verwendete und frei zug¨ angliche Textkorpus Reuters-21578“ verwendet. Dieser wurde ” 1990 ver¨ offentlicht und besteht aus einer Reihe von Nachrichtentexten, die 1987 im Reuters Nachrichtendienst erschienen sind. Er wird derzeit von David D. Lewis verwaltet und online f¨ ur Forschungszwecke angeboten, vgl. [Lew96]. Der Korpus besteht aus einer Menge von 21.578 kurzen Texten. Manche beinhalten nicht mehr als drei S¨ atze, andere entsprechen vom Umfang her einer Schreibmaschinenseite. Die Themen der Texte sind in den Bereichen Wirtschaft und Politik angesiedelt.

9.1.2. Laufzeit Man muss feststellen, dass Clustering mit dem EM-Algorithmus nicht sehr schnell ist. Soviel vorweg. Es wurde zudem bereits im Kapitel Abschnitt 7.3 (Seite 87) angesprochen, dass die Matrix bei großen Datenmengen extrem groß werden kann, so dass die Algorithmen, wie sie hier beschrieben wurden, gar nicht mehr funktionieren. Im Falle des ISL sind die Mengen noch klein genug (unkomprimiert gegen 12GB, komprimiert wenige hundert MB), aber ein Ende ist definitiv in Sicht. Große Datenmengen sind nat¨ urlich auch in Bezug auf die Laufzeit ein Problem. Der EM-Algorithmus hat eine exponentielle Laufzeitcharakteristik, so dass die Laufzeit mit wachsender Menge an Daten immer st¨arker w¨achst. Dies zeigt sich auch an den gesammelten Statistiken. In Tabelle 9.1 und Tabelle 9.2 seien zwei Laufzeitprotokolle gegen¨ ubergestellt. An den beiden Tabellen wird deutlich, dass die Clustering-Zeit deutlich schneller w¨achst als alle anderen Faktoren. W¨ahrend sich die Menge an Dokumenten

9.1. TECHNISCHE PERSPEKTIVE

102

Abschnitt

Laufzeit

Parsing

60 Sek.

LSI

7 Sek.

Clustering

87 Sek.

Zuweisungen in DB sichern

48 Sek.

Cluster benennen

12 Sek.

Anzahl Features

1837 Terme

Tabelle 9.1.: Laufzeit bei 521 Dokumenten Abschnitt

Laufzeit

Parsing

182 Sek.

LSI

13 Sek.

Clustering

806 Sek.

Zuweisungen in DB sichern

152 Sek.

Cluster benennen

37 Sek.

Anzahl Features

3709 Terme

Tabelle 9.2.: Laufzeit bei 1684 Dokumenten etwa verdreifacht hat, hat sich die Clustering-Zeit in diesem Beispiel verzehnfacht. Es f¨ allt auf, dass der LSI-Algorithmus im Gegensatz dazu sehr gut skaliert. Zur Ehrenrettung des EM-Algorithmus sollte man jedoch erw¨ahnen, dass die verwendete Implementation aus dem WEKA-Toolkit nicht speziell auf die Laufzeit hin optimiert wurde. Es ließe sich dort sicherlich noch etwas verbessern.

9.1.3. Qualit¨ at Dies ist ein Sorgenkind. Trotzdem der EM-Algorithmus komplexere Strukturen erkennen kann, als andere, einfachere Varianten, ist es durchaus nicht leicht, ein passendes, sinnvolles Clustering zu erreichen. Die Anzahl an Clustern ist bereits ein Faktor. Diese muss im Falle des EM-Algorithmus zu Beginn feststehen und hat große Auswirkungen auf das Ergebnis. Wieviele sinnvolle Gruppen lassen sich aus einer Dokumentenmenge erzeugen, und was ist u ¨berhaupt eine sinnvolle Gruppe? Die Fragen sind bereits f¨ ur den Fachmann schwer zu beantworten, und ein Clustering Algorithmus beantwortet sie auf seine Weise automatisch, trifft aber nicht immer den Nagel auf den Kopf.

103

9.1. TECHNISCHE PERSPEKTIVE

Da die automatisch erzeugten Cluster rein statistisch begr¨ undet sind, f¨allt es mitunter schwer, nachzuvollziehen warum nun eine bestimmte Menge an Dokumenten zusammengruppiert wurde. Das ist immer dann der Fall, wenn Eigenschaften bzw. Begriffe zum Clustern herangezogen wurden, die wenig inhaltliche Aussagekraft haben. Um also qualitativ hochwertige, sinnvolle Cluster erzeugt zu bekommen, ist es von N¨oten, die Begriffe manuell zu u ufen und ¨berpr¨ all diese als Stoppwort zu deklarieren, die generell wenig u ¨ber den Inhalt der Texte aussagen. Um dies zu belegen, seien nun einige Beispiele dargestellt, die jeweils in ein und demselben Cluster zusammegefasst wurden. Das erste Beispiel zeigt den Beginn eines Textes, der offenbar vom leicht gefallenen Dollarkurs handelt und dass sich die H¨ andler wegen der unklaren Situation zur¨ uckgehalten haben. The dollar opened slightly lower in quiet trading, with dealers holding back ” ahead of the outcome of this week’s top-level international monetary talks in Washington. The dollar began here at 1.5128/5138 Swiss francs, down from the previous 1.5185/5195 close and the 1.5180/5190 francs in New York. However, dealers were sceptical that anything other than a mere reaffirmation of February’s Paris Accord was likely to emerge from Washington.“ Der n¨ achste Absatz dagegen spricht von Schweinen. Deren Marktpreis sei gestiegen. Hog prices are expected steady to 0.50 dlr higher on estimated receipts of ” 2,000 head, private sources said. Top seen at 51.00 to 51.50 dlrs per cwt. Sources said the market closed stronger late yesterday and was expected to carry over into today’s session. Farmers are getting in the fields here,& they said. Also, ” little if any country movement was expected, they added.“ Im selben Cluster befanden sich noch Texte, die u ¨ber den B¨orsenwert beispielsweise eines Unternehmens im Markt der Kaffee-R¨oster berichteten. Die Begriffe, die der Algorithmus als besonders zentral f¨ ur diese Gruppierung erachtet hatte, waren higher“, openly“, lowers“ und Dealers“. (Diese Begriffe ” ” ” ” werden f¨ ur jeden Cluster automatisch auf der Basis der durch SVD hergestellten Matrizen errechnet und als Bennungsvorschlag angeboten.) Man sieht daran, dass die Ver¨ anderung von Preisen der relevante Aspekt f¨ ur diese Gruppierung war. In Bezug auf die Qualit¨ at der Cluster muss hier beachtet werden, ob dieser Cluster, bzw. der Aspekt der ihm zugrundeliegt, auch dem Ziel entspricht, das man mit dem Clustering urspr¨ unglich verfolgt hat. M¨oglicherweise w¨are es hier interessanter, die Dokumente nach den Objekten zu gruppieren (also alles u ¨ber

9.1. TECHNISCHE PERSPEKTIVE

104

Schweine gegen alles u ¨ber den Dollar als Objekt, z.B.). W¨ urde man nun die Begriffe lowers“ und higher“ als Stoppwort deklarieren, ” ” dann w¨ urde der Algorithmus diesen Aspekt nicht mehr sehen und die Cluster anders zusammensetzen. Dass die sich neu ergebende Struktur wirklich besser ist, bleibt jedoch im Einzelfall zu pr¨ ufen. Der Prozess l¨auft vollautomatisch ab und kann durch Stoppworte und der vorgegebenen Anzahl von Clustern nur begrenzt beeinflusst werden. Dies ist sowohl seine St¨arke wie auch seine Schw¨ache. St¨ arke, weil er wenige manuelle Eingriffe erfordert. Bei großen Datenmengen ist es schließlich nicht mehr praktikabel, die Cluster manuell anzulegen, weil es zuviel Aufwand erfordert. Schw¨ache, weil er kaum manuelle Eingriffe erm¨oglicht und somit das Ziel einer perfekten Clusterstruktur verfehlen kann. Es bleibt ein Trade-Off. Nach all der Kritik soll aber nicht verschwiegen werden, dass mit einer mittleren Anzahl von Clustern und einer automatisch definierten Menge an Stoppworten auch eine ganze Reihe von subjektiv sinnvollen Clustern erzeugt werden konnten.

9.1.4. Ausblick Was l¨ asst sich noch verbessern? Es ließe sich ein Algorithmus implementieren, der besser skaliert. Bradley et al. schlagen in ihrem Paper [BFR99] einen optimierten Ablauf vor, der mit deutlich weniger Hauptspeicher auskommt, da er blockweise arbeitet und daher immer nur einen bestimmten Block im Speicher halten muss. Es w¨ urde im Sinne der Skalierbarkeit sicherlich helfen, wenn der Algorithmus auf mehreren Rechnern verteilt ablaufen k¨onnte. Das gleiche gilt f¨ ur die LSI-Implementation, mit dem Unterschied, dass es tats¨achlich schon online verf¨ ugbar ist, nur nicht in Java. Die parallele LSI-Implementation nennt sich PGTP und ist ebenso wie die normale GTP Variante auf www.cs.utk.edu/ lsi1 in der Software-Rubrik zu finden. Es gibt zudem Stimmen, die den EM-Algorithmus f¨ ur den Zweck, Texte zu clustern, nicht als optimal erachten. Breunig et al. [BKKS01] beispielsweise schlagen eine alternative Methode vor, die sogenannte Data Bubbles“ zusam” men mit dem OPTICS Algorithmus [ABKS99] verwendet, um auf effizientere Art und Weise zu einer Clusterstruktur zu gelangen, die hierarchisch sortiert ist. Dieses Verfahren ist speziell darauf ausgelegt, auch bei großen Datenmen1

WWW Adresse: http://www.cs.utk.edu/∼lsi

105

9.1. TECHNISCHE PERSPEKTIVE

gen noch gut genug zu funktionieren. Ein (qualitativer) Vergleich mit dem EMAlgorithmus w¨ are f¨ ur die Zukunft interessant. Ferner: Um die verwendeten Begriffe exakter spezifizieren zu k¨onnen, w¨are es denkbar, ein begriffliches Netz wie das WordNet [Mil95] zu integrieren. Damit k¨onnten thematisch ¨ ahnliche Begriffe automatisch vor dem Clustering auf den selben Term reduziert werden. Die Hoffnung dabei ist nat¨ urlich, dass dadurch ein qualitativ hochwertigeres Ergebnis entsteht. Zuletzt sei die Anmerkung erlaubt, dass die aktuelle Entwicklung im Internet von den traditionellen Klassifikationsmechanismen weggeht. Hierzu sei [Shi05] als Lekt¨ ure genannt. Shirky erkl¨art hier sehr sch¨on, welche Probleme bei festen Klassifikationssysteme mit einem fest definierten Thesaurus auftreten. Er nennt aber auch Eigenschaften, die f¨ ur ein solches festes Klassifikationssystem sprechen: • Geringer Umfang des Dokumentkorpus • Formelle Kategorien • Stabile Konzepte • Eingeschr¨ ankte Konzepte • Klare Dom¨ anengrenze • Katalogisierer ist Experte im Fachgebiet • Autoritative Quelle • Bestimmte Nutzergruppe • Nutzer sind Experten bzgl. der Kategorisierung Einige dieser Eigenschaften treffen f¨ ur das ISL tats¨achlich zu. Beispielsweise ist der Umfang und die betrachtete Dom¨ane begrenzt (verglichen mit den Datenmengen, die Google oder Yahoo verwalten). Die Dom¨anengrenzen ¨andern sich so gut wie nie, denn das ISL hat sich auf Seeverkehrswirtschaft und Logikistik spezialisiert. Die Klassifikation wird von Fachleuten des ISL verfasst und befindet sich in einer wohldefinierten, hierarchischen Struktur und kann somit als formell bezeichnet werden. Das ISL fungiert als autoritative Oberaufsicht auf die Klassifikation.

9.2. FACHLICHE PERSPEKTIVE

106

Die Nutzer sind jedoch nicht fest bestimmt, es hat eine unbestimmte Menge an Nutzern weltweit Zugriff auf das System. Es gab somit auch keine expliziten Schulungen bez¨ uglich der Klassifikation. Man kann nicht von Expertentum auf Seiten der Nutzer ausgehen. Die meisten Faktoren sind im Falle des ISL zwar f¨ ur eine feste Klassifikation ausgerichtet, die unbestimmte und ungeschulte Nutzergruppe ist aber ein wichtiger Faktor, der dagegen spr¨ ache. Hier sind noch weitere Forschungen sinnvoll.

9.2. Fachliche Perspektive 9.2.1. Potentiale Angenommen, es wurden einige sinnvolle Cluster in der Datenbank angelegt. Welche M¨ oglichkeiten er¨ offnet das eigentlich? Sei nun angenommen, dass Nutzer zu wenige Ergebnisse zu ihren Suchanfragen bekommen. In diesem Falle k¨onnte man dem entgegen wirken, in dem man die Ergebnisliste durch jene Dokumente anreichert, die in den gleichen Clustern wie die Dokumente der urspr¨ unglichen Ergebnisliste verzeichnet sind. Zusammen mit einem sinnvollen Ranking kann diese Erweiterung der Ergebnismenge das Such-Erlebnis verbessern. Gibt es im Gegensatz dazu eher zu viele Ergebnisse, so k¨onnen zus¨atzlich, wie in Abbildung 4.5 (Seite 44) dargestellt, die Cluster daneben aufgelistet werden. So kann der Suchende die Ergebnisse auf eine beliebige Gruppe ¨ahnlicher Dokumente einschr¨ anken. Er sieht so mindestens sofort, welche Cluster wahrscheinlich nicht interessant sind, und kann sich auf die verbliebenen interessanten Cluster konzentrieren. Es gibt ihm auch einen Hinweis darauf, welche Daten im System vorhanden sind, so dass er beim zweiten Versuch eine gezieltere Anfrage formulieren kann. Hat der Nutzer bereits ein relevantes Dokument gefunden, so kann das System ihm durch den Verweis zu dem Cluster, dem das Dokument angeh¨ort, den direkten Zugang zu anderen (hoffentlich) ebenso relevanten Dokumenten bieten. Auch diese Variante wurde bereits angesprochen, siehe Abbildung 4.6 (Seite 45). Sofern zus¨ atzlich zum Such-Formular ein Verzeichnis mit hierarchischen Kategorien angelegt werden soll, so ließe sich ein automatisch durchgef¨ uhrtes Clustering als Roh-Form verwenden und die Grundlage f¨ ur das Verzeichnis bilden. Die Fachleute des ISL w¨ urden sicherlich einige Cluster zusammenfassen, sowie

107

9.2. FACHLICHE PERSPEKTIVE

andere aufl¨ osen und dessen Dokumente per Hand anderweitig zuweisen, aber dies w¨ are sicherlich nicht bei jedem Cluster n¨otig - viele w¨aren bereits automatisch richtig zusammengestellt und m¨ ussten nur noch in die richtige Kategorie einsortiert werden. Es w¨ are also eine Arbeitserleichterung f¨ ur das Erstellen eines Verzeichnisses. Als letzte Nutzungsm¨ oglichkeit soll das sogenannte Scatter/Gather-Vorgehen angesprochen werden. Dies besteht letztendlich daraus, dass sich der Nutzer schrittweise seinem Ziel ann¨ ahert und bei jedem Schritt neue Cluster angelegt werden, aus denen der Nutzer einige ausw¨ahlt. Diese Auswahl wird dann wieder neu geclustert. Siehe dazu auch [HP96].

9.2.2. Ausblick An dieser Stelle m¨ ochte der Autor u ¨ber den Tellerrand hinausschauen und aktuelle Ereignisse im Online Publishing ansprechen, die nicht direkt mit Clustering Techniken verkn¨ upft sind, die im Zusammenhang mit zuk¨ unftigen Strategien f¨ ur Online-Publishing jedoch beachtet werden sollten.

Vertrieb Das Clustering selber hat in erster Linie Auswirkungen auf die Suche und kann wie angesprochen das Such-Ergebnis und -Erlebnis unabh¨angig vom gew¨ahlten Gesch¨ aftsmodell verbessern (erh¨oht somit den Wert des Angebots). An dieser Stelle soll kurz dargestellt werden, wie der Autor die M¨oglichkeiten des ISL im Zusammenhang mit dem Darbieten und Verkaufen von Informationen sieht. Die bisherigen hier betrachteten Angebote des ISL bestehen aus dem OnlineZugriff auf die Seabase Literaturdatenbank sowie aus den u ¨ber den Online-Shop vertriebenen Publikationen wie das Jahrbuch, siehe auch Abschnitt 2.1 (Seite 9). Was kann das ISL also tun, um neue Kunden zu gewinnen? Es ist noch zu ermitteln, ob und inwieweit es sinnvoll ist, die Granularit¨at des Angebots zu verkleinern und die großen Publikationen in einzelne Reviews oder auch einzelne Pakete aktueller Statistiken aufzubrechen. Diese k¨onnten dann jeweils einzeln zum kostenpflichtigen Download angeboten werden. Dies sollte geschehen, sobald das Review geschrieben wurde oder sobald die Statistiken vollst¨andig vorliegen, um einen Zeitvorteil gegen¨ uber der großen Publikation zu erwirken. Schließlich ist jede der großen Publikationen beim Erscheinen schon mindestens

9.2. FACHLICHE PERSPEKTIVE

108

einen halben Monat alt. Als Vorbild und Inspiration f¨ ur diesen Vorschlag gilt SpringerLink2 , siehe auch Abschnitt 3.3.2 (Seite 26). Der Springer-Verlag verkauft seine Publikationen dort nicht nur komplett, sondern h¨alt f¨ ur den (gut) zahlenden Kunden auch einzelne Artikel bereit. Außerdem ist der Zugriff auf die Seabase Datenbank in eine kostenlose und eine kostenpflichtige Zugangsart aufteilbar. Der kostenlose Zugang kann sich auf einige wenige Suchmittel (insbesondere keine Cluster) und auf eingeschr¨ankte Ergebnisdetails beschr¨ anken. Auf diese Weise k¨onnen Interessenten einen Einblick in das Angebot bekommen und - ¨ahnlich wie bei der ACM, beschrieben in Abschnitt 3.3.3 (Seite 27) - f¨ ur eine professionelle Nutzung der Datenbank auf eine kostenpflichtige Variante des Systems zur¨ uckgreifen. Blogging Es mag sich zudem zuk¨ unftig auszahlen, das derzeit aufkommende Publishingmodell der sogenannten Weblogs, kurz Blogs, zu beobachten und es auf seine wirtschaftlichen Potentiale hin zu u ufen. Dieses Modell ließe sich beispiels¨berpr¨ weise als Ersatz oder Erweiterung von Newslettern einsetzen. Blogs zeichnen sich durch ihre Aktualit¨ at aus und werden oft t¨aglich erweitert. Sie referenzieren sich h¨ aufig gegenseitig mit Hilfe sogenannter Permalinks“. Ein solcher Link ” verweist direkt auf einen spezifischen Artikel eines Blogs. Besonders sind hier weniger die Inhalte oder die Eigenschaft der Verlinkung selber, die Besonderheit ist die standardisierte Technik. Der Aufwand, ein solches Weblog anzubieten, ist dadurch sehr stark reduziert worden. Es ist nicht einmal mehr die Kenntnis der Beschreibungssprache HTML notwendig. Dadurch ist eine besondere Dynamik entstanden. Etwas Hintergrund u ¨ber die typischen Inhalte von Blogs zeigt [BI04] auf, w¨ ahrend der Artikel von Rebecca Blood in CACM [Blo04] eine sehr lesenswerte generelle Einf¨ uhrung in die Thematik gibt. Auch Nardi et al. [NSG04] geben eine ausf¨ uhrliche Charakterisierung des Blogging-Ph¨anomens. Sie konzentrieren sich st¨ arker darauf, welche Motivationen dahinterstehen, ein Blog zu f¨ uhren. Es gibt noch wenig Hintergr¨ unde dazu, in welcher Form Blogs ihren Platz in der wirtschaftlich motivierten Strategie von Unternehmen einnehmen k¨onnen. Aber das mag sich ¨ andern. Gut geschriebene Blogs mit interessanten Inhalten ziehen Leser an und k¨ onnen nach der Meinung des Autors dieser Arbeit auch als Werbung f¨ ur den Anbieter verstanden werden, sowie als Kommunikations2

WWW Adresse: http://www.springerlink.com

109

9.2. FACHLICHE PERSPEKTIVE

kanal des Unternehmens zu seinen Kunden dienen. Die noch unbewiesene These des Autors lautet, dass ein Blog die Aufmerksamkeit der Nutzer auf das Unternehmen und seine Dienstleistungen lenken kann. Es bleibt noch offen, ob und wie sich weitere Erl¨ ose mit diesem Modell generieren lassen. Aktuell werden die meisten Blogs von Privatpersonen ohne wirtschaftliche Hintergedanken verfasst. Andere stammen von Verlagen, die ihre Informationsangebote durch Blogs anreichern, wie zum Beispiel blog.computerwoche.de3 und hiermit derzeit Erfahrungen sammeln. Auch die Tagesschau hat inzwischen ein Blog, siehe blog.tagesschau.de4 . In diesem Umfeld erscheinen in den letzten Wochen und Monaten zus¨atzlich Audio-Blogs, auch Podcasts genannt. Diese erlauben dem Nutzer, die Beitr¨age mit einem MP3-Player wie dem iPod von Apple5 beispielweise im Zug oder im Auto nebenbei zu h¨ oren. Diese Technik erfreut sich immer gr¨oßerer Beliebtheit. Schließlich hat man hier, in Zug und Auto, oft sehr viel Zeit, die auf diese Weise leicht gef¨ ullt werden kann. Mit anderen Worten: hier haben Nutzer ein Zeitfenster, das noch nicht so vollst¨ andig mit Aktivit¨aten ausgef¨ ullt ist. Nach Ansicht des Autors sind Nutzer in dieser Zeit eher dazu bereit, aus pers¨onlichem Interesse heraus etwas anzuh¨ oren. Es gibt hierzu noch keine fundierten Forschungen, es ist ein brandneues Ph¨ anomen. Als Einstieg f¨ ur weitere Informationen sei hier Adam Curry’s Weblog auf www.curry.com6 genannt. Noch brandaktueller sind sogenannte Videologs, kurz Vlogs. Diese erweitern den Blog-Gedanken um Audio und Video. Wie m¨ogliche Modelle in diesem Bereich aussehen k¨ onnen, muss die Zukunft erst noch zeigen. Es gibt jedoch bereits eine steigende Anzahl von mobilen Ger¨aten, die in der Lage sind, Filme (z.B. Nachrichtensendungen, Schulungsunterlagen oder Dokumentationen zu speziellen Themen) in hoher Qualit¨at wiederzugeben. Dazu wird in K¨ urze wahrscheinlich auch der iPod geh¨oren, und das obwohl Apple die letzten Jahre wiederholt betont hatte, dass Video f¨ ur den iPod keine Rolle spielen w¨ urde. Die Playstation Portable7 von Sony ist bereits in der Lage, Filme abzuspielen, andere Hersteller wie Archos haben ebenfalls geeignete Produkte im Portfolio, die dann ohne den Spielcharakter der Playstation auskommen und ein professionelleres Image haben. In welcher Form sich ein Vlog in eine Firmenstrategie 3

WWW WWW 5 WWW 6 WWW 7 WWW 4

Adresse: Adresse: Adresse: Adresse: Adresse:

http://blog.computerwoche.de http://blog.tagesschau.de http://www.apple.com/de/ipod http://www.curry.com http://www.yourpsp.com

9.3. FAZIT

110

einbinden l¨ asst, werden zuk¨ unftige Forschungen zeigen m¨ ussen. Der Autor ist der Ansicht, dass das ISL diese neuartigen Technologien zwar nicht sofort bedenkenlos einsetzen, aber sie dennoch beobachten sollte. Die technologischen Voraussetzungen f¨ ur einen Podcast oder ein Blog sind gering, die n¨ otige Software ist in den meisten F¨allen kostenlos zu beziehen, der Einsatz ist nach einer kurzen Einarbeitungszeit unkompliziert.

9.3. Fazit Diese Diplomarbeit hat die technischen und fachlichen Implikationen eines Clustering Ansatzes f¨ ur ein Online Informationssystem wie das des ISL betrachtet. Dabei wurde klar, dass der Ansatz schlecht skaliert. Hoher Hauptspeicherbedarf und Laufzeit verlangen generell nach leistungsf¨ahiger Hardware. Die exponentielle Laufzeitcharakteristik des hier verwendeten Clustering Algorithmus begrenzt die sinnvolle Menge an analysierten Dokumenten auf ca. 20.000. Fachlich wurde angesprochen, dass Clustering den Suchenden eine bessere ¨ Ubersicht u ¨ber die Struktur der im Bestand befindlichen Dokumente erm¨oglicht. Zudem wurde vorgeschlagen, eine automatisch erzeugte Cluster-Struktur als Basis f¨ ur ein darauf aufbauendes manuell verwaltetes Verzeichnis zu verwenden. Zuletzt gab es noch den Hinweis, Blogs hinsichtlich der zuk¨ unftigen PublishingStrategie des ISL zu beobachten. Hier m¨ogen sich moderne und wenig aufw¨andige M¨ oglichkeiten in Bezug auf die technische Umsetzung auftun, um aktuelle Inhalte darzubieten.

Glossar API Abk¨ urzung f¨ ur Application Programming Interface. Dabei handelt es sich um eine Programmierschnittstelle, die eine Reihe von Funktionen oder Klassen umfasst, mit deren Hilfe auf Daten oder Funktionalit¨aten des jeweiligen Systems zugegriffen werden kann. Siehe auch 8 . Faust 5 Softwaresystem zur Erfassung von Literaturdaten, Hersteller ist Landwehr Software GmbH. Lastenheft Das Lastenheft umschreibt die fachlichen Anforderungen des Auftraggebers umfassend. Dabei geht es technisch jedoch nicht ins Detail. Die Norm DIN 69905 formuliert, es umfasse die Gesamtheit der Anforderungen des Auftraggebers an die Lieferungen und Leistungen eines Auftragnehmers. Kernaussage ist das Was im Gegensatz zum Wie. web-basiert Auf WWW-Techniken basierende Benutzerschnittstelle habend. Web-basierte Software wird somit in erster Linie mit dem Browser bedient. relationale Datenbank Weit verbreiteter Datenbanktypus. Dem liegt der Gedanke zugrunde, dass die zu speichernden Daten in Tabellen abgelegt und u ussel in Relation gesetzt werden. Siehe auch de.wikipedia.org/ ¨ber spezielle Schl¨ wiki/Relationale Datenbank9 MySQL Eine in kleineren Projekten wegen ihrer Einfachheit und ihrer Schnelligkeit sehr beliebte Open Source Datenbanksoftware (DBMS), die immer dann gerne zum Einsatz kommt, wenn die keine f¨ ur das Unternehmen kritischen Daten gespeichert werden. PostgreSQL Eine weitere Open Source Datenbanksoftware, die nach eigenen Angaben mehr Funktionen als MySQL hat und besser mit komplexen Da8 9

WWW Adresse: http://de.wikipedia.org/wiki/Application Programming Interface WWW Adresse: http://de.wikipedia.org/wiki/Relationale Datenbank

112 tenmodellen umgehen kann. Sie positioniert sich ausdr¨ ucklich als Datenbank f¨ ur kritische Daten wegen der besseren Implementation von Transaktionssicherheit. Workflow Ein Workflow ist ein Prozess (alternativ Gesch¨aftsvorfall oder allgemein Vorgang), der aus einzelnen Aktivit¨aten aufgebaut ist, die sich auf Teile eines Gesch¨ aftsprozesses oder andere organisatorische Vorg¨ange beziehen. Quelle: de.wikipedia.org/wiki/Workflow10 Speziell auf dieses Projekt bezogen ist ein Workflow bzw. Vorgang ein in sich geschlossenes Objekt, welches alle Aktionen, die in Bezug auf ein bestimmtes Dokument durchgef¨ uhrt werden, zusammenfassend darstellt. Content Management System Ein CMS ist eine Software zur Verwaltung von beliebigen Inhalten. H¨aufig (so auch hier) wird der Begriff inzwischen synonym f¨ ur WCMS (Web Content Management System) genutzt. Dieses konzentriert sich auf die Verwaltung der Inhalte von Websites. Siehe auch de.wikipedia.org/wiki/Cms11 Thesaurus Bei einem Thesaurus handelt es sich um eine Sammlung von Begriffen. Das Wort stammt aus dem Lateinischen und bedeutet dort soviel wie Schatz. Anders als ein W¨orterbuch beschreibt ein Thesaurus auch die Beziehung der W¨ orter untereinander. Der Thesaurus des ISL zum Beispiel erlaubt hierarchische Beziehungen und erlaubt mehrere Oberbegriffe. Inbox Mit Inbox ist in Bezug auf die Email-Kommunikation der Posteingang gemeint. Allgemein ist die Inbox ein Container, in dem alle neuen Nachrichten gelistet werden. Jeder Nutzer des Systems bekommt Zugriff auf eine solche Inbox, so dass er oder sie auch ohne Email am System teilnehmen kann. Token Als Token bezeichnet man im Zusammenhang mit Parsern zusammengeh¨ orige Zeichenketten, die als solche f¨ ur die Syntax der analysierten Sprache eine Bedeutung haben. Lexer Lexer ist eine Kurzform des Begiffs Lexikalischer Scanner. Dieser wird h¨ aufig als Vorstufe eines Parsers verwendet. Der Scanner nutzt einfache 10 11

WWW Adresse: http://de.wikipedia.org/wiki/Workflow#Workflow WWW Adresse: http://de.wikipedia.org/wiki/Cms

113 Zeichensetzungsregeln, um einen Text in Token einzuteilen. Welche Token extrahiert werden oder was u ¨berhaupt als Token gilt, h¨angt von der Syntax der Eingabe ab, die daher vorher definiert worden sein muss. Use-Case Der Begriff Use-Case“ ist oftmals gleichzusetzen mit dem im deut” schen Sprachgebrauch eher gel¨aufigen Begriff Gesch¨aftsprozess“ oder auch ” Gesch¨ aftsvorfall“. Der Begriff ist in Zusammenhang mit der formellen vi” suellen Darstellungssprache UML aufgekommen.

114

Literaturverzeichnis [ABKS99] Ankerst, Mihael ; Breunig, Markus M. ; Kriegel, Hans-Peter ; Sander, J¨ org: OPTICS: ordering points to identify the clustering structure. In: SIGMOD ’99: Proceedings of the 1999 ACM SIGMOD international conference on Management of data. New York, NY, USA : ACM Press, 1999. – ISBN 1–58113–084–8, S. 49–60 [Bal98]

Balzert, Helmut: Lehrbuch der Softwaretechnik - Software-Management, SoftwareQualit¨ atssicherung, Unternehmensmodellierung. Heidelberg, Berlin : Spektrum Akademischer Verlag GmbH, 1998

[Bal00]

Balzert, Helmut: Lehrbuch der Softwaretechnik - Software-Entwicklung. Heidelberg, Berlin : Spektrum Akademischer Verlag GmbH, 2000

[Bat89]

Bates, Marcia J.: The Design of Browsing and Berrypicking Techniques for the Online Search Interface. In: Online Review 13 (1989), October, Nr. 5, 407–424. http://www.gseis.ucla.edu/faculty/bates/berrypicking. html

[BFR99]

Bradley, Paul S. ; Fayyad, Usama M. ; Reina, Cory A.: Scaling EM (Expectation-Maximization) Clustering to Large Databases / Microsoft Research. Redmond, WA : Microsoft Corporation, October 1999 (Technical Report MSR–TR–98–35). – Forschungsbericht. Der

vollst¨ andige

Report

kann

mit

Hilfe

folgender

Literaturverzeichnis URL

116 als

PDF–Dokument

heruntergeladen

werden:

http://citeseer.ist.psu.edu/bradley99scaling.html [BI04]

Bar-Ilan, Judit: An outsider’s view on ”topic-oriented blogging”. In: WWW Alt. ’04: Proceedings of the 13th international World Wide Web conference on Alternate track papers & posters. New York, NY, USA : ACM Press, 2004. – ISBN 1–58113–912–8, S. 28–34

[BKKS01] Breunig, Markus M. ; Kriegel, Hans-Peter ; Kr¨ oger, Peer ; Sander, J¨ org: Data bubbles: quality preserving performance boosting for hierarchical clustering. In: SIGMOD Record (ACM Special Interest Group on Management of Data) 30 (2001), Nr. 2, 79–90. http://citeseer.ist.psu.edu/breunig01data.html [Blo04]

Blood, Rebecca: How blogging software reshapes the online community. In: Commun. ACM 47 (2004), Nr. 12, S. 53–55. http://dx.doi.org/10.1145/1035134.1035165. – DOI 10.1145/1035134.1035165. – ISSN 0001–0782

[BM98]

Baker, L. D. ; McCallum, Andrew K.: Distributional clustering of words for text classification. In: Croft, W. B. (Hrsg.) ; Moffat, Alistair (Hrsg.) ; Rijsbergen, Cornelis J. (Hrsg.) ; Wilkinson, Ross (Hrsg.) ; Zobel, Justin (Hrsg.): Proceedings of SIGIR-98, 21st ACM International Conference on Research and Development in Information Retrieval. ACM Press, New York, US, 96–103

[CMK66]

Cleverdon, Cyril W. ; Mills, Jack ; Keen, Michael: Factors determining the performance of indexing systems. Bedford, England : College of Aeronautics, Cranfield University, 1966 (Aslib Cranfield research project Volume 1–Design, Part 1–Text). – Forschungsbericht. Der

vollst¨ andige

Report

kann

mit

Hilfe

folgender

117

Literaturverzeichnis URL

als

PDF–Dokument

heruntergeladen

werden:

http://hdl.handle.net/1826/861 [DFL+ 88] Dumais, S. T. ; Furnas, G. W. ; Landauer, T. K. ; Deerwester, S. ; Harshman, R.: Using latent semantic analysis to improve access to textual information. In: CHI ’88: Proceedings of the SIGCHI conference on Human factors in computing systems, ACM Press, 1988. – ISBN 0–201–14237–6, S. 281–285 [DGL89]

Duff, I. S. ; Grimes, Roger G. ; Lewis, John G.: Sparse matrix test problems. In: ACM Trans. Math. Softw. 15 (1989), Nr. 1, S. 1–14. http://dx.doi.org/10.1145/62038.62043. – DOI 10.1145/62038.62043. – ISSN 0098–3500

[DP88]

D¨ orfler, Willibald ; Peschek, Werner: Einf¨ uhrung in die Mathematik f¨ ur Informatiker. M¨ unchen, Wien : Carl Hanser Verlag, 1988

[FPSS96] Fayyad, Usama M. ; Piatetsky-Shapiro, Gregory ; Smyth, Padhraic: From Data Mining to Knowledge Discovery in Databases. In: AI Magazine 17 (1996), Nr. 3, S. 37–54 [GHJV96] Gamma, Erich ; Helm, Richard ; Johnson, Ralph ; Vlissides, John: Entwurfsmuster : Elemente wiederverwendbarer objektorientierter Software. Addison-Wesley-Longman, 1996. – ISBN 3893199500 [HP96]

Hearst, Marti A. ; Pedersen, Jan O.: Reexamining the cluster hypothesis: scatter/gather on retrieval results. In: SIGIR ’96: Proceedings of the 19th annual international ACM SIGIR conference on Research and development in information retrieval. New York, NY, USA : ACM Press, 1996. –

Literaturverzeichnis

118

ISBN 0–89791–792–8, S. 76–84 [ISL01]

Vernetzungspotenziale innerhalb der maritimen Wertsch¨ opfungsketten am Schiffbau-, Seeschifffahrts- und Hafenstandort Deutschland. Version: November 2001. http://www.bmwa.bund.de/Redaktion/Inhalte/Pdf/Homepage 2Fdownload 2Fbranchenfocus 2FVernetzungspotenziale. pdf,property=pdf.pdf. – Endbericht

[JH04]

Johnson, Rod ; Hoeller, Juergen: Expert One-on-One J2EE Development without EJB. John Wiley & Sons, 2004. – ISBN 0764558315

[KL51]

Kullback, S. ; Leibler, R.A.: On Information and Sufficiency. In: The Annals of Mathematical Statistics 22 (1951), March, Nr. 1, S. 79–86

[Lew96]

Lewis, David D.: Reuters-21578, Distribution 1.0. http://www.daviddlewis.com/resources/testcollections/ reuters21578. Version: 1996. – Copyright resides with Reuters Ltd.

[LGXZ02] Liu, Xin ; Gong, Yihong ; Xu, Wei ; Zhu, Shenghuo: Document clustering with cluster refinement and model selection capabilities. In: SIGIR ’02: Proceedings of the 25th annual international ACM SIGIR conference on Research and development in information retrieval, ACM Press, 2002. – ISBN 1–58113–561–0, S. 191–198 [Luh58]

Luhn, H. P.: The automatic creation of literature abstracts. In: IBM Journal of Research and Development 2 (1958), Nr. 2, S. 159–165. –

119

Literaturverzeichnis ISSN 0018–8646

[Mil95]

Miller, George A.: WordNet: a lexical database for English. In: Commun. ACM 38 (1995), Nr. 11, S. 39–41. http://dx.doi.org/10.1145/219717.219748. – DOI 10.1145/219717.219748. – ISSN 0001–0782

[MM90]

Manber, Udi ; Myers, Gene: Suffix arrays: a new method for on-line string searches. In: SODA ’90: Proceedings of the first annual ACM-SIAM symposium on Discrete algorithms. Philadelphia, PA, USA : Society for Industrial and Applied Mathematics, 1990. – ISBN 0–89871–251–3, S. 319–327

[NSG04]

Nardi, Bonnie A. ; Schiano, Diane J. ; Gumbrecht, Michelle: Blogging as social activity, or, would you let 900 million people read your diary? In: CSCW ’04: Proceedings of the 2004 ACM conference on Computer supported cooperative work. New York, NY, USA : ACM Press, 2004. – ISBN 1–58113–810–5, S. 222–231

[Osi03]

´ski, Stanislaw: Osin An Algorithm For Clustering Of Web Search Results, Pozna´ n University of Technology, Diplomarbeit, June 2003

[RM02]

Rosenfeld, Louis ; Morville, Peter ; LeJeune, Lorrie (Hrsg.): Information Architecture for the World Wide Web. 2. O’Reilly Media Inc., 2002

[RN95]

Russell, Stuart J. ; Norvig, Peter: Artificial Intelligence: A Modern Approach. Englewood Cliffs, NJ : Prentice-Hall, 1995

[Sch02]

Schienmann, Bruno: Kontinuierliches Anforderungsmanagement - Prozesse, Techniken, Werkzeuge.

Literaturverzeichnis

120

M¨ unchen/Deutschland : Addison Wesley Verlag, ein Imprint der Pearson Education Deutschland GmbH, 2002 [Sha48]

Shannon, Claude E.: A Mathematical Theory of Communication. In: The Bell System Technical Journal 27 (1948), July, October, S. 379–423, 623–656

[Shi05]

Shirky, Clay: Ontology is Overrated: Categories, Links, and Tags. http://shirky.com/writings/ontology overrated.html. Version: 2005. – gesehen am 10. August 2005

[SJ72]

Sparck Jones, Karen: A statistical interpretation of term specificity and its application in retrieval. In: Journal of Documentation 28 (1972), Nr. 1, S. 11–21. – ISSN 0022 0418

[TAAK04] Teevan, Jaime ; Alvarado, Christine ; Ackerman, Mark S. ; Karger, David R.: The perfect search engine is not enough: a study of orienteering behavior in directed search. In: CHI ’04: Proceedings of the 2004 conference on Human factors in computing systems, ACM Press. – ISBN 1581137028, 415–422 [VR79]

Van Rijsbergen, C. J.: Information Retrieval, 2nd edition. Version: 1979. http://www.dcs.gla.ac.uk/Keith/Preface.html. – Online Ressource, Abruf: 2005-07-07

[WRR03] Kapitel Singular value decomposition and principal component analysis. In: Wall, Michael E. ; Rechtsteiner, Andreas ; Rocha, Luis M.: A Practical Approach to Microarray Data Analysis. Norwell, MA : Kluwer, 2003, S. 99–109 [XLG03]

Xu, Wei ; Liu, Xin ; Gong, Yihong:

121

Literaturverzeichnis Document clustering based on non-negative matrix factorization. In: SIGIR ’03: Proceedings of the 26th annual international ACM SIGIR conference on Research and development in informaion retrieval. New York, NY, USA : ACM Press, 2003. – ISBN 1–58113–646–3, S. 267–273

[YP97]

Yang, Yiming ; Pedersen, Jan O.: A comparative study on feature selection in text categorization. In: Fisher, Douglas H. (Hrsg.): Proceedings of ICML-97, 14th International Conference on Machine Learning. Nashville, US : Morgan Kaufmann Publishers, San Francisco, US, 1997, S. 412–420

[ZD04]

Zhang, Dell ; Dong, Yisheng: Semantic, Hierarchical, Online Clustering of Web Search Results. In: Yu, Jeffrey X. (Hrsg.) ; Lin, Xuemin (Hrsg.) ; Lu, Hongjun (Hrsg.) ; Zhang, Yanchun (Hrsg.): Advanced Web Technologies and Applications 6th Asia-Pacific Web Conference, APWeb 2004 Bd. 3007. Springer-Verlag GmbH. – ISBN 3–540–21371–6, 69–78

Literaturverzeichnis

122

Index Abonnement, 26

Clusty, 29, 44

Abstandsmaß, 63

Computerwoche, 109

Algorithmus, 47 Clustering, allg., 66 LSI, 63 Analyse, 49 Anbieter, 3 Angebot interessantes, 11 Anschaltzeit, 17, 19 Ansicht, 44 Attribut, 47 Auktion von Schiffen, 23

Data Bubbles, 104 Data Mining, 47, 55, 56 Dateiformat, 35 Datenbank, 15–17, 19, 47 Literatur-, 9 Datenmenge, 54, 101 Datenmodell, 37 Design, 43 Deskriptor, 36, 37 Dienstleistung, 3 Dimensionalit¨at, 58, 59 Distributional Clustering, 64

Benachrichtigungsdienst, 11

DMKN, 20

Benutzerschnittstelle, 43

Dokumentausgabegeb¨ uhr, 17, 19

Bewertungsfunktion, 54

Dokumentenarchiv, 21

Blog, 108

Download, 107

boolsche Logik, 45

Drucken, 44

Boolscher Operator, 21

Effektivit¨at (von IR), 53

Browser, 45

Entropie, 60

Cluster, 47, 106 Clustering, 43, 47, 51, 64, 66 hierarchisch, 104 Konzept, 43 Laufzeit, 101 Qualit¨ at, 102

Erfassung, 17, 27, 37 Ergebnisliste, 44, 106 Erwartungswert, 61, 66 Evaluation, 55 Export, 37, 46 Faust, 35, 37, 47

Index Feature, 46, 49, 57, 58, 61, 66

124 Journal, 26, 27

Feld, 47 Fireball, 52 FIZ Karlsruhe, 19 Forschungsergebnisse, 23 Forum, 20 Framework, 30 Frequenz, 61

K-Means, 66 K¨ unstliche Intelligenz (KI), 56 Kapazit¨at, 60 Kategorisierung, 30 Klassifikation, 29, 57, 59, 60, 62, 66 Knowledge Discovery from Databases, 51

Gaußsche Verteilung, 66

Kommunikationskanal, 109

Gaussian Mixture Model, 67

Konferenzprotokoll, 27

Gebraucht-Schiffe, 23

Konkurrenz, 15

Gesch¨ aftsmodell, 107

Kontext, 52, 58

Gewichtung, 59

Korrektheit, 60

Google, 45, 52

Korrelation, 61

Granularit¨ at des Angebots, 107

Kriterien, 15 Kullback-Leibler, 61

Hierarchie, 43 Homepage, 26 HTML, 108 Index, 49 Individualisierung, 10 Information Gain, 59 Information Retrieval, 51, 60 Informationsangebote, 109 Informationsbeschaffung, 9 Informationsgehalt, 59

Kullback-Leibler-Divergenz, 61 Kundenprofil, 11 Kurzreferat, 37 Laufzeitcharakteristik, 47 Lernphase, 62 Linearkombination, 63 LINGO, 30 linguistisch (Texte erfassen), 52 Literaturhinweis, 3 LSI, 30, 104

Informationsgewinn, 59 Informationssystem, 3

M¨oglichkeiten, 106

Integration, 27

Matrix, 31, 63

Interesse (pers¨ onlich), 109

orthogonal, 63

Interpretation, 47, 56

Mitgliedschaft, 27

Inverse Document Frequency, 59

Model-based Clustering, 66

iPod von Apple, 109

MP3-Player, 109

ISL, 11, 30

Mutual Information, 61

Jahrbuch, 107

Nachfrage, 11

125

Index

Netacademy, 23

Schlagwort, 3, 16, 17, 22, 23

Netzwerk-Lizenz, 27

Schwellenwert, 59

Netzwerkeffekt, 15

Seabase, 107

Newsletter, 108

Selektion, 46, 55

Normalverteilung, 66

Shannon, 60

Nutzwert, 16

Signal-to-Noise-Ratio, 60 Singular Value Decomposition (SVD),

Online Strategien, 3 Online-Publishing, 107 Online-Shop, 107 OPTICS, 104 Overture, 52

63, 103 Skalierbarkeit, 104 Sony, 109 Stemming, 58 Stoppwort, 58, 103

Pauschalpreis, 17

Strategie, 3, 10, 109

Permalink, 108

Studie, 9

Personalisierung, 11, 43, 44

Suchanfrage, 37

Playstation Portable, 109

Suche, 17, 63

Portal, 26, 27, 29

Suchfunktion, 21, 22, 26

Potential, 108

Suchmaschine, 30, 52

Potentiale, 106

Suchmechanismus, 27

Precision, 53 Preisliste, 19 Preissystem, 19 Preprocessing, 46, 55 Profil, 44 Prototyp, 43 Prozess, 55 Publikation, 23, 26, 27 Qualit¨ at, 22, 47 Rauschen, 60 Recall, 53 Recherche, 3, 11, 36 Repr¨ asentation, 52, 56, 57 Reuters, 101

Tagesschau, 109 Tellerrand, 107 Textkorpus, 101 TF-IDF, 59 Thesaurus, 17, 21–23, 37, 47, 57 Threshold, 66 Trainingsmenge, 62 Transformation, 46, 56 Varianz, 66 Vektor, 47, 58, 59 Vektorraum, 62 Verkaufen, 107 Verzeichnis, 22, 106 Videolog, 109 virtuelle Gemeinschaft, 15

Scatter/Gather, 107

Viv´ısimo, 29

Index Vlog, 109 Volltext, 11, 21, 27 Wahrscheinlichkeit, 53, 61 Wahrscheinlichkeitsdichte, 66 Wahrscheinlichkeitsverteilung, 61, 62 Weblog, 108 Werbe-M¨ oglichkeit, 22 Werbung, 16 Wertsch¨ opfung, 15 Wissen, 20 WordNet, 105 Wortstamm, 58 Zeitfenster, 109 Zugangsart, 108

126