HIP

Werbung
Intelligente Informationssuche
und Organisation von handwerksrelevanten
Webseiten für das
Handwerkerinformationsportal
(HIP)
Diplomarbeit von Thomas Michels
angefertigt in der Arbeitsgruppe von Prof. Dr. Gerhard Weikum
am Lehrstuhl von Herrn Prof. Dr. Gerhard Weikum
innerhalb der Fachrichtung 6.2, Informatik, Universität des
Saarlandes
09.03.2005
Inhaltsverzeichnis:
1. Einführung und Themenbeschreibung
3
1.1 Motivation ........................................................................................... 3
1.2 Aufgabenstellung ................................................................................. 7
1.3 Problemspezifische Schwierigkeiten ..................................................... 7
1.4 Aufgabenbereiche der Diplomarbeit ...................................................... 8
2 Vorüberlegungen
9
2.1 Analyse bestehender Suchmaschinen................................................... 9
2.2 Analyse manuell gepflegter Systeme .................................................. 11
2.3 Welche Vorteile kann das „HIP“ bieten ................................................ 12
2.4 Gibt es eine „freie Software“, die man als Basis nutzen kann. ............... 13
3. Das Framework
15
3.1 Die Systemarchitektur........................................................................ 15
3.2 Bingo – Bookmark Induced Gathering of Information............................ 17
3.2.1 Die Komponenten des Bingo-Systems.......................................... 18
3.2.2 Vorgehen des fokussierten Crawlers............................................. 21
3.2.3 Vorgehen des Document Analyzer ............................................... 22
3.2.4. Benutzte Methoden der Feature Selection.................................... 23
3.2.5. Support Vector Machines Klassifizierer ........................................ 28
3.2.6. Benutzte Ranking Methoden ....................................................... 31
3.3 Der Webbereich ................................................................................ 34
3.3.1 Die Suchmaschine ...................................................................... 34
3.3.2 Der Administrationsbereich.......................................................... 39
4. Implementierung
44
4.1 Technische Daten.............................................................................. 44
4.2 Die Initialisierungs-, Optimierungsphase.............................................. 45
4.3 Die Datenbank................................................................................... 48
4.3.1 ERM der wichtigsten Relationen: .................................................. 49
5. Experimente
50
5.1 Websuche des HIP-Crawlers .............................................................. 50
5.2 Micro-, Macro-Scores des HIP ............................................................ 51
5.3 Gütevergleich google.de – HIP anhand ausgewählter Queries .............. 53
5.3.1 Key-Words: erhalt meister............................................................ 53
5.3.2 Key-Words: erhalt meister handwerk ............................................ 55
5.3.3 Key-Words: beruf müller .............................................................. 56
5.3.4 Zusammenfassung ...................................................................... 58
5.3 Lastprofile der HIP-Suchmaschine ...................................................... 58
6. Weitere aufgetretene Schwierigkeiten
60
6.1 Timeouts........................................................................................... 60
6.2 Garbage-Collection ............................................................................ 60
6.3 Dateninkonsistenzen durch neue Crawls ............................................. 61
7. Zusammenfassung und Ausblick
62
8. Anhang A (Pflichtenheft - Funktionalitäten von HIP)
64
9. Anhang B (Spezifizierung der Funktionen der Diplomarbeit)
72
10. Anhang C (API-Dokumentation)
75
11. Anhang D – (Das Datenbankschema)
101
12. Literaturverzeichnis
105
Seite 2 von 105
1. Einführung und Themenbeschreibung
1.1 Motivation
Das Internet ist ein weltweites Computer-Netzwerk in dem Daten
unter a nderem in Form von Dokumenten zur Verfügung gestellt
werden. Eine Besonderheit der Internetdokumente sind so
genannte Hyperlinks, die den Nutzer zu weiteren Dokumenten
leiten. Man kann das Internet daher als einen großen Graphen
bzw. ein Netzwerk von Dokumenten und Daten ansehen. Die
Diplomarbeit beschränkt sich auf die Betrachtung des Teils des
Internets, das sich aus dem Informationsangebot in Form von
Dokumenten darstellt.
Durch das exponentiell wachsende Informationsangebot in Form
von Dokumenten wird das Auffinden von gewünschten
Informationen zusehends schwieriger und wird zum Hauptproblem
der Internetnutzung. Dies stellt insbesondere für einen ungeübten
Internetnutzer eine besondere Herausforderung dar, denn es gilt
bei der Suche mehrere Probleme zu bewältigen. Das erste
Problem besteht darin, genau zu definieren, wonach gesucht wird,
denn oftmals hat der Benutzer nur eine wage Vorstellung von den
gewünschten Inhalten.
Nachdem er diese intellektuelle Leistung erbracht hat, steht er vor
dem technischen Problem, wie er die gewünschten Informationen
in der Flut der Internetdokumente ausfindig machen kann. Oftmals
kennt er nur wenige interessante Internetadressen, die nur einen
kleine n Ausschnitt der verfügbaren Informationen repräsentieren.
Um weitere Dokumente aufzufinden bietet das Internet ihm
mehrere Möglichkeiten. Einerseits kann er diverse
Suchmaschinen mit unterschiedlich hoher „Intelligenz“ benutzen
oder aber auch so gena nnte „Kataloge“ durchforsten, die manuell
erstellt und gepflegt werden. Dabei bilden die Suchmaschi nen
einen umfassenderen Ausschnitt aus dem Internet ab, als die
Kataloge. Die Kataloge hingegen bieten durch die manuelle
Erstellung der Themenhierarchie (auch Ontologie genannt) und
die manuelle Selektion der Dokumente eines Themas eine höhere
Güte der Inhalte der Dokumente bezüglich des gesuchten
Themas. Die manuelle Pflege verlangt einen hohen personellen
Aufwand und kann durch den zeitlichen Pflegeaufwand keine hohe
Aktualität der eingetragenen Dokumente garantieren.
Seite 3 von 105
Moderne Suchmaschinen wie google.de versuchen diese beiden
Strategien durch ein automatisiertes Durchforsten des Internets
nach Dokumenten (Crawlen) und eine automatische Klassifikation
der Ergebnisse in eine Ontologie zu vereinen. Dadurch stellen sie
einen Zusammenhang von Themen und Dokumenten her und
vermögen die Qualität der Suchergebnisse maßgeblich zu
verbessern.
Die Ausgabe der Ergebnisse einer Suche erfolgt bei den
verschiedenen Suchmaschinen nach suchmaschinenspezifischen
Kriterien in so genannten Ranglisten. Die meisten Suchmaschinen
verwenden für die Erstellung der Ranglisten der gefundenen
Treffer Autoritätswerte, die durch Linkanalyse-Verfahren auf
repräsentativen Web-Ausschnitten erstellt werden. Bei
Massenanfragen hat sich diese Methode sehr bewährt, bei der
Suche spezifischer Informationen hingegen werden nur schlechte
Ranglisten erzeugt, da das Ranking auch Bereiche verwendet, die
mit dem gesuchten Thema in keinem direkten Zusammenhang
stehen.
Gegenstand dieser Diplomarbeit ist der Aufbau des Pilotprojekt
„HIP - Handwerker Informations Portal“. In diesem Projekt gilt es
automatisiert Dokumente zu handwerksspezifischen Themen zu
finden und diese automatisch in eine Ontologie einzuordnen. Aus
technischer Sicht wird ein fokusiertes Crawlen nach
handwerksrelevanten Informationen und ein Klassifizierer mit
automatischer Erweiterung der Trainingsbasis kombiniert. Darüber
hinaus bietet die integrierte Suchmaschine die Ausgabe der
Ergebnisse der professionellen Suche nach diversen
Rankingmöglichkeiten. Durch die Einschränkung der
Dokumentenbasis auf Dokumente mit „handwerksrelevante n
Informationen“ ergibt sich ein besseres Ranking bei der Suche
nach einem handwerksspezifischen Thema, da sich keine oder
nur wenige fachfremde Dokumente in der Datenbank befinden.
Des Weiteren crawlen gängige Suchmaschinen weder Portale
noch Webseiten, die mit Hilfe von Datenbanken generiert werden
und können meist nicht in Passwort geschützte Bereiche
vordringen. Das führt dazu, dass oftmals wirklich informative
Seiten nicht gefunden und daher auch nicht aufgenommen
werden.
Seite 4 von 105
Im Folgenden betrachten wir diese Problematik am konkrete n
Beispiel eines Jugendlichen, der eine Ausbildung im Handwerk
anstrebt. Der Jugendliche wird sich zuerst über die Berufe des
Handwerks allgemein informieren wollen, um sich einen Überblick
über die in Frage kommenden Berufe zu verschaffen. In Kürze
werden sich diese Berufsbezeichnungen ändern. In Folge dessen
beinhalten die großen Suchmaschinen eine Menge alter
Dokumente über die „Berufe im Handwerk“. Weil es eine große
Anzahl an Webseiten gibt, die auf diese alten Seiten verweisen,
werden diese durch das Autoritätsranking der Suchmaschinen
ganz oben in der Trefferliste stehen. (Das Autoritätsranking geht
davon aus, dass Webseiten auf die viele Links verweisen auch
potentiell gut sind). Dies sind aber nicht die Dokumente, die der
Jugendliche gerade benötigt. Die aktuellen Seiten, auf die zuerst
noch wenige Links verweisen werden, sind die Dokumente, die
der Jugendliche sucht.
Bei den konventionelle n Suchmaschinen ist es nicht möglich, die
Ergebnismenge nach der Aktualität zu sortieren. Das „HIP“ bietet
die Möglichkeit, die Daten sowohl nach der Aktualität a ls auch
nach dem Autoritätsranking zu sortieren. Zur Flexibilisierung
werden auch weitere Sortierkriterien hinzugefügt, wie z.B. die
Klassifikationsgüte, die Relevanz bezüglich der eingegebenen
Suchbegriffe oder aber auch die Sortierung nach den
Bewertungen, die von Handwerkern für diese Seiten abgegeben
werden.
Haben sich z.B. schon bereits einige Jugendliche durch die
gefundenen Dokumente gearbeitet und diese positiv oder negativ
bewertet, so ist es für den interessierten Jugendlichen sicherlich
von Vorteil, sich zuerst die Dokumente anzusehen, die von
anderen Interessenten als besonders positiv bewertet wurden.
Dies wird von den wenigsten Suchmaschinen angeboten. Auch
wenn dies von z.B. google.de angeboten wird, so ist dies keine
relevante Bewertung aus der Sicht des Handwerkers, da dort
handwerksrelevante Dokumente auch von vielen
„Nichthandwerkern“ bewertet werden. Dies kommt dadurch zu
Stande, dass diese Dokumente auch als Treffer bei
„nichthandwerksrelevanten Suchen“ vorkommen können. Dadurch
erhalten diese Dokumente möglicherweise viele
Negativbewertungen, weil sie nicht der Klasse der gesuchten
Dokumente entsprechen.
Seite 5 von 105
Ein besonderes Problem haben die konventionellen
Suchmaschinen, wenn Begriffsdoppeldeutigkeiten vorliegen.
Interessiert sich der Jugendliche z.B. für die Lehre als Müller, so
erhält er bei google.de mit den Suchbegriffen „lehre müller“ weit
über 120.000 Ergebnisse. Aber unter den ersten Seiten ist kein
brauchbares Dokument vorhanden. Dies liegt unter anderem
daran, dass Müller auch ein gängiger Name ist und somit BegriffsDoppeldeutigkeiten bestehen.
Der Klassifizierer des „HIP“ hingegen kann anhand seiner
Trainingsdokumente schon vorab entscheiden, ob die gefundenen
Dokumente für die Datenbank geeignet sind oder ausgeschlossen
werden sollen. Dies kann z.B. über die relative Termhäufigkeit
erfolgen. Dabei werden die im Bezug zur Gesamtmenge der
Terme relativ häufigsten Terme eines Trainingsdokumentes zur
Klassifizierung eines anderen Dokumentes benutzt. Wenn wir also
ein Dokument zur Ausbildung zum Müller in der Trainingsbasis
haben, so werden dort auch Begriffe wie Handwerk, A usbildung
oder Meister vorkommen. Diese Begriffe kommen aber in den
meisten Dokumenten der Ergebnismenge der google-Suche nicht
vor. Dadurch werden diese von google.de gefunden Dokumente
von unserem Klassifizierer negativ bewertet. Das „HIP “ schließt
also schon beim Klassifizieren solche Dokumente aus der
Datenbank aus und fügt sie der Negativtrainingsbasis zu, anhand
deren auch andere Dokumente herausgefiltert werden können.
Hinzu kommt der Trend zur Kommerzialisierung der großen freien
Suchmaschinen. Die angeblich objektiv gefundenen Trefferlisten
werden verändert. Nicht die besten Dokumente stehen an erster
Stelle, sondern die best bezahlteste n Ergebnisse stehen in der
Trefferliste ganz oben. Dadurch erhält man z.B. bei google.de
nach der Eingabe „müller handwerk“ an erster Stelle einen Link zu
www.neckermann.de mit der Überschrift „Handwerk - Alles für
Haus und Garten bei Neckermann!!!“. Dies wird für die freien
Suchmaschinen auch immer mehr zur Eigenfinanzierung genutzt
werden und die Ergebnisgüte auf längere Sicht hin verschlechtern.
Aus all diesen Gründen ist es für die Zukunft wichtig
Suchmaschinen zu erzeugen, die dem User die kontextbezogenen
wichtigen Seiten aus der stetig wachsenden Dokumentenflut vorab
herausfiltern, und die Ergebnisgüte der gestellten Suchanfragen
optimieren. Darüber hinaus müssen zukünftige Suchmaschinen
intelligente Mechanismen zur Bearbeitung der gefundenen
Treffermenge anbieten. So sollte der Nutzer die gefundenen
Seite 6 von 105
Treffer nach verschiedenen Kriterien, wie z.B. Aktualität, Güte des
Dokumentes oder Güte der Klassifikation zu einem Thema
umsortieren können.
1.2 Aufgabenstellung
Es ist ein Internet-Portal namens „HIP“ (Handwerker
Informationsportal) zu erstellen. Dieses Portal soll ausgehend von
einer vorgegebenen Ontologie mit wenigen guten Referenzseiten
für jedes Thema selbstständig weitere Seiten im Internet suchen
und Themen bezogen klassifizieren. Darüber hinaus soll eine
Suchmaschine integriert werden, die eine einfache und
professionelle Suche anbietet. Die professionelle Suche soll dabei
verschiedene logische Kombinationsmöglichkeiten der
Suchbegriffe und diverse Rankingmöglichkeiten zur Ordnung der
gefundenen Ergebnisse zur Verfügung stellen. Die Pflege des
Systems soll über Webinterfaces erfolgen.
1.3 Problemspezifische Schwierigkeiten
Folgende Probleme bei der Erstellung des „HIP“ waren bereits
vorab zu erkennen:
•
•
•
•
•
Es werden in dem Portal Dokumente der unterschiedlichsten
Kategorien aufgenommen. Dadurch wird es bei einem
automatischen Crawl auch vorkommen, dass fachfremde
Seiten in die Dokumentenbasis aufgenommen werden und sich
die Güte der Dokumentenbasis dadurch verringert.
Die hohe Anzahl an Kategorien erschwert einem einzelnen
Portaladministrator die manuelle Pflege der Ontologie.
Zu jedem Thema der Ontologie müssen ausreichend viele
„gute“ Dokumente als Trainingsdokumente gefunden werden,
um eine hohe Güte der Dokumentenbasis zu garantieren.
Viele inhaltlich wertvolle Dokumente befinden sich in
abgeschlossenen oder Kennwort geschützten Bereichen und
können nur schwer gecrawlt werden. Um diese dennoch zu
indexieren müssen spezielle Wrapper geschrieben werden.
Die manuell angelegte Ontologie muss den unterschiedlichsten
Usergruppen mit den unterschiedlichsten Bedürfnissen
gleichermaßen genügen. (Meister, Lehrlinge, …)
Seite 7 von 105
1.4 Aufgabenbereiche der Diplomarbeit
Die Diplomarbeit umfasste folgende Komplexe:
•
Bedarfsanalyse/Pflichtenhefterstellung
Da die Angaben des Projektauftrages nur sehr allgemein
waren, musste zunächst eine genaue Bedarfsanalyse
durchgeführt werden.
Dazu mussten folgende Aspekte genauer analysiert werden:
1. Was sind handwerksrele vante Informationen und gibt es
bereits bekannte Referenzseiten dazu?
2. Was ist eine einfache Suche?
3. Was ist eine eingeschränkte Suche?
4. Was ist eine professionelle Suche?
5. Welche Klassen legen wir dem System zu Grunde?
6. Was soll im Administrator-Bereich eingestellt werden
können?
7. Was soll der User an weitergehenden Möglichkeiten geboten
bekommen?
8. Kann ein Administrator alle Möglichkeiten bedienen, oder
soll es Administratoren für bestimmte Bereiche geben?
•
Erstellen der Datenbank (Anlegen des Datenbankschemas)
Während der Implementierungsphase musste eine Datenbank
angelegt und mehrmals gemäß auftretender Anforderungen
modifiziert werden.
•
•
•
•
Bereitstellen der Schnittstelle zwischen Crawler und GUI
Bereitstellen der Schnittstelle zwischen Classifier und GUI
Bereitstellen der Schnittstelle zwischen Datenbank und GUI
Erstellung einer manuellen Ontologie mit entsprechenden
Referenzdokumenten als Trainingsbasis
Der Schwerpunkt der Diplomarbeit lag auf der Erstellung der API
zwischen der Datenbank, der Suchmaschine und den
Portalbereichen.
Seite 8 von 105
2 Vorüberlegungen
2.1 Analyse bestehender Suchmaschinen
Um eine Beurteilung zu treffen, wurden die drei großen
Suchmaschinen altavista .de, lycos.de und google.de verglichen
und einem „Gütetest“ bezüglich der Ergebnisse einer Anfrage aus
dem Bereich Handwerk unterzogen.
Als Güte -Maß bei der Untersuchung diverser Information-Retrieval
Systeme haben sich in der Vergangenheit die Recall- und
Precision- Bewertungsverfahren [1] bewährt.
Recall = Anzahl der relevanten Dokumente im Ergebnis
Gesamtzahl der relevanten Dokumente
(2.1)
Precision = Anzahl der relevanten Dokumente im Ergebnis
Gesamtzahl der Dokumente im Ergebnis
(2.2)
Da die Anzahl der relevanten Dokumente einer Suchanfrage in
einem System nicht bekannt war, konnte das Recall-Maß nicht
eingesetzt werden. Daher wurde das Precision-Maß in einer
abgewandelten Form benutzt und nach den zehn experimentellen
Anfragen ein Mirco- und Macro-Score wie folgt berechnet.
Micro-Score:
1 * S Anzahl relevanter Dokumente der ersten Ergebnisseite
m
Anzahl der Dokumente der ersten Ergebnisseite
(2.3)
Der Micro-Score gibt an, wie hoch das Verhältnisses der
relevanten Dokumente zu den irrerelevanten Dokumenten im
durchschnitt ist. Es ist also ein Maß dafür, wie viele relevante
Dokumente sich durchschnittlich auf der ersten Ergebnisseite
befinden.
Macro-Score:
1
Ausgabeanzahl
* S Anzahl relevanter Dokumente der ersten Ergebnisseite
S Anzahl der gefundenen Dokumente
Der Macro-Score veranschaulicht, wie hoch das Verhältnis der
relevanten Dokumente auf der ersten Ergebnisseite zu den
Seite 9 von 105
(2.4)
gefundenen Dokumenten ist. Dieses Maß besagt also wie hoch
der Anteil relevanter Dokumente an der gefundenen
Ergebnismenge ist. Da die Anzahl der Ergebnisse auf der ersten
Ergebnisseite variieren müssen wir das Ergebnis noch durch die
Ausgabeanzahl dividieren, um einen Vergleich machen zu
können.
Um eine repräsentative Menge von Daten zu bekommen wurden
zehn Queries gestellt. Konkret wurden hierbei die möglicherweise
aufkommenden Fragen eines Schülers betrachtet, der sich im
Müllerhandwerk selbstständig machen will.
Suchbegriffe
altavista.de
E
G
P
Lycos.de
E
G
P
Google.de
E
G
P
16
25.039 2 10
73.828 1 10
84.900 3
handwerk
berufe
16
90.122 0 10
136.636 0 10
249.000 0
müller lehre
16
76.777
0
10
224.288
2
10
161.000 2
müller
ausbildung
16
6 0 10
2.373 6 10
4.970 4
handwerksorganisationen
16
25.234 0 10
102.370 1 10
67.800 4
handwerk
meister
16
4.124 4 10
3.917 4 10
9.640 9
handwerk
bafög
16
89 1 10
19.545 9 10
60.500 10
handwerk
existenzgründung
16
5.015 2 10
4.982 3 10
5.640 10
innung
müller
16
62 0 10
55 0 10
76 2
übernahme
müllerei
16
22.281 0 10
21.321 0 10
48.700 1
müller
verordnungen
0,26
0,45
Micro-Score: 0,05625
0,000002261315
0,0000044132499
0,00001392214735
Macro-Score:
Abbildung 2-1: Analysewerte der Suchmaschinen und
vergleichbare Micro-und Macro-Scores
E = Anzahl der Dokumente auf der ersten Ergebnisseite
G = Anzahl gefundener Dokumente
P = Anzahl relevanter Dokumente auf der ersten Ergebnisseite
Seite 10 von 105
Der Vergleich dieser Suchmaschinen in weiteren Anfragen und
der Bewertung gefundener Webseiten, offenbarte dass google.de
die qualitativ besten Ergebnisse liefert. Daher wird in zukünftigen
Vergleichstest google.de als Referenz-Suchmaschine
herangezogen.
Recherchen haben ergeben, dass Google hauptsächlich ein
Autoritätsranking in Kombination mit einer Relevanzmessung bzgl.
der gestellten query benutzt.
Neben den Suchmaschinen sind auch manuell gepflegte Systeme
im Internet verfügbar.
2.2 Analyse manuell gepflegter Systeme
Um eine Aussage über die Relevanz der Güte der Zuordnung von
Dokumenten zu Klassen erstellen zu können, werden neben den
allgemeinen Suchmaschinen auch manuell gepflegte Systeme
betrachtet. Bei diesen Systemen werden Webseiten oder
Dokumente von Redakteuren begutachtet und manuell in eine
Ontologie eingeordnet.
Als exemplarische Beispiele für manuell gepflegte Systeme
werden das Verzeichnis von yahoo.de und die Online Enzyklopädie wikipedia.de benutzt.
Suchbegriffe
E
handwerk berufe
müller lehre
müller ausbildung
handwerksorganisationen
handwerk meister
handwerk bafög
handwerk existenzgründung
innung müller
übernahme müllerei
müller verordnungen
Micro-Score:
Macro-Score:
yahoo.de
G
P
20
23
20
0
20
5
20
1
20
19
20
1
20
2
20
0
20
0
20
0
0,035
0,00686274509
Seite 11 von 105
2
0
0
1
3
1
0
0
0
0
E
wikipedia.de
G
P
0
0
0
0
0
0
0
0
0
0
0,00
0,00
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
Abbildung 2-2: Analysewerte der manuell gepflegten Systeme inkl.
vergleichbarer Micro- Macro-Scores
Diese Beispiele zeigen, dass manuell gepflegte Systeme qualitativ
und quantitativ große Unterschiede aufweisen können.
Dies hängt stark von der Anzahl und den Fähigkeiten der
eingesetzten Redakteure ab.
An Hand der Tabelle n lässt sich leicht erkennen, dass manuell
gepflegte Systeme wie das Verzeichnis von yahoo.de zwar
insgesamt weniger Dokumente finden, aber im Verhältnis zu der
Menge gefundener informativer Dokumente eine bessere
Ausbeute haben als die herkömmlichen Suchmaschinen.
Es lässt sich das Fazit ziehen, dass es nicht auf die Größe der
Dokumente nbasis allein ankommt, sondern auf die Güte der
Dokumente der Datenbasis bzgl. des gewünschten Themas und
die Qualität der Ergebnisse bei einfachen Suchanfragen.
Daraus ergab sich dann die Überlegung, was das Ziel des HIP´s
sein soll.
2.3 Welche Vorteile kann das „HIP“ bieten
Die Analyse der Suchmaschinen zeigte bereits, dass google.de
die besten Ergebnisse liefert. Dennoch kommt es bei
Doppeldeutigkeiten von Suchbegriffe n vor, dass die google -Suche
komplett neben den gewünschten Ergebnissen liegt
(siehe Anfrage 1: müller lehre). Ebenso findet man bei ungenauen
Anfragen nur wenig spezifische Dokumente bei google.de. Dies
kann im HIP reduziert werden, da nur handwerksrele vante
Dokumente aufgenommen werden und Doppeldeutigkeiten
außerhalb des Handwerker-Kontextes vom Klassifizierer vorab
eliminiert werden.
Des Weiteren ermöglicht die integrierte Suchmaschine durch den
impliziten Kontext des Handwerks auch unerfahrenen Anwendern
die erfolgreiche Suche, da der Kontext mit seinen vielfältigen
Sparten ständig in die Anfragen mit einfließt. Dadurch werden die
Ergebnismengen unqualifizierter Anfragen gegenüber anderen
Suchmaschinen um ein vielfaches reduziert. Weiterhin bietet das
„HIP“ die Möglichkeit die Suchergebnisse nach der Aktualität der
Dokumente sortieren zu lassen. Dies bieten die wenigsten
Seite 12 von 105
Suchmaschinen an. Dennoch kann dies ein wichtiges Kriterium für
die Güte eines Dokumentes sein.
Ein weiterer, nicht unwesentlicher Vorteil des „HIP“ liegt in der
möglichen Bewertung der Dokumente durch die Anwender. Da in
der Suchmaschine vorwiegend handwerksinteressierte Anwender
suchen werden, werden die Dokumente auch immer
kontextspezifisch bewertet werden. Es wird nicht vorkommen,
dass ein Biologe, der nach einem Prof. Müller sucht, ein
handwerksrelevantes Dokument zum Thema „Lehre Müller“
negativ bewertet, weil es nicht zu seinem gewünschten Ergebnis
passt.
Große Suchmaschinen können nicht automatisch in geschützten
Portalen crawlen oder Webservices wie z.B. patentamt.de nutzen.
Durch die Integration diverser Wrapper kann das „HIP“ also gute
Dokumente finden, die in den großen Suchmaschinen nicht
indexiert sind.
Als wichtigster Punkt gilt es, den unerfahrenen und professionellen
Nutzern geeignete Werkzeuge an die Hand zu geben, um
gewünschte Ergebnisse einfach zu finden und nach bestimmten
Kriterien umsortieren zu lassen. Dadurch erhält der Nutzer
unterschiedliche Sichten auf die gleiche Ergebnismenge.
Zusammengefasst besteht das Ziel des HIP´s also darin,
handwerkspezifische Dokumente zu finden und zu
repräsentieren. Darüber hinaus sollen dem Benutzer der
Suchmaschine die besten Ergebnisse in einer optimalen
Ergebnisdarstellung verfügbar gemacht werden.
Die Darstellung und Bearbeitungsmöglichkeiten der Ergebnisse
der Suchmaschinen werden gemäß den ermittelten Bedürfnissen
in der Analysephase angeboten.
2.4 Gibt es eine „freie Software“, die man als Basis nutzen
kann.
Auf Grund der bisherigen Vorüberlegungen galt es nun
herauszufinden, ob eine freie Software verfügbar ist, die
entsprechende Möglichkeiten bietet und modifiziert werden kann,
oder ob das ganze System von der Basis auf erstellt werden
muss. Es fand sich das System „Bingo“, das in Java geschrieben,
frei verfügbar und modifizierbar ist.
Seite 13 von 105
Die Anpassung des Bingo-Systems an die Gegebenheiten des
Projektes wurde von Herrn Sergej Sizow übernommen. Die
Datenbankstruktur wurde von mir gemäß den späteren
Bedürfnissen der Funktionalitäten angepasst.
Seite 14 von 105
3. Das Framework
3.1 Die Systemarchitektur
Das System setzt sich aus technischer Sicht aus drei
Komponenten zusammen:
a) Bingo-System
b) Datenbank
c) Suchmaschine und Administrationskomponenten
Diese Ebenen beeinflussen sich gegenseitig und stellen in der
Gesamtheit die Güte des Systems dar. Dadurch gilt es, auf jeder
Ebene die bestmögliche Performance und Userfreundlichkeit zu
erzielen. Die Abbildung auf der folgenden Seite illustriert den
Aufbau und die wichtigsten Komponenten des „HIP -Frameworks“:
a) Der fokusierte Crawler für die automatische Suche nach
thematisch relevanten Informationen im Web
b) Der Dokumentanalyzer, der das Parsen der gefundenen
Dokumente übernimmt und die Feature-Vektoren generiert
c) Der hierarchische Klassifizierer mit seinen Trainingsdaten
d) Der Linkanalyzer für das Autoritätsranking
e) Das Web-Interface für die Steuerung der Administration des
Systems
f) Die Suchmaschine für den gesammelten Datenbestand
Aus der Sicht der Softwarekomponenten gilt es die zwei Module
a) Bingo-System
b) Suchmaschine und Administrationskomponenten
mit der gemeinsamen Datenbank zu erstellen.
Seite 15 von 105
Der Aufbau des Frameworks:
Suche im Web
Bingofokussierter
Crawler
Crawler
Feature
Selection
Classifier
Document
Analyzer
Link Analyzer
Re-Training
Startdaten
Datenbank
Webserver
Suchmaschine
Portal-/ System Admin
Abbildung 3-1: Aufbau des Systems aus technischer Sicht
Seite 16 von 105
3.2 Bingo – Bookmark Induced Gathering of Information
Das in dieser Arbeit benutzte Bingo-System [2-4] ist ein
thematisch fokussierter Crawler, der gefundene Dokumente
automatisch klassifizieren und in eine benutzerspezifische
Themenhierarchie (Ontologie) einordnen kann. Dabei dienen dem
Crawler Trainingsdaten (Trainingsdokumente in der Ontologie) als
Basis zur Klassifizierung. Genau dies ist der „Kritische Punkt“ des
Systems, der maßgeblich die Qualität der Klassifizierung
beeinflusst. Je „besser“ die Trainingsdokumente der einzelnen
Klassen sind und je mehr davon pro Klasse vorhanden sind, desto
besser kann Bingo die neuen Dokumente klassifizieren. Die
Dokumente der Nachbarkategorien benutzt Bingo dabei als
Negativbeispiele. Dabei werden für die Klassen Feature-Vektoren
berechnet und die Dokumente in einem Vektorraum positioniert,
an Hand dessen entschieden werden kann, zu welcher Klasse ein
Dokument gehört.
Bingo versucht dabei die Grenzen der Trainingsbasis zu
überwinden und diese selbstständig durch „bessere Dokumente“
zu ersetzen (Wachstumsphase). Danach kann Bingo durch
Neutrainieren des Klassifizierers die Klassifizierungsgüte
verbessern, indem es die relevanten Terme der Klassen
verändert.
Das Bingo-System besteht aus den folgenden Komponenten:
•
•
•
•
•
•
Crawler
Document Analyzer
Classifier
Link Analyzer
Feature Selection
Re-Training
Bingo berechnet für die Dokumente so genannte FeatureVektoren, an Hand deren die Dokumente im Feature-Raum
angeordnet und einzelnen Klassen zugeordnet werden können.
Seite 17 von 105
3.2.1 Die Komponenten des Bingo-Systems
Der fokussierte Crawler:
Im HIP wird der fokussierte Crawler des „Bingo-Systems“
verwendet. Dieser Crawler ist das Herzstück des Bingo Systems
und dient der Erweiterung der Dokumentenbasis und der
klassenspezifischen Feature-Räume.
Dem Crawler dienen eine Menge von HTML-Dokumenten p 1,..,p n
als Ausgangsbasis in einem gerichteten Netzgraphen G. Der
Crawler liest den Inhalt dieser Dokumente und extrahiert die darin
enthaltenen Hyperlinks zu referenzierten Nachfolgedokumenten.
Diese extrahierten Links werden in eine Prioritätenschlange (engl.
Priority Queue) mit einer zugehörigen Priorität in Form einer
reellen Zahl eingereiht. Nachdem der Crawler alle Startdokumente
auf diese Art und Weise abgearbeitet hat, liest der Crawler die
Links gemäß Ihrer Prioritätenreihenfolge aus der Prioritätenschlange, beginnend mit dem Link mit der höchsten Priorität, bis
ein Abbruchkriterium erfüllt ist, oder die Prioritätenschlange leer
ist.
Da in einem HTML-Dokument in der Regel mehrere Links
vorhanden sind, steigt die Anzahl der extrahierten Links
exponentiell. Damit steigt auch die Anzahl der zu besuchenden
Dokumente und die Größe der Queue ebenfalls exponentiell mit
der erreichten Tiefe im Netzgraphen. Der Crawler muss also
riesige Datenmengen einlesen und verarbeiten können, was hohe
Hardwareressourcen voraus setzt.
Die Qualität der gefundenen Dokumente hängt maßgeblich von
der Qualität der Startdokumente ab. Darüber hinaus enthalten
aber auch gute Startdokumente (Hubs) viele Links zu irrelevanten
Dokumenten, die mit dem eigentlichen Thema in keinem
Zusammenhang stehen. Daher ist die gezielte Steuerung und
Auswahl von Dokumenten ein wichtiger Faktor für die Effizienz
des Crawlers, da sonst die Anzahl der besuchten „schlechten
Dokumente“ ebenfalls exponentiell steigt. Als Kernaktivität gilt es
also aus einer riesigen Menge von Dokumenten bereits während
des Crawlens die guten Dokumente von den schlechten
Dokumenten zu trennen und festzulegen welche Links mit welcher
Priorität überhaupt erst weiterverfolgt werden sollen. Dabei
übernimmt der Crawler von Bingo nur solche Dokumente, die sich
in allen Auswahlkriterien ausreichend qualifizieren konnten.
Seite 18 von 105
Dieses Ziel wird auf zwei Arten erreicht. Zum eine n durch eine
klassenspezifische Fokussierung auf Seiten, die genauso wie das
Startdokument klassifiziert wurden, zum Anderen werden die Links
eines positiv klassifizierten Dokumentes extrahiert und in
Abhängigkeit vom Wert des Klassifikationsergebnisses des
Vaterlinks priorisiert und in die Queue gestellt. Links, die nicht in
das fokussierte Schema passen, werden nicht weiter verfolgt und
Links mit guten Klassifikationsergebnissen werden vom Crawler
bevorzugt behandelt.
Document Analyzer:
Die Dokumente werden von dem Dokument-Analysator, einem
Parser für HTML, PDF und andere gängige Dateitypen,
verarbeitet. Dabei werden die HTML-Steuerzeichen,
Sonderzeichen und Stoppworte anhand vordefinierter StoppwortListen entfernt.
Die verbleibenden Terme werden durch einen Ste mmer (Porter
Stammer) auf die morphologische Stammform reduziert.
Der Klassifizierer:
Dem Klassifizierer dienen Term-basierte Gewichtsvektoren mit
RTF oder TF*IDF Gewichtung als Gütekriterien. Die geladenen
Dokumente werden an den Klassifizierer übergeben der
entscheidet, ob das Dokument in die Themenhierarchie
eingeordnet werden kann. Zur Klassifikation verwendet „Bingo“
einen Support Vector Machines Klassifizierer. Um ein Dokument
zu klassifizieren wandert dieser Klassifizierer rekursiv durch den
Themenbaum und entscheidet in jedem Knoten durch eine binäre
SVM-Klassifikation welchen Nachfolger er nehmen muss.
Dokumente, die an einer Stelle keinem Nachfolger mehr
zugeordnet werden konnten werden in eine Themengruppe
„OTHERS“ aufgenommen. Durch diese SVM-Klassifikation erhält
man auch gleichzeitig ein Ranking bezüglich der Güte eines
Dokumentes i nnerhalb eines Themas.
Link Analyzer:
Die Links der positiv klassifizierten Dokumente werden der URLQueue zum weiteren Crawlen hinzugefügt. Zusätzlich zu diesem
SVM-Score Ranking berechnet Bingo auch gleich noch ein
Authoritäts- und ein HUB-Ranking. Dazu analysiert Bingo gemäß
dem „HITS -Algorithmus“ die Verlinkung der Dokumente
untereinander und zählt die Links innerhalb jeden Dokumentes.
Hierbei wird die Annahme getroffen, das Dokumente auf die viele
Seite 19 von 105
andere informative, zum Thema gehörigen Dokumente verweisen
potentiell bessere Dokumente bezüglich des entsprechenden
Themas sind, als Dokumente auf die nur wenige andere
Dokumente verweisen.
Feature Selection:
Aus allen Eingabedokumenten eines Hierarchieknoten werden
Feature-Vektoren für diesen Knoten bestimmt. Zur Feature
Selektion wird von Bingo die Berechnung der Kullback-Leibler
Distanz (Mutual Information, MI) als statistisches Maß zur
Berechnung der Diskriminationsgüte im Blick auf die verfügbaren
Klassen einer Baumstufe der Ontologie benutzt. Die extrahierten
Links dienen zur Initialisierung der URL-Queue des Crawlers.
Re-Training:
Wenn Bingo eine ausreichend große Menge neuer Dokumente
gesammelt hat, kann der Klassifizierer anhand der neuen
Dokumente automatisch trainiert werden. Dabei nimmt er neue
Dokumente, die eine höhere relative Termhäufigkeit der
repräsentierenden Terme eines Themas haben in die Basis der
Trainingsdokumente eines Themas der Ontologie auf. Wird die
Anzahl der Trainingsdokumente zu groß, so verwirft Bingo
diejenigen Trainingsdokumente, deren repräsentative Terme
relativ gesehen am wenigsten vorkommen. Auf diese Art und
Weise kann Bingo seinen Klassifizierer selbstständig verbessern.
Dieses Retraining des Klassifizierer kann automatisch gestartet
werden, wenn die Füllmenge der Archetypen eines Themas eine
Grenze Nmax erreicht.
Um hierbei einen Themen-Trift zu vermeiden werden die besten
Dokumente aus HITS n SVM genommen.
Seite 20 von 105
3.2.2 Vorgehen des fokussierten Crawlers
Ein Dokument p wird durch seine URL identifiziert. Da sich der
Inhalt eines Dokumentes mit der Zeit verändern kann, wird zur
Vereinfachung angenommen, dass das WWW über einen
gewissen Zeitraum konstant bleibt. Diese Annahme stellt für den
Zeitraum des Crawls keine Einschränkung dar, da sowieso nur ein
Teilgraph des WWW von Interesse ist.
Der Inhalt eines Dokumentes wird als content(p) bezeichnet.
Dieser Inhalt kann leer sein, wenn es keine Antwort gibt, eine
Fehlermeldung zurückgegeben wird oder eine Zeitüberschreitung
vorliegt. Das WWW wird dann als einen gerichteten Graphen
G=(V,E) definiert, wobei V die Menge aller existierender
Webseiten und E c (VxV), die Menge der gerichteten Kanten oder
Links zwischen diesen Dokumenten ist.
Ein Link link(p,q) zeigt also von seinem Quelldokument p auf ein
Zieldokument q, wobei die relative URL-Verweise durch absolute
URLs ersetzen, da q durch absolute URLs identifizieren werden
soll. Für jede URL kann der Host host(p) aus dem Teil zwischen
dem Protokollbezeichner und dem Verzeichnis mit dem
Dateinamen bestimmt werden. Da sich das WWW ständig ändert,
ist nicht bekannt, ob das Zieldokument q wirklich existiert.
Als Crawling bezeichnet man den Vorgang der suk zessiven
Transformation eines Teilgraphen G0 von G, der durch
E0={p1,…,p n}, der Menge der Startdokumente, mit n>=1, V 0?Leere
Menge definiert wird, zu den Teilgraphen G1,G2,…,G M von G, so
dass genau in jedem Schritt genau eine Kante und höchstens ein
Knote n aus G zu G i angefügt wird, um Gi+1 zu erhalten.
Das fokussierte Crawlen setzt mindestens zwei Klassen voraus,
eine Klasse mit guten Dokumenten und eine Klasse mit
schlechten Dokumenten in Abhängigkeit vom Interesse des
Benutzers. Dabei liegt das Ziel des Crawlers darauf, möglichst
viele gute Dokumente zu klassifizieren und möglichst wenig
schlechte Dokumente in den Graphen einzufügen. Es ist
offensichtlich, dass die Güte des Crawlers stark von der Güte der
Startdokumente abhängt.
Da man das WWW als gerichteten Graphen ansehen kann, spricht
man im Bezug auf das Crawler Modell von einer Graphensuche.
Dabei kann durch entsprechende Steuerung der Queue sowohl
Seite 21 von 105
eine Breite-Zuerst- als auch eine Tiefe-Zuerst-Suche simuliert
werden. Benutzt man das FIFO-Prinzip (First in First out) so wird
eine Breite-Suche , bei dem LIFO-Prinzip (Last in First out) eine
Tiefensuche simuliert. Um die Suche effektiver zu gestalten kann
diese Priorisierung durch weitere Funktionen überlagert werden.
Bei der Bearbeitung eines Netzgraphen wäre es möglich, dass
man in eine Endlosschleife gelangt. Dies wird verhindert, indem
man bereits besuchte URLs in eine Liste einträgt, und zu
besuchende URLs mit dieser Liste abgleicht. Darüber hinaus
macht es auch Sinn, die Tiefe der Suche zu beschränken, so dass
Dokumente einer bestimmten Tiefe nur noch als Blätter ohne
Nachfolger angesehen werden.
3.2.3 Vorgehen des Document Analyzer
Der Document Analyzer liest zunächst die Dokumente ein und
extrahiert mit Hilfe eines Parsers alle darin entha ltenen Worte.
Dabei werden alle HTML-Steuerzeichen (TAGS) entfernt und nur
noch reine Textpassagen verarbeitet. Danach teilt ein Tokenizer
Worteinheiten mit Trennzeichen in weitere Worte auf, die nur noch
aus Buchstabenfolgen bestehen und keine Sonderzeichen oder
Zahlenziffern mehr enthalten. Dadurch wird die Anzahl
unterschiedlicher Worte reduziert. Im letzten Schritt werden alle
Stoppworte, die nur zu einer geringen Klassifikationsgüte führen
würden aus den Termen entfernt. Diese Stoppworte sind Worte
wie „und“, „an“, „dem“ …, die in vielen Dokumenten häufig
vorkommen, aber keine Klassifizierung eines Dokumentes zu
gewissen Themen erlauben. Diese Stoppworte befinden sich in
einer separaten Liste und können jederzeit ergänzt werden.
aber
anderr
because
can
about
anders
before
could
again
are
behind
da
all
around
bei
damit
alle
art
bestimmt
dann
allem
as
between
das
allen
at
bin
dass
aller
auch
bis
dasselbe
alles
auf
bist
dazu
als
aus
but
dein
also
away
by
deine
Abbildung 3-2: Auszug aus der Stopwordliste
Seite 22 von 105
deinem
deinen
deiner
deines
dem
demselben
den
denn
denselben
der
…
3.2.4. Benutzte Methoden der Feature Selection
Die durch den Document Analyzer erhaltene Termmenge eines
Dokumentes, in der noch immer gleiche Terme mehrmals
vorkommen können, dient nun als Grundlage der Berechnung der
Features, die keine Term-Wiederholungen mehr enthalten.
Für jeden Term eines Dokumentes kann jetzt ein Gewicht
bezüglich des Dokumentes berechnet werden.
3.2.4.1. Berechnung von Gewichtsvektoren durch TF
(Term Frequenc y)
Bei diesem Verfahren wird zu jedem Term ti eines Dokumentes d j
eine Gewichtung w ij zugeordnet. Der Gewichtungswert besteht bei
Bingo aus der Termhäufigkeit tf ij des Ausgangsterms ti im
Dokument d j:
Wij:= tfij= Anzahl der Terme ti im Dokument d j
Anza hl der Terme im Dokument d j
Gegebenfalls ist auch eine Normierung der Gewichte durch die
L2-Norm des ursprünglichen Gewichtvektores sinnvoll:
_____
Wij ;= wij / v? k wkj2
Diese einfache Form der Termgewichtung ergibt sich direkt durch
zählen der Häufigkeit eines Termes in der Termliste eines
Dokumentes.
Seite 23 von 105
(3.1)
(3.2)
3.2.4.2. Berechnung von Gewichtsvektorn durch TF*IDF
(Term Frequency*Inverse Document frequenzy)
Die Berechnung der Gewichtsvektoren nach TF sagt nur etwas
über die Güte eines Termes bzgl. eines Dokumentes aus. Eine
erweiterte Form der Termgewichtung berücksichtigt zusätzlich,
welche Güte ein Term bzgl. der Klasse aufweist, in der das
Dokument eingeordnet wurde. Je nach angewandter
Termgewichtung ist also der Gewichtungswert w ij noch zusätzlich
abhängig von der Häufigkeit der Dokumente einer Klasse, die
diesen Term enthalten.
Die Document Frequency d fi eines Termes ti ist die Anzahl der
Dokumente einer Kategorie und deren Unterkategorien, die den
Term t i enthalten.
dfi := Anzahl der Dokumente mit Term ti
Zusätzlich wird dieser Wert mit der Anzahl N der Dokumente der
Kategorie und Ihrer Unterkategorien normiert und invertiert, so
dass wir die sogenannten Inverse Document Frequency idfi des
Terms t i erhalten.
N
Anzahl der Dokumente
idfi:= dfi = Anzahl der Dokumente mit Term t i
(3.3)
Bezieht man nun den idf-Wert eines Termes ti in die Gewichtung
mit ein, so kann man ein Feature X ij=(ti ,w ij ) in Abhängigkeit seiner
Häufigkeit im Dokument d j und seiner Häufigkeit innerhalb einer
Klasse gewichten:
(3.4)
Wij:=tfij * idfi
Die Idee besteht also darin, dass Terme, die sehr selten in den
Dokumenten einer Klasse vorkommen, nicht sehr relevant für eine
Klassifikation sind. Durch Elimination dieser Terme kann man evtl.
ein „Rauschen“ vermeiden. Es gilt dabei zu beachten, keine zu
starke Reduktion vorzunehmen, da auch weniger häufig
auftretende Terme sehr charakteristisch für eine Kategorie sein
können.
Seite 24 von 105
3.2.4.3 MI (Mutual Information-Kreuzentropie)
Das Ziel bei der Feature Selektion besteht darin, themenspezifisch
Terme zu selektieren und diese dann einzelnen Kategorien derart
zuzuordnen, dass eine Kategorie sich von den anderen
Kategorien mit dem gleichen Vater optimal abgrenzt. Es werden
also die Terme einer Klasse benötigt, die die Klasse am besten
von den Nachbarklassen unterscheiden.
MI ist ein Maß für den Betrag der Information, die eine
Zufallsvariable über eine andere enthält. Das MI-Maß ist wie folgt
definiert [5]:
Seien X und Y diskrete Zufallsvariablen, die spezifische Werte
annehmen, die wir mit x,y bezeichnen, dann wird Mutual
Information (MI) zwischen diesen Variablen wie folgt definiert:
MI(X,Y)=SSPr(x,y)log Pr(x,y)
xy
Pr(x)Pr(y)
(3.5)
Hierbei ist Pr(x,y) die Kurzform für Pr(X=x /\ Y=y) und beschreibt
die Wahrscheinlichkeit, dass X den Wert x und Y den Wert y
annimmt.
Das MI-Maß wurde im Rahmen der Informationstheorie entwickelt.
In unserem Kontext besteht die Idee darin, für jede Klasse die
Terme zu ermitteln, die die Klasse besonders gut von Ihren
Nachbarklassen diskriminieren. Da das MI-Verfahren nicht Teil der
Diplomarbeit ist, soll nur kurz die Anwendung des Verfahrens auf
unseren Kontext der Dokumentenverarbeitung übertragen werden.
Seien xi ein Term und K eine Klasse, dann berechnet sich MI(xi,K)
wie folgt:
MI(xi ,K)= Pr(xi,K) log Pr(xi ,K)
Pr(xi )Pr(K)
Pr(xi,K) ist dabei die Wahrscheinlichkeit, dass ein Dokument der
Trainingsmenge zu K gehört und den Term xi enthält.
Pr(xi) ist die Wahrscheinlichkeit, dass ein Dokument den Term xi
enthält.
Seite 25 von 105
(3.6)
Pr(K) ist die Wahrscheinlichkeit, dass ein Dokument zur Klasse K
gehört.
Der MI-Wert eines Termes xi und einer Klasse K ist ein Maß dafür,
wie viel Information durch das Vorhandensein des Termes xi in
einem Dokument über das Vorhandensein dieses Dokumentes in
der Klasse K gegeben ist. Dabei besteht die Idee darin, dass
Terme xi mit großen MI-Werten für K gut geeignet sind, K von
seinen Nachbarklassen zu unterscheiden.
Man wählt dann pro Klasse eine Anzahl w von Termen mit den
höchsten MI-Werten. Um die Effizienz zu steigern, kann man eine
Vorab-Selektion nach dem TF*IDF Verfahren durchführen und auf
die verbliebene Menge das MI-Verfahren anwenden.
3.2.4.4 Manuelle Nachbearbeitung der Feature-Vektoren
Es war festzustellen, dass die automatische Feature-Selektion bei
wenigen Trainingsdokumenten einer Klasse auch schlechte oder
nichts sagende Terme aufnimmt. Dadurch wird die Güte der
Klassifikation verschlechtert.
fuer
gewaehr
bundesanstalt
ausbildung
beruf
daten
arbeit
berufenet
fakten
neue
hilfe
druckversion
angaben
suche
innen
Abbildung 3-3: Auszug aus den unbearbeiteten Feature-Vektoren
der Klasse Dachdecker, sortiert nach MI
Um dem entgegen zu wirken wird ein Interface hinzugefügt, mit
dem man sich die besten Terme einer Klasse nach deren Güte
ansehen kann. Mit diesem Interface besteht auch die Möglichkeit,
diese Terme nachträglich positiv oder negativ zu bewerten.
fachrichtungen
aussenwaenden
dach
wand
daechern
abdichtungstechnik
errichten
umfasst
reetdachtechnik
bauwerken
abdichten
dachdecker
flaechen
Abbildung 3-4: Auszug aus den bearbeiteten Feature-Vektoren der
Klasse Dachdecker, sortiert nach MI
Seite 26 von 105
Der Aufwand der manuellen Nachbearbeitung hängt stark von der
Anzahl und der Güte der Trainingsdokumenten der Klasse ab.
Die Klassifizierung wird durch die manuelle Selektion der guten
Features optimiert. Dadurch werden nach einigen Iterationen nur
noch positive Terme zur Klassifizierung benutzt werden und die
negativen Terme aus der Klassifizierung ausgeschlossen werden.
3.2.4.5 Hinweise
Die Gesamtheit aller Features der Dokumente einer Klasse bildet
den Feature Raum dieser Klasse. Dabei ist es in der Regel aus
Effizienz-Gründen erstrebenswert nur einen Teil der gesamten
Features zur Klassifikation heranzuziehen. (Z.B. die 100 besten
Features einer Klasse).
Seite 27 von 105
3.2.5. Support Vector Machines Klassifizierer
Als Klassifizierer ist der Support-Vector-Machine -Algorithmus [6] in
Bingo integriert. Der Support-Vector-Machine -Algorithmus wurde
1979 zum ersten Mal von Vapnik vorgestellt und hat sich in vielen
neueren Arbeiten zur Textklassifikation bewährt.
Wir wollen hier nur einen einführenden Überblick über die Theorie
des SVM-Verfahrens geben, da diese Theorie nicht der
Gegenstand dieser Arbeit ist.
Das SVM ist in der linearen Form ein System von Stützvektoren,
das zwei Klassen von Trainingsdaten C und + C mit maximalem
Euklidischen Abstand d trennt.
Dabei liegen den beiden Klassen Trainingsvektoren xi zu Grunde,
die sich auf eine Menge von Positivbeispielen von C und eine
Menge von Negativbeispielen von + C aufteilen.
Die Trainingsvektoren werden gemäß Ihrer Klassen mit {xi,yi }
beschriftet, wobei i=1,…,l; yie{-1,+1}; xi e Rd sind.
Geht man davon aus, dass es eine trennende Hyperebene gibt,
die die positiven von den negativen Beispielen trennt, dann
erfüllen alle Punkte, die direkt auf der Hyperebene liegen die
Bedingung w+x+b=0, wobei w e Rd der Normalenvektor der
Hyperebene ist.
Mit ||w|| wird die Euklidische Norm von w bezeichnet, so dass
|b|/||w|| der Abstand der Hyperebene zum Ursprung ist. Sei d der
kürzeste Abstand des nächsten positiven bzw. negativen Beispiels
zur Hyperebene, dann beträgt der Randbereich 2d. Die Vektoren
mit dem Abstand d zur Hyperebene bezeichnet man als
Stützvektoren (engl. support vectors).
Durch diese Stützvektoren wird die Lage der Hyperebene definiert
und die Hyperebene charakterisiert. Eine Veränderung dieser
Stützvektoren würde unmittelbar zur Veränderung der Hyperebene
führen, wobei die Änderung anderer Vektoren keinen Einfluss auf
die Hyperebene hat.
Seite 28 von 105
Abbildung 3-5: Schaubild SVM-Klassifikation mit Stützvektoren
Das Problem besteht jetzt darin, die trennende Hyperebene
w*x+b=0, bzw. den Normalenvektor w zu berechnen, die die
Trainingsbeispiele aus C und + C optimal separiert und den
Euklidischen Mindestabstand d zu allen Trainingsvektoren
maximiert. Die Berechnung der Hyperebene ist ein
Optimierungsproblem, das nach La Grange gelöst werden kann.
Wenn dieser Normalenvektor w für eine Menge von Daten
gefunden ist, kann ein Testvektor z e Rd durch einfache
Skalarproduktbildung klassifiziert werden.
SVM-Klassifikation:
Um zu entscheiden, ob ein Testvektor z e Rd zu einer Klasse C
oder einer Klasse + C gehört, teste:
d
f(z)=(w*z)+b= ? wi zi+b>0
i=1
(3.7)
Seite 29 von 105
Das Vorzeichen sgn(f(z)) gibt Auskunft darüber, auf welcher Seite
der Hyperebene ein Testvektor z liegt. Das Klassifikationsergebnis
f(z) kann als Gütemaß angesehen werden und wird für den SVMRank benutzt. Auf Grund der Abhängigkeit des SVM-Ranks von
der Gewichtung der Eingabevektoren, lässt sich kein
Gütevergleich zwischen Dokumente n unterschiedlicher Klassen
erstellen. Insbesondere die lineare Form des SVM hat sich bei
Textklassifikation sehr bewährt und wird daher in dem BingoSystem eingesetzt.
Seite 30 von 105
3.2.6. Benutzte Ranking Methoden
3.2.6.1. HITS Algorithmus (Autoritäts- und HUB-Ranking)
Der HITS-Algorithmus (hyperlink -induced topic search) [7] wurde
erstmals von Jon M. Kleinberg eingeführt. Er ging davon aus, dass
die Dokumente eines Themas grob in zwei Gruppen eingeteilt
werden kann. Der ersten Gruppe werden Dokumente mit gutem
Inhalt bezüglich des Themas zugeordnet (Autoritäten genannt).
Die zweite Gruppe enthält verzeichnisähnliche Dokumente, die
viele Links zu nützlichen Seiten enthalten.
Betrachtet man die Menge der gefundenen Dokumente als einen
gerichteten Netzgraphen G, so entsprechen die Dokumente den
Knoten der Graphen. Die gerichteten Kanten entsprechen den
Links der Dokumente untereinander. Geht man nun davon aus,
dass ein Dokument besonders gut ist, wenn viele gute Dokumente
darauf verweisen, so kann ein Autoritätsranking an Hand der
Anzahl der eingehenden Kanten und der Güte der Verweis-Knoten
berechnet werden.
Formal lässt sich das Autoritätsranking für jedes Dokument p wie
folgt ermitteln:
Ap = S Hq
q(q,p) e G
(3.8)
Das Hub -Ranking geht genau wie das Autoritätsranking von dem
Modell eines gerichteten Netzgraphen aus. Dabei werden jetzt
aber nicht die Anzahl der eingehenden Kanten und die Güte der
zugehörigen Verweis-Knoten betrachtet, sondern die Anzahl der
ausgehenden Kanten und die Güte der Ziel-Knoten. Ein
Dokument, das auf viele andere gute Dokumente verweist ist zwar
nicht unbedingt als ein gutes Dokument b zgl. des Inhaltes zu
beurteilen, aber ein Dokument mit vielen Links zu guten
Dokumenten ist ein guter Startpunkt zum Auffinden neuer
Dokumente, die mit hoher Wahrscheinlichkeit auch zu dem Thema
des Startdokumentes gehören.
Das HUB-Ranking wird wie folgt berechnet:
Hp = S Aq
q(p,q) e G
(3.9)
Seite 31 von 105
Der Autoritätswert des Dokumentes p entspricht also der Summe
der HUB-Werte aller Seiten, die auf p verweisen und Der HUBWert einer Seite entspricht dem Wert der Summe der
Autoritätswerte aller Dokumente, auf die das Dokument p
verweist.
Abbildung 3-6: HITS-Algorithmus
Kleinberg ging davon aus, dass die Dokumente mit den höchsten
Autoritätswerten auch den besten Inhalt bzgl. des Themas
enthalten.
Generell gibt es bei großen diffusen Dokumentenmengen das
Problem, dass es zu schlechten Berechnungen der
Autoritätswerte kommen kann, weil themenfremde Dokumente in
der Datenbasis vorhanden sind.
Legt man aber einen fokussierten Crawler zu Grunde, der
themenfremde Dokumente schon vorab eliminiert, so kann man
von guten Autoritäts- und HUB-Werten ausgehen.
3.2.6.2 Zugriffs-Ranking
Dieses Verfahren orientiert sich an den Zugriffszahlen auf ein
Dokument. Dazu wird beim Aufruf eines Dokumentes aus der
Suchmaschine heraus ein Zähler für das entsprechende
Dokument erhöht. Auf diese Art und Weise wird ein Ranking nach
der vom User an Hand seines Previews geschätzten Wichtigkeit
eines Dokumentes erzeugt.
Zugriffs-Ranking = S Klicks auf den Link zur Seite
Seite 32 von 105
(3.10)
3.2.6.3 User-Ranking
Den Usern wird die Möglichkeit einer direkten Bewertung der Güte
eines Suchergebnisses angeboten. Dabei kann der User sowohl
eine positive als auch ein negative Bewertung abgeben. Das
Ranking errechnet sich wie folgt:
Rank= S pos/( S neg+ S pos +000000,1)
(3.11)
Dabei entsprechen S pos der Anzahl der positiven Bewertungen
und S neg der Anzahl der negativen Bewertungen. Der letzte Wert
000000,1 dient lediglich der Vermeidung einer unerlaubten
Division durch null. Man erhält so den positiven Anteil der UserBewertungen.
3.2.6.4 Relevanz-Ranking
Das Relevanz-Ranking der gefundenen Ergebnisse bezüglich der
gestellten Query wird als Skalarprodukt realisiert:
|F|
Sim(dj,q) := ? d ij q j
j=1
(3.12)
Dabei geht man davon aus, dass alle Suchbegriffe gleich wichtig
sind woraus sich qj=1/#Suchbegriffe ergibt. D ij sind hierbei die
RTF-Werte der entsprechenden Suchbegriffe bezüglich des
gefundenen Dokumentes.
3.2.6.5 Weitere Ranking-Möglichkeiten
Da in Bingo bereites die meisten Ranking-Werte vor berechnet
und in der Datenbank gespeichert werden, ist es bei diesem
System auch möglich weitere kombinierte Rankingmöglichkeiten
einzuführen. Ein Beispiel dafür wäre eine Kombination mit
Gewichtung a us SVM-, AuthScore und Feedback-Werten.
Dabei kann man die einzelnen Kriterien noch zusätzlich durch
Gewichtsfaktoren hervorheben. Wenn z.B. das Feedback doppelt
so hoch bewertet werden soll wie die anderen Werte so lässt sich
ein Ranking wie folgt berechnen:
Rank= SVM-Score + AuthScore + 2 * Feedback
4
4
4
Seite 33 von 105
(3.13)
3.3 Der Webbereich
3.3.1 Die Suchmaschine
Es wird von zwei Typen Nutzer der Suchmaschinen ausgegangen.
Zum einen wird es unerfahrene Nutzer geben, die einfach nur
Begriffe in die Suchmaschine eingeben wollen, zum anderen wird
es Nutzer geben, die Erfahrung mit Suchmaschinen aufweisen
und die Ergebnismenge auf verschiedenste Art und Weise
bearbeiten wollen. Daher wurde entschieden, wie bei anderen
Suchmaschinen auch, zwei Suchinterfaces anzubieten.
3.3.1.1 Das Suchinterface für unerfahrene Benutzer.
Das erste Interface wendet sich an den unerfahrenen Nutzer und
bietet daher auch keine unnötige Auswahlmöglichkeiten an, die
den Nutzer verunsichern könnten. Dazu wird ihm ein einfaches
Eingabefeld angeboten, indem er seine Suchbegriffe eingeben
kann.
Abbildung 3-7: Einfache Suchmaske
Darüber hinaus hat er im unteren Bereich die Möglichkeit durch
den Themenkatalog zu blättern. Die Auswahl eines Themas führt
zu einer Folgeseite, die die weiteren Unterkategorien und die
Dokumente der entsprechenden Kategorie anzeigt. Dort kann er
dann entweder eines der Dokumente anklicken oder weiter den
Unterkategorien folgen.
Seite 34 von 105
Abbildung 3-8: Themenkatalog der Suchmaschine
Nach der Sichtung einer Seite erhält er auf der Ergebnisseite
zusätzlich die Möglichkeit, die angesehene Seite zu bewerten, in
dem er auf den neu erscheinenden Link „Ihre Meinung“ klickt.
Abbildung 3-9: Bewertungsmöglichkeit des Nutzers
Wenn der Nutzer ein g utes Dokument gefunden hat, so kann er
durch einen Klick auf den Link „Ähnliche Seiten“ sich weitere
Seiten anzeigen lassen, die ähnlich klassifiziert wurden.
Seite 35 von 105
3.3.1.2 Das Suchinterface für den erfahrenen Benutzer
Dem erfahrenen Benutzer muss eine professionelle Suche mit
verschiedenen Einstellungsmöglichkeiten zu Verfügung stehen.
Durch Anklicken des Linkes „Erweiterte Suche“ gelangt er von der
normalen S uchmaske zur professionellen Suche.
Abbildung 3-10: Professionelle Suche
Der erfahrene Anwender hat hier die Möglichkeit diverse
Einstellungen zu tätigen:
•
•
•
•
•
•
Einschränkung der Suche auf einen Themenbereich
Verknüpfungsart der Suchbegriffe (und/oder)
Anzahl der Dokumente auf einer Ergebnisseite
Begriffe, die nicht in dem Dokument vorkommen dürfen
Datentyp der gefundene n Dokumente
Sortierkriterium bei der Ausgabe gefundener Dokumente
Hier kann der erfahrene Nutzer Dokumente suchen, die einige
Suchbegriffe oder alle Suchbegriffe beinhalten. Dabei kann er in
dem Feld „auszuschliessende Wörter“ auch Begriffe eingeben, die
nicht in dem Dokument enthalten sein dürfen.
Seite 36 von 105
Mit dem Popup „Wahl des Datentyps“ kann er die Menge der
Ergebnisse auf bestimmte Dokumenttypen wie PDF - oder Word Dokumente einschränken. Die Idee besteht darin, dass PDF- oder
Word-Dokumente qualitativ hochwertiger sind, als die HTMLDokumente, die oftmals nur einen Teil eines ursprünglichen PDF oder Word-Dokumentes wiedergeben.
Durch das Ändern des Sortierkriteriums kann er seine
Suchanfrage neu geordnet ausgeben lassen. Dies ist besonders
wichtig, weil man z.B. aktuelle Pressemitteilungen immer ganz am
Ende finden würde, da diese nur bei der Sortierung nach Aktualität
nach oben gelangen können. Alle anderen Sortierverfahren
würden diese benachteiligen.
Abbildung 3-11: Sortiermöglichkeiten der professionellen Suche
Die Sortierung nach Relevanz stellt eine Bewertung der
Ergebnisse bezüglich der eingegebenen Suchbegriffe dar.
Das Konfidenz-Ranking entspricht der Sortierung nach dem SVMScore, also der Güte des Dokumentes bezüglich einer Klasse.
Darüber hinaus entspricht die Sortierung nach der Autorität dem
Ranking der Güte und Anzahl an Dokumenten, die auf diese
Ergebnisse verweisen. Dabei wird davon ausgegangen, dass ein
Dokument potentiell besser ist, wenn viele andere informative
Dokumente darauf verweisen.
Seite 37 von 105
Die Sortierung nach Bewertung ist ein weiteres wichtiges
Kriterium, da diese Bewertung von den Nutzern der
Suchmaschine abgegeben wird und so eine menschliche
Bewertung von Dokumenten entsteht. So kann man leicht solche
Dokumente finden, die von vielen Nutzern für gut bewertet
wurden. Dies müssen nicht automatisch auch diejenigen
Webseiten sein, die von dem Klassifi zierer als gut bewertet
werden.
Da man aber davon a usgehen kann, dass tatsächlich nur wenige
Nutzer eine Webseite bewerten werden, bietet die Sortierung nach
der Häufigkeit der Besuche einer Seite ein weiteres menschliches
Kriterium. Dieses Kriterium spiegelt die Einschätzung der Nutzer
wieder, wie gut ein Dokument an Hand seiner Kurzbeschreibung
sein könnte. Wenn ein Nutzer ein Dokument besucht wird ein
interner Zähler für dieses Dokument erhöht und abgespeichert.
Die technischen Details der Ranking-Verfahren wurden bereits
unter 3.2 erläutert.
Die Wichtigkeit der verschiedenen Ranking -Arten lässt sich an
unserem anfänglichen Beispiel des Jugendlichen verdeutlichen,
der auf der Suche nach einer Lehre ist.
Kennt der Jugendliche sich bereits etwas aus und weiß genau
wonach er sucht, so ist sicherlich das Ranking nach Relevanz für
ihn sinnvoll. Wenn er seine Suchbegriffe gut gewählt hat, so erhält
er damit die besten Ergebnisse im Bezug der Dokumente auf
seine eingegebenen Begriffe.
Hat der Jugendliche hingegen nur eine wage Vorstellung von dem
wonach er sucht, so steht ihm mit dem Konfidenz-Ranking eine
Möglichkeit zur Verfügung, die besten Dokumente einer Klasse mit
diesen Begriffen einzusehen. Gleichermaßen geeignet ist auch
das Autoritäts-Ranking für den unerfahrenen Jugendlichen.
Hierbei erhält er die potentiell informativsten Inhalte, denn viele
andere Dokumente verweisen auf diese Dokumente.
Geht man davon aus, dass es viele weitere Personen gibt, die sich
für das gleiche Thema interessieren, so ist eine Bewertung nach
der Anzahl der Besuche der Dokumente ein subjektives Ranking.
Wenn viele andere Nutzer dieses Dokument besucht haben,
könnte es auch für unseren Jugendlichen interessant sein, denn
Dokumente die von vielen Personen besucht wurden sind
Seite 38 von 105
potentiell informative Dokumente. Wenn die Besucher der
Dokumente noch zusätzlich eine Bewertung für die Webseite
abgegeben haben, so kann der Jugendliche sich auch die
subjektiv informativsten Dokumente durch das BewertungsRanking an die oberste Position bringen lassen.
Das Aktualitä ts-Ranking bietet dem Jugendlichen die Sortierung
nach der Aktualität der Dokumente. Insbesondere bei der Suche
nach Informationen die sich erst innerhalb eines kurzen
Zeitraumes geändert haben, stellt dieses Ranking ein hilfreiches
Mittel dar, an aktuelle und nicht veraltete Dokumente zu gelangen.
Ein anschauliches Beispiel dafür ist die Änderung der
Berufsbezeichnungen im Handwerk. Sucht der Jugendliche
Dokumente mit Berufsbezeichnung, so erhält er meist veraltete
Dokumente, weil diese bei anderen Ranking -Methoden in der
Trefferliste weiter vorn liegen. Nur bei der Sortierung nach
Aktualität hat er überhaupt die Chance die neuesten Informationen
zu bekommen.
3.3.2 Der Administrationsbereich
Man unterscheidet bei den Administratoren zwei Typen von
Administratoren:
•
•
der einfache Portaladministrator, der über keine technische
Kenntnisse verfügt
der Systemadministrator, der Einblick in das System haben
muss, um systemspezifische Einstellungen zu ändern
Dementsprechend komfortabel oder einfach können auch die
Einstellungsmöglichkeiten gehalten werden.
Seite 39 von 105
3.3.2.1 Der Portaladministrationsbereich
Der Portaladministrator hat grundsätzlich die gleichen Optionen
wie der Anwender, damit er bei der Recherche oder Überprüfung
von Meldungen nicht ständig zwischen der Administration und der
normalen Suchmaschine wechseln muss. Zusätzlich hat er noch
die für Ihn wichtigen Menüpunkte in der GUI integriert, mit denen
er die Portaladministrationsarbeiten erfüllen kann.
Abbildung 3-12: Administrationsinterface des Portaladministrators
mit einfacher Suche
Wichtig war es hierbei, es dem technisch unerfahrenen
Administrator möglichst leicht zu machen, die verschiedenen
Einstellungen zu tätigen.
Genau wie auch der Nutzer, kann der Portaladministrator
ebenfalls die erweiterte Suche innerhalb der
Administratorbereiches benutzen.
Seite 40 von 105
Abbildung 3-13: Administrationsinterface des Portaladministrators
mit professioneller Suche
Der Portaladministrator kann folgenden Tätigkeiten ausführen:
•
•
•
•
•
•
•
•
•
•
von Nutzern vorgeschlagene URLs übernehmen
Meldungen über falsch kategorisierte URLs bearbeiten
Einstellen der Ausgabeanzahl der Dokumente auf den
Ergebnisseiten
Einstellen des Standardsortierverfahren
Statistische Informationen einsehen
Trainingsdokumente bearbeiten
Crawldokumente bearbeiten
Klassen bearbeiten
Externe Anfragen bearbeiten
Features einer Klasse bearbeiten
Wenn ein Nutzer des Portals eine gute Seite zu einem Thema
kennt, kann er diese dem Portaladministrator melden. Dabei wird
die URL in einer temporären Tabelle mit der vorgeschlagenen
Kategorie gespeichert. Der Portaladminstrator kann diese über
sein Interface frei schalten. Zusätzlich zum Melden einer neuen
URL kann der Nutzer aber auch ein falsch kategorisiertes
Dokument melden. Bei der Meldung kann er seinen eigenen
Kategorievorschlag mitteilen. Der Portaladministrator hat die
Seite 41 von 105
Möglichkeit diese Dokumente in die neue Kategorie einzuordnen,
oder aber auch die Meldung zu löschen.
Bei der Einstellung des Standardsortierverfahrens gibt der
Portaladministrator vor, welche Sortierung bei der einfachen
Suche benutzt werden soll. Ebenso kann der Administrator
einstellen, wie viele gefundene Dokumente bei der einfachen
Suche auf einer Seite dargestellt werden. Ansonsten gibt es
weitere Interfaces für die Arbeiten an dem Datenbestand der
Trainingsdokumente, Crawldokumente und der Ontologie. Bei den
Arbeiten in diesen Bereichen werden die Daten in der Datenbank
geändert und gespeichert. Das Bingo-System aktualisiert sich und
seine Funktionen an Hand der Daten der Datenbank.
3.3.2.2 Der Systemadministrationsbereich
Da der Systemadministrator nur technische Parameter variiert,
benötigt dieser keine grafisch aufwendige Oberfläche oder
Suchmöglichkeiten. Dementsprechend einfach und übersichtlich
werden die Parameter thematisch gruppiert auf einer Seite zur
Modifizierung angeboten.
Der Systemadministrator kann folgende Einstellungen treffen:
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
Benutzter Haup tspeicher
Hostname der Datenbank
Datenbankname
Benutzername der Datenbank
Passwort der Datenbank
Crawler starten/anhalten
Crawlermodus
Crawlertiefe
Recrawlintervall
Anzahl der maximalen Crawlerthreads
Klassifizierer starten/anhalten
Klassifizierungsart
Klassifizierungsgrad
DNS-Server
Maximale Größe eines Datentyps
Seite 42 von 105
Abbildung 3-14: Administrationsinterface des
Systemadministrators
Seite 43 von 105
4. Implementierung
4.1 Technische Daten
Das HIP wurde auf einem PC mit Intel 3.0 GHz installiert. Dieses
System verfügt über 2GB Hauptspeicher. Das eingesetzte
Betriebssystem ist Windows 2000 Server in Verbindung mit einer
MYSQL-Datenbank.
Zur Initialisierung der Ontologie wurden 10-15
Trainingsdokumente zu jedem Thema eingefügt. In der
Initialisierungsphase wird die Suche auf die Hosts der
Trainingsdokumente und eine maximale Tiefe von drei Ebenen
beschränkt. Nach dem Retraining wird der Crawler ohne weitere
Restriktionen gestartet.
Dabei kann der fokussierte Crawler bis zu 1000 parallele
Download-Prozesse mit anschließender Verarbeitung und
Klassifikation durchführen.
Pro Durchlauf werden innerhalb von zwölf Stunden etwa zehn
Millionen Webseiten besucht und ausgewertet. Dabei werden ca.
10000 positiv klassifizierte Dokumente in die Datenbasis
aufgenommen.
Die Auffrischung des HIP -Datenbestandes soll wöchentlich
erfolgen.
Seite 44 von 105
4.2 Die Initialisierungs-, Optimierungsphase
In der Initialisierungsphase galt es zunächst festzulegen, welche
übergreifende Bereiche für den Handwerksbetrieb oder den
handwerk interessierten Nutzer von Bedeutung sind. Dabei sollten
auf der obersten Ebene der Ontologie nur wenige Kategorien
bereitgestellt werden. Nach reiflicher Überlegung wurde von Hand
eine drei stufige Ontologie mit vier Hauptgruppen erstellt.
Die vier Hauptgruppen sind:
•
•
•
•
Beruf&Karriere
Berufe des Handwerks
Ihr Betrieb
Sonstige Dokumente
In dem Bereich „Beruf&Karriere“ sollen alle Dokumente zu den
Themen Aus- und Weiterbildung im Handwerk archiviert werden.
Wohingegen im Bereich „Berufe des Ha ndwerks“ alle Dokumente
eingeordnet werden sollen, die ein Bild der einzelnen
Handwerksberufe widerspiegeln. Unter der Rubrik „Ihr Betrieb“
sollen alle Informationen eingeordnet werden, die den laufenden
Betrieb betreffen. Darunter fallen Informationen, wie die
Betriebsgründung, Betriebsführung, Finanzen, Recht&Steuern,
Marketing aber auch das Thema „Computer&Internet in
Handwerksbetrieben“ und einiges mehr. In der Kategorie
„Sonstige Dokumente“ werden weitere handwerksrelevante
Dokumente abgelegt, die nicht in die anderen Kategorien
eingeordnet werden konnten.
Diese Hauptgruppen wurden zum Teil wieder in ca. sechs
Untergruppen eingeteilt. Dabei befanden sich in der dritten Stufe
der Hauptgruppe „Berufe des Handwerks“ ca. 96 weitere
Berufskategorien (nach der offiziellen Handwerksverordnung über
die Berufe des Handwerks). Für jede Kategorie gab es lediglich
ein bis drei Trainingsdokumente. Das Ergebnis der Klassifikation
im Anschluss des ersten Crawls war dabei eher unbefriedigend.
Dies war darin begründet, dass verschiedene Handwerksberufe
sehr nah verwandt waren und die Dokumente daher nur
unzureichend klassifiziert werden konnten. Im nächsten Schritt
wurden verwandte Berufe zu Berufsgruppen zusammengefasst.
Seite 45 von 105
Nach einem erneuten Crawl wurde deutlich, dass immer noch
einige Dokumente völlig falsch klassifiziert wurden. Die Analyse
der Features einer Klasse ergab, dass sich durch die geringe
Anzahl der Trainingsdokumente falsche oder nichts sagende
Terme unter den besten hundert Features einer Klasse befanden.
Es war klar zu erkennen, dass die besten Features die Klasse
nicht gut beschrieben, und es galt zu überlegen, wie diese
Features einer Klasse bereinigt werden könnten.
Die Selektion weiterer Trainingsdokumente von Hand lieferte ein
besseres Ergebnis, aber bei der Vielzahl der Unterkategorien, war
der personelle Aufwand gegenüber der Ergebnisverbesserung
nicht vertretbar.
Die Feature-Tabelle wurde um ein weiteres Flag „gut“-„schlecht“
erweitert und ein Interface ergänzt, mit dessen Hilfe alle Features
einer Klasse in absteigender Folge angesehen und von Hand
bewerten werden konnte n. Dies wurde für die zu Grunde liegende
Ontologie durchgeführt. Die manuelle Nachbearbeitung der
Features einer Klasse verbesserte die Qualität der Klassifizierung
erheblich.
Ein weiteres Problem bestand darin, dass die Startdokumente des
Crawlers sich zum Teil in einem „schlechten Umfeld“ befanden.
Einige Dokumente waren zwar sehr gute Dokumente, waren dafür
aber in einem Webbereich eingegliedert, der viele Informationen
über nicht handwerksrelevante Themen beinhaltete.
Es galt die Startdokumente zu kategorisieren, um unnötigen
Ballast und Crawl-Aufwand zu vermeiden. Es wurde ein weiteres
Flag in der Tabelle der Startdokumente eingefügt, die den Crawler
im Zusammenhang mit der einzelnen URL steuern sollte.
Die drei möglichen Flags haben folgende Bedeutung:
•
•
•
periodisch recrawlen
immer crawlen, aber nur in bestimmter Tiefe oder Breite
immer vollständig crawlen
Es gibt „Gute Dokumente in schlechtem Kontext“, die sich aber
nur selten ändern. Diese muss man nur periodisch besuchen, um
die Aktualität zu überprüfen. Es gibt aber auch „Gute Dokumente
Seite 46 von 105
in schlechtem Kontext“, die sich häufig ändern und evtl. auch gute
Links aufweisen. Ein Beispiel hierfür ist der handwerkliche
Wirtschaftsteil einer Online -Zeitung. Diese Dokumente müssen
immer gecrawlt werden.
Als letzte Möglichkeit gibt es auch gute Handwerksportale wie
handwerk.de, deren Inhalte sich ständig ändern. Diese Portale
müssen natürlich vollständig gecrawlt werden. Der Crawler wurde
dann gemäß dieser Tabelle in der Funktionsweise angepasst und
ein Webinterface zur Erstellung und Kategorisierung der
Startdokumente geschrieben. Verschiedene Portale wurden
zunächst einzeln gecrawlt und so der Dokumentenbasis
hinzugefügt.
Letztendlich verblieb immer noch das Problem der geringen
Anzahl an Startdokumenten. Daher fiel die Entscheidung , die
Crawlerbasis mit Hilfe der Ergebnisse guter „Suchmaschinen“ zu
verbessern. Wie schon zu Beginn durch die Analyse
verschiedener Suchmaschine n herausgefunden wurde, liefert
google.de bei „guten Anfragen“ auch sehr gute Ergebnisse. Daher
wurde die Datenbank um eine Tabelle „extern_search_keys“
erweitert.
Damit zukünftig auch Ergebnisse weiterer Systeme integriert
werden können, wurde diese Tabelle mit den Feldern „id“,
„provider“ und „search_keys “ angelegt.
Im Feld „provider“ wird die Identifikation des Systems eingetragen,
während das Feld „search_keys“ die gewünschte Anfrage
beinhaltet. Diese Tabelle wurde mit entsprechenden Queries
gefüllt. Es wurden (durch Herr Sizow) zu dem Bingo-System
entsprechende Suchmaschinenwrapper hinzugefügt, die die
Webservices der Suchmaschine über die Sprache WSDL (Web
Service Definition Language) abfragte n und die Ergebnisse in die
Startdatenbank einfügte n.
Auf diese Art und Weise wurden schnell eine große Anzahl guter
Dokumente in die Startdatenbank aufgenommen.
Da im „HIP“ auf großen Datenmengen gesucht wird, ist es wichtig,
bei den Suchanfragen die Queries zu optimieren. Daher wurden in
der Initialisierungs- und Optimierungsphase dynamisch nur die
wirklich benötigten Relationen als joins in die Queries
aufgenommen. In Folge dessen stellten sich die Queries in
Abhängigkeit von den gewählten Optionen völlig unterschiedlich
dar. Anhand der Analyse der Queries und den benötigten Zeiten
konnte dann durch Anlegen weiterer Indizes auch die Ausführung
Seite 47 von 105
der Queries noch einmal beschleunigt werden, wodurch zumeist
Suchzeiten unter einer Sekunde erreicht werden konnten.
4.3 Die Datenbank
Die Datenbank wurde zunächst gemäß den Anforderungen des
Bingo-Systems übernommen. Im Laufe der Entwicklung des HIP
wurde diese gemäß dem Bedarf modifiziert und neue Relationen
hinzugefügt. Da es Performance-Probleme mit der Datenbank gab
mussten die problematischen Queries analysiert und passende
Indizes angelegt werden um diese zu beschleunigen.
In der Datenbank befinden sich in der Relation start_urls sowohl
die Dokumente für den Crawler, als auch die Trainingsdokumente
der Klassen. In der Tabelle classes befindet sich die Ontologie des
Systems.
Es werden zwei Arten von Crawl-Dokumenten unterschieden:
•
•
einfache Crawldokumente als Startpunkt für unspezifische
Crawls
Crawldokumente, deren komplette Server gecrawlt werden
sollen
Auch bei den Trainingsdokumenten gibt es zwei Arten von
Trainingsdokumenten:
•
•
fest vorgegebene Trainingsdokumente
Trainingsdokumente, die durch automatisches Retraining
gefunden werden
Die Ontologie bildet einen hierarchischen Baum . In der
Kombination mit den fest vorgegebenen Trainingsdokumenten und
Crawldokumenten stellen diese Relationen die Startumgebung
des Bingo-Systems dar. Wie bereits zuvor erwähnt hängt die Güte
des HIP maßgeblich von der Güte der Inhalte dieser Relationen
ab.
Seite 48 von 105
4.3.1 ERM der wichtigsten Relationen:
Im Folgenden sind die wichtigsten Beziehungen zwischen den für
die Diplomarbeit relevanten Relationen dargestellt.
Abbildung 4-1: Auszug aus dem ERM des Systems
Die zentralen Relationen sind „crawldocuments“ und
„archivedocuments“. In der Relation „archivedocuments“ sind die
Ursprungs-Angaben über das archivierte Dokument enthalten und
die Relation „crawldocuments“ beinhaltet die Ranking- und Status Scores.
Das komplette Datenbankschema ist im Anhang D beschrieben.
Seite 49 von 105
5. Experimente
5.1 Websuche des HIP-Crawlers
Die Versuchsreihen des Crawlers mit den Zeiten 90 Minuten und
12 Stunden lieferte folgende Ergebnisse.
Laufzeit 90 Min.
Laufzeit 12 Std.
Besuchte URL´s
130.726
8.221.399
Besuchte Hosts
4.254
18.106
Links extrahiert
1.434.228
82.224.710
Positiv klassifiziert
12.711
216.091
Max. Crawlingtiefe
9
98
Tabelle 5-1: Ergebnisse der Versuchsreihen mit dem Crawler
Wie an Hand der Tabelle zu erkennen ist, steigt der Anteil der
positiv klassifizierten Dokumente nicht linear zu der Anzahl
besuchter URL´s. Innerhalb des Intervalls von 90 Minuten wurden
ca. 10% der besuchten Dokumente positiv klassifiziert. In dem
zwölf Stunden Intervall wurden hingegen nur noch ca. 3% der
Dokumente positiv klassifiziert.
Es gilt also nicht eine möglichst große Dokumentenmenge
sondern eine möglichst gute Dokumentenmenge zu indexieren
und diese optimal in die Ontologie einzuordnen. Wichtig ist es,
dem Nutzer eine gute Treffermenge nach seinen Eingaben und
gewählten Rankingverfahren zu liefern.
Nach dem der Crawler mehrere Millionen Dokumente fokussiert
gecrawlt und in die „HIP -Datenbank“ eingefügt hat, wurden die
folgenden Experimente durchgeführt.
Seite 50 von 105
5.2 Micro-, Macro-Scores des HIP
Um das HIP aus rein technischer Sicht mit den analysierten
Suchmaschinen und manuell gepflegten Ontologien zu
vergleichen werden zunächst die gleichen Anfragen wie in der
Abbildung 2-1 gestellt und anschließend die Micro- und MacroScores der Systeme berechnet und verglichen.
Suchbegriffe
E
HIP
G
P
25
18.401 14
handwerk berufe
25
555 0
müller lehre
25
6.249 2
müller ausbildung
25
89 9
handwerksorganisationen
25
17.773
3
handwerk meister
25
16.846 2
handwerk bafög
25
16.846 0
handwerk existenzgründung
25
358 1
innung müller
25
0 0
übernahme müllerei
25
256
1
müller verordnungen
0,128
Micro-Score:
0,0000165432386
Macro-Score:
Tabelle 5-2: Micro- und Macro-Scores der ursprünglichen
Versuchsreihe mit dem HIP
E = Anzahl der Dokumente auf der ersten Ergebnisseite
G = Anzahl gefundener Dokumente
P = Anzahl relevanter Dokumente auf der ersten Ergebnisseite
MicroScore
MacroScore
Altavista
0,05625
Lycos
0,26
Google
0,45
Yahoo
0,035
Wikipedia
0,00
HIP
0,128
0,0000023
0,0000044
0,000014
0,00686
0,00
0,000017
Tabelle 5-3: Vergleich der Micro-, Macro-Scores der Systeme
(gerundet)
Es ist zu erkennen, dass sich das Hip im Micro-Score mit den
großen Suchmaschinen messen kann und im Macro-Score besser
als alle Suchmaschinen ist und den von Hand gepflegten
Systemen näher kommt.
Seite 51 von 105
Der Micro-Score gibt an, wie hoch das Verhältnisses der
relevanten Dokumente zu den irrerelevanten Dokumenten im
durchschnitt ist. Beim Hip befinden sich also annähernd so viele
relevante Dokumente auf der ersten Seite, wie bei den großen
Suchmaschinen. Darüber hinaus zeigt der Macro-Score wie hoch
das Verhältnis der relevanten Dokumente auf der ersten
Ergebnisseite zu der Anzahl der gefundenen Dokumenten ist. Der
Macro-Score des Hip kommt also nah an die manuell gepflegten
Systeme heran, obwohl keine Dokumente manuell eingepflegt
werden, sondern nur die Features der Klassen bearbeitet werden.
Dieses Ergebnis lässt sich durch weitere Retrainings und
manuelle Bearbeitungen der Features aller Klassen noch weiter
verbessern.
Das System kann also wie erwartet die Lücke zwischen den
großen Suchmaschinen mit automatisierten Crawlern und den
manuell gepflegten redaktionellen Systemen schließen. Es bietet
eine geringere, aber dafür bessere Treffermenge als die
herkömmlichen Suchmaschinen, benötigt aber im Vergleich zu
den manuell gepflegten anderen Systemen nur geringen
manuellen Pflege-Aufwand.
Seite 52 von 105
5.3 Gütevergleich google.de – HIP anhand ausgewählter
Queries
Die Micro-, und Macro-Scores sind technische Mittel um einen
Vergleich zwischen verschiedenen Systemen zu ermöglichen.
Darüber hinaus entscheidet aber letztendlich der Nutzer an Hand
seiner Präferenzen, wie gut ein System ist.
Daher wird noch ein direkter Vergleich zwischen den Ergebnissen
ausgewählter Queries bei google.de und dem HIP exemplarisch
dargestellt.
5.3.1 Key-Words: erhalt meister
Da das aktuelle Thema des Ha ndwerks die Abschaffung des
Meisters in verschiedenen Bereichen ist, sollten aktuelle
Informationen dazu gefunden werden. Das Ergebnis der Anfrage
an google .de liefert folgende Ergebnisse:
Abbildung 5-1: Ergebnis der google-Suche nach „erhalt meister“
Seite 53 von 105
Es ist unschwer zu erkennen, dass google.de auf der ersten Seite
keinen einzigen guten Treffer liefert.
Zum Vergleich wurde die gleiche Anfrage an das „HIP“ gestellt,
welches folgende Ergebnisse lieferte:
Abbildung 5-2: Ergebnis der HIP -Suche nach „erhalt meister“
Es ist klar zu erkennen, dass das „HIP“ bereits auf der ersten
Seite mehrere „Gute Dokumente“ zu dem Thema „erhalt
meisterbrief“ liefert.
Die Ergebnisse des „HIP“ waren besser, weil nach dem Kriterium
Aktualität sortieren wurde. Dies ist bei google.de nicht möglich und
unterscheidet das HIP maßgeblich von anderen Suchmaschinen.
Seite 54 von 105
5.3.2 Key-Words: erhalt meister handwerk
In einem weiteren Schritt wurde überprüft, ob das schlechte
Ergebnis von google.de nur auf dem fehlenden Kontext des
Handwerks beruhte. Dazu wurde der Kontext handwerk in der
Suchanfrage ergänzt, was zu folgenden Ergebnissen führte:
Abbildung 5-3: Ergebnis der google-Suche nach „erhalt meister
handwerk“
Auch hier ist zu erkennen, dass google.de auch im Kontext des
Handwerks keine guten Treffer auf der ersten Seite lieferte. Dies
lag wahrscheinlich an der Aktualität des Themas. Entweder hatte
google.de die aktuellen Seiten noch nicht gecrawlt, oder aber das
Bewertungsschema bevorzugte andere Seiten, da die neuen
Seiten noch nicht oft besucht oder verlinkt wurden.
Seite 55 von 105
5.3.3 Key-Words: beruf müller
Bei der Suche nach Informationen zu dem Beruf „Müller“ lieferte
google.de folgende Dokumente:
Abbildung 5-4: Ergebnis der google-Suche nach „beruf müller“
Anhand der URL´s ist auch hier ersichtlich, dass kein gutes
Dokument auf der ersten Seite angezeigt wird. Dies ist auf den
fehlenden Kontext des Handwerks und die Doppeldeutigkeit des
Terms „Müller“ zurückzuführen, da Müller auch ein gängiger
Familienname ist.
Seite 56 von 105
Das „HIP“ lieferte bei der gleichen Anfrage folgende Ergebnisse:
Abbildung 5-5: Ergebnis der HIP -Suche nach „beruf müller“
Es werden auch hier mit der bestehenden Datenbasis zu diesem
Zeitpunkt keine Dokumente mit dem „Beruf Müller“ gefunden, aber
das System führt den Nutzer immerhin noch zu Webseiten, die
sich mit dem Thema der Berufe beschäftigt. Das Ergebnis ist also
dennoch besser zu bewerten, als das Ergebnis von google.de.
Seite 57 von 105
5.3.4 Zusammenfassung
Wie bereits vor Beginn der Erstellung des „HIP“ analysiert wurde,
liegen die Stärken des HIP in dem automatischen Kontext des
Handwerkes und dem fokussierten Crawler, der nur Webseiten zu
den vorhandenen Themen in die Datenbank aufnimmt.
Dadurch können auch Doppeldeutigkeiten von Termen reduziert
werden, da die Terme im Kontext zum Handwerk stehen.
Durch die verschiedenen Möglichkeiten der Sortierung der
Ergebnisse erzielt man einen weiteren großen Vorteil gegenüber
anderen Suchmaschinen.
5.3 Lastprofile der HIP-Suchmaschine
Es wurden Tests bezüglich der Last und der Antwortzeiten der
Suchmaschine durchgeführt. Zuerst wurden die Antwortzeiten
einzelner Anfragen mit unterschiedlichen Ranking -Kriterien
gemessen:
Suchebgriffe
Verknüpfung
Rank
Ergebniszahl
ausbildungsverordnung
lehrling
handwerkskammer saarland
angebot
ausbildungsverordnung
lehrling
handwerkskammer saarland
angebot
ausbildungsverordnung
lehrling
handwerkskammer saarland
angebot
ausbildungsverordnung
lehrling
handwerkskammer saarland
angebot
oder
AuthScore
195
Antwortzeit
(ms)
927
oder
AuthScore
23767
12283
oder
Lastmod
195
6
oder
Lastmod
23767
3726
und
AuthScore
3
2
und
AuthScore
14
686
und
Lastmod
3
2
und
Lastmod
14
752
Tabelle 5-4: Auszug aus der Versuchs -Tabelle zu den
Antwortzeiten des HIP
Seite 58 von 105
Anschließend wurden unterschiedliche Anfragen an die
Suchmaschine in Form paralleler Threads ausgeführt.
Anfragen
parallel
Anz.
Suchbegriffe
Anz.
Treffer
Antwortzeit
Max (ms)
Antwortzeit
Min (ms)
Antwortzeit
Avg (ms)
1
1
15508
15250
47
170
1
3
22492
16984
78
330
5
1
16185
110547
78
738
5
3
10798
248984
78
1527
5
6
19876
303891
219
4575
10
1
14053
298781
93
1319
10
3
11924
290718
422
3886
Tabelle 5-5: Auszug aus der Versuchs -Tabelle zu Antwortzeiten
mit parallelen Threads
Es ist ersichtlich, dass die Antwortzeiten der mysql Datenbank mit
der Anzahl der parallelen Anfragen in Kombination mit der Anzahl
der Suchbegriffe steigen. Die Suchmaschine sollte daher schon
bei der Eingabe weniger Suchbegriffe gute Treffer liefern, damit
die Gesamtantwortzeiten gering gehalten werden.
Seite 59 von 105
6. Weitere aufgetretene Schwierigkeiten
6.1 Timeouts
Durch die Extraktion aller wichtigen Terme inkl. der
entsprechenden Positionen der Terme innerhalb des Dokumentes
kommt es schon bei wenigen Dokumenten zu einer extrem großen
Termmenge. (Bei 217 Dokumenten waren ca. 110932 Terme in
der Term-Tabelle eingetragen). Dadurch kam es insbesondere bei
der Teilstring-Suche mit der logischen Und-Verknüpfung der
Suchbegriffe zu Timeouts der Datenbank, weil ein Self-Join über
die Anzahl dieser Suchbegriffe notwendig war.
Zusätzlich griffen durch die Teilstringsuche die Indizes der
Datenbank nicht mehr. Ein noch größeres Problem wurde durch
die „Nicht-Suchbegriffe“ erzeugt. Denn um die Nicht-Suchbegriffe
in die Query aufzunehmen hätte man einen Self-Join der
Termtabelle über die Anzahl aller Terme eines einzelnen
Dokumentes tätigen müssen. Da bei großen Dokumenten aber
auch große Termmengen vorhanden sind, hatten diese Self-Joins
schnell die Ressourcen gesprengt. Dieses Problem wurde gelöst,
indem zunächst die gültigen Dokumente mit den entsprechenden
Suchbegriffen selektiert wurden. Im Anschluss daran wurde alle
Dokumente selektiert, die die Nichtsuchbegriffe beinhalteten und
dann die Differenz der entsprechenden Dokumentenmengen
gebildet.
6.2 Garbage-Collection
Im Zuge der Realisierung der eingeschränkten Suche
(Fortgesetzte Suche auf bereits gefundenen Ergebnissen) mit
Zwischenspeicherung von Ergebnissen oder Suchanfragen
bestand die Gefahr des Garbage-Collection bei fehlerhaften
Ausführungen. Von der Speicherung vorhandener Suchergebnisse
oder der auszuführenden Queries in der Datenbank wurde daher
abgesehen. Stattdessen wurde die eingeschränkte Suche durch
Weitergabe der vorherigen Suchbegriffe und anschließender
Kombination mit den neuen Suchbegriffen realisiert.
Das mehrfache Absenden gleicher Queries konnte ebenfalls
sowohl serverseitig über die Speicherung der Session-IDs und
zugehöriger Queries abgefangen werden, als auch über ein
Seite 60 von 105
clientseitiges Javascript welches das mehrfache Betätigen des
Absenden-Buttons ohne Query-Veränderungen abfängt. Wegen
der Gefahr der Garbage-Collection wurde diese Option in der
Javascript-Variante implementiert.
Ein zusätzlicher Vorteil durch die gewählte Realisierungsart dieser
Optionen besteht in der Reduzierung der Datenbanklast.
6.3 Dateninkonsistenzen durch neue Crawls
Da ein Crawl zusammen mit den anfallenden Berechnungen einen
Zeitraum von 10-15 Stunden umfassen kann besteht die Gefahr
von Inkonsistenzen in der Originaldatenbank. Ebenso könnte ein
„fehlerhafter Crawl“ die Datenbestände vernichten. Um dies
auszuschließen wurde eine zweite Datenbank-Instanz für den
Crawler angelegt, die nach Beendigung aller Vorgänge in die
Original-Datenbank überführt wird. Dabei wird vor Einspielen der
neuen Daten eine Sicherung des alten Datenbestandes erstellt.
Seite 61 von 105
7. Zusammenfassung und Ausblick
State of the Art sind manuell gepflegte oder crawlende,
automatisch klassifizierende Suchmaschine n. Da die manuelle
Pflege sehr zeitaufwendig und die automatische Klassifizierung
kontextinsensitiv sind, liefern diese insbesondere bei der Suche
nach spezifischen Informationen durch unerfahrene Benutzer
meist schlechte oder eine nicht ausreichende Anzahl Ergebnisse.
Die Idee der Diplomarbeit besteht in der Erstellung eines
fokussierten Crawlers in Kombination mit einer intelligenten
Suchmaschine. Hierbei steht insbesondere die auf das Thema
Handwerk bezogene Suche releva nter Dokumenten und die
optimale Darstellung der gefundenen Ergebnisse einer Suche
nach verschiedenen Ranking-Möglichkeiten im Mittelpunkt.
Dadurch gelingt es verschiedene Sichtweisen auf die gefundenen
Dokumente einer Suchanfrage zu realisieren und den Ansprüchen
verschiedener Nutzer gerecht zu werden. Konkret wurden diese
Ansätze der Diplomarbeit in dem Pilotprojekt „HIP“ (Handwerker
Informations Portal) realisiert.
Das Framework des HIP besteht aus einem „fokussierten Crawler“
(Bingo-System), einer mysql-Datenbank, einer professionellen
Suchmaschine mit verschiedenen Optionen und Rankingmöglichkeiten, sowie den web basierten Administrationsbereichen.
Der thematisch fokussierte Crawler nimmt an Hand vorhandener
Trainingsdokumente thematisch positiv klassifizierte Dokumente in
die Datenbasis auf. Dadurch fließt automatisch das fokussierte
Thema als Kontext in die Anfragen der Suchmaschine ein.
Die Suchmaschine bietet eine einfache Suche für unerfahrene
Benutzer und ein professionelles Interface für erfahrene Benutzer
an. Durch den einfließenden Kontext des fokussierten Themas
liefert bereits die einfache Suche „gute“ Ergebnisse. Die
professionelle Suche bietet mit den verschiedenen logischen
Verknüpfungen, die Einschränkung auf verschieden
Dokumenttypen sowie den diversen Rankingmöglichkeiten ein
optimales Werkzeug für die Suche auf den Datenbeständen.
Insbesondere lassen sich zu den bereits vielfältigen RankingMöglichkeiten leicht weitere kombinierte Rankingmöglichkeiten
erstellen. Dadurch lässt sich dieses System leicht an weitere
Anforderungen anpassen.
Seite 62 von 105
Geplant ist es zukünftig die Präzision der Expertensuche zu
verbessern und alternative Verfahren für das automatische
Clustering und autonomes Generieren von neuen
Kategorievorschlägen hinzuzufügen.
Des Weiteren werden die bestehenden Funktionen analysiert und
überarbeitet, um die Antwortzeiten bei Suchanfragen zu
optimieren.
Da die Tabelle Terms jeden Term eines Dokumentes mit seiner
Position innerhalb des Dokumentes abspeichert kommt es vor
dass ein Term eines Dokumentes mehrfach eingetragen ist.
Die Größe dieser Tabelle wäre durch Duplikatelimination zu
reduzieren. Alternativ könnte man den „porter-Stemmer“ für php
erstellen und die Termsuche über die Dokumentfeatures statt über
die Term-Relation laufen lassen.
Eventuell wird das „HIP“ auch von der langsamen beschränkten
mysql-Datenbank auf eine Oracle-Datenbank umgestellt und
einzelne Programmteile in die Oracledatenbank integriert.
So ließe sich der java-Porter-Steammer in der Oracle -Datenbank
integrieren.
Die in dem HIP angewandten Technologien kann man zur
Erstellung beliebiger Themen bezogener Informationsportale
verwenden. Besonders gut geeignet ist das System für sehr
spezifische Bereiche, die spezielle n Fachjargon beinhalten.
Daher wird in Betracht gezogen diese Technologie für weitere
bundesweite Informationsportale einzusetzen.
Seite 63 von 105
8. Anhang A (Pflichtenheft - Funktionalitäten von HIP)
Zur Vereinfachung und Gruppierung der Funktionalitäten wurden
alle User des Systems in drei Gruppen eingeteilt:
a) Die Handwerker
Diese stellen die primäre Klientel als Anwender des Systems
dar. Es wird vorausgesetzt, dass diese zumeist unerfahren sind
und möglichst wenig an direkten Optionen zur Verfügung
haben.
b) Der Portaladministrator
Dieser soll leichte administrative Aufgaben ausführen, ohne
besondere systemspezifische Kenntnisse besitzen zu müssen
c) Der Systemadministrator
Dieser Administrator muss tiefer gehende Kenntnisse des
Gesamtsystems besitzen, da er die Möglichkeit besitzt viele
systeminterne Parameter zu kalibrieren.
Nach der Bestimmung aller beteiligten Gruppen, wurden nach
Absprache mit den entscheidenden Personen folgender
Funktionsumfang für die einzelnen Gruppen festgelegt.
8.1 Aktivitäten für den Handwerker (Benutzer)
Die Aktivitäten der User (Benutzer) liegen in den folgenden
Bereichen:
a) Suchmöglichkeiten innerhalb der Dokumentdatenbank
b) Mitteilungsmöglichkeiten (Neue URL, falsche URL, ...)
c) Bewertungsmöglichkeiten
Seite 64 von 105
8.1.1 Suchen
Es sollen generell zwei Möglichkeiten bestehen, sich in der
Suchmaschine zu bewegen. Zum einen soll es wie in den
Katalogsystemen möglich sein, in den Kategorien zu blättern und
zu stöbern, zum anderen soll es auch möglich sein, direkt zu
suchen und diese Suche auch weiter einzuschränken, bzw.
ähnliche Seiten zu finden. Der Katalog muss dabei dynamisch aus
der Datenbank generiert werden.
Die Suche soll zwei geteilt realisiert werden. Auf der Startseite soll
sich immer ein einzelnes Suchfeld befinden. Unter einem
speziellen Unterpunkt kann die Profisuche für erfahrene Benutzer
angeboten werden.
Anforderungen:
-
Baumartige Struktur zum Blättern nach Themen (Katalog)
Soll dynamisch erzeugt werden, ohne unnötige Serverlast zu
erzeugen
-
Suchfunktionen:
i) Einfache Suche:
Eingabefeld für mehrere Suchbegriffe, getrennt d urch
Leerzeichen.
Zusätzlich wählbar: Suche im aktuellen Teilbaum, oder auf
bereits gefundenen Ergebnissen
ii) Profisuche:
Eingabefeld für Suchbegriffe
Selektionsfeld: „Und/Oder“
Eingabefeld für nichtenthaltene Suchbegriffe
Zusätzlich wählbar:
Suche im Teilbaum
iii) ähnliche Seiten:
Bei gefundenen Seiten soll ein Button „ähnliche Seiten
finden“ verfügbar sein, der Seiten mit ähnlichem Inhalt
fndet.
Seite 65 von 105
8.1.2 Mitteilen relevanter URL´s
Dem Handwerker muss eine Möglichkeit geschaffen werden, für
Ihn subjektiv wichtige URL´s zu melden. Diese sollte dem
Portaladministrator vorgelegt werden, der entscheiden kann, was
mit der URL geschehen soll.
Anforderungen:
-
Melden von URL´s in einem bestimmten Katalogkontext
Der Handwerker muss wie in anderen Katalogsystemen, die
Möglichkeit haben, sich durch den Katalog zu bewegen.
Gelangt er in eine n Bereich des Kataloges, in dem er eine
Seite anmelden will, so muss er dort kontextbezogen seine
URL an den Portaladministrator übermitteln können.
Er muss eine Bestätigung der Aktion erhalten und der Eintrag
soll in eine temporäre Datenbank geschrieben werden, die
periodisch von dem Portaladministrator abgearbeitet werden
muß.
-
Melden von URL`s ohne Kontext
Äquivalent zum vorherigen Verfahren, sollte der Handwerker
auch eine URL melden können, ohne diese selbst zu
klassifizieren.
Dabei soll das System automatisch eine Klassifizierung
vorschlagen, um dem Portaladministrator die Arbeit zu
erleichtern.
Seite 66 von 105
8.1.3 Bewerten von URL´s durch den Handwerker
Der Handwerker muss die Möglichkeit haben, aktiv in das
Bewertungsschema einzugreifen, um die Güte der Ergebnisse
subjektiv zu verbessern. Dazu muss er zum einen melden können,
wenn eine URL falsch klassifiziert wurde, zum anderen muss er
aber auch eine Bewertung zu einer Seite abgeben können.
Anforderungen:
-
Melden falsch zugeordneter URL´s
Wenn ein Benutzer in dem Katalog blättert, muss er die
Möglichkeit bekommen, bestimmte URL´s melden zu kann,
wenn diese nach seiner Meinung nicht an dieser Stelle in den
Katalog gehören. Dazu muss er optional aus dem Katalog
einen Pfad auswählen können, der ihm sinnvoll erscheint.
Diese Meldung muss in einer temporären Datenbank
gespeichert werden und dem Portaladministrator vorgelegt
werden.
-
Bewerten einer URL bzgl. des Themas
Generell gibt es zwei Möglichkeiten der Bewertung durch den
Handwerker:
i) indirekte Bewertung durch das Anklicken eines Links
Bei dieser Methode wird ein interner Zähler pro Dokument
in der Datenbank geführt (clicks). Mit dieser Methode kann
man statistische Daten sammeln, ohne den User zu einer
Aktivität zu zwingen. Dabei geht man davon aus, dass
Seiten, die öfter angewählt werden auch von besserer Güte
sind.
ii) Direkte Bewertungsmöglichkeit
Wenn der Handwerker eine Seite anklickt und diese für gut
oder schlecht befindet, soll er diese Wertung mitteilen
können. Dies ist realisierbar, indem man entweder die
angeklickte Seite in einem geteilten Frame darstellen lässt,
wobei z.B. in einem schmalen oberen Streifen die
Bewertung stattfinden könnte, oder aber ein Popupfenster
geöffnet wird, indem die Bewertung abgegeben werden
kann.
Seite 67 von 105
8.2 Aktivitäten des Portaladministrators
Der Portaladministrator soll in der Lage sein systemunspezifische
administrative Einstellungen und Arbeiten zu tätigen:
a) Hinzufügen/Suchen/Löschen von URL´s in der
Crawlerdatenbank
Der Portaladministrator muss neue Dokumente in die
Grunddatenbank des Crawlers einfügen, bestehende URL´s
suchen und löschen können. Dies muss über ein einfach zu
bedienendes Interface realisiert werden.
b) Hinzufügen/Suchen/Löschen von URL´s in der URLDatenbank
Äquivalent zum Punkt a) muss der Portaladministrator die
gleichen Möglichkeiten haben, um URL´s in die URLDatenbank einzutragen, zu suchen und löschen zu können.
Zusätzlich muss aber hier auch die Möglichkeit bestehen,
einzelne URL´s anderen Kategorien zuordnen zu können, falls
diese falsch klassifiziert wurden.
b) Freischalten von Dokumenten die fehlerhaft gemeldet
wurden
Der Portaladministrator muss die falsch zugeordneten
Dokumente sichten können und mit einem bestimmten Pfad
freischalten können.
c) Freischalten/Löschen vom User gemeldeter URL´s
Der Portaladministrator muss vom User gemeldete URL´s
sichten, mit einem bestimmten Pfad freischalten oder auch
gänzlich löschen können.
Dabei muss Ihm entweder der Kategorievorschlag des Users
oder falls nicht vorhanden ein Kategorievorschlag durch den
Classifier unterbreitet werden. Dieser kann er dann akzeptieren
oder selbst einen Pfad auswählen.
f) Testen der Url´s beim Darstellen aktivieren/deaktivieren
Der Portaladministrator sollte die Möglichkeit haben, eine
Einstellung zu tätigen, ob vor dem Darstellen einer URL als
Suchergebnis, diese auf Existenz getestet werden soll.
Seite 68 von 105
g) Aktivieren des Crawlers
Weiterhin muss der Portaladministrator den Crawler aktivieren
können.
h) Aktivieren des Klassifiers
Äquivalent zum Crawler, muss der Portaladministrator auch im
Stande sein, die Klassifizierung erneut anzuwerfen.
i) Ergänzende Einstellungen der Suchfunktion des
Handwerkers
Zu den für den Handwerker sichtbaren Einstellungen der
Suche, muss der Portaladministrator noch weitere Parameter
einstellen können.
Zu diesen „unsichtbaren Einstellungen“ gehören:
•
•
Wieviele Ergebnisse sollen als Standard auf eine Seite
dargestellt werden ?
Sollen URL´s auf Existenz geprüft werden, bevor sie
dargestellt werden?
Seite 69 von 105
8.3 Aktivitäten des erfahrenen Systemadministrators
Es muss einem erfahrenen Systemadministrator möglich sein,
diverse Parameter des Systems einstellen zu können. Dabei kann
man die folgenden Bereiche unterscheiden:
a) Einstellen der Hardwareoptionen
Der erfahrene Systemadministrator muss das System gemäß
der vorhandenen Hardwaregegebenheiten konfigurieren
können
-
verfügbarer Arbeitsspeicher
verfügbarer Plattenspeicher
b) Einstellen der Datenbankoptionen
Es muss dem Systemadministrator auch möglich sein, die
Datenbank -Daten anzupassen, wenn ein Wechsel des
Datenbankservers stattfindet.
-
Hostname
Datenbankname
Username
Passwort
c) Einstellen der Crawleroptionen
Diverse Crawleroption sollten hier ebenfalls konfigurierbar sein:
-
Wahl Depth / Breadth Crawlen
Maximale Tiefe
Maximale Crawler Roots pro Klasse
Wann soll eine bereits gecrawlte Adresse neu gecrawlt
werden
Wieviele Threads maximal
Welcher Timeout soll benutzt werden
d) Einstellen der Klassifieroptionen
Aquivalent zur vorherigen Option, muß der Systemadmin auch
den Klassifier konfigurieren können
-
Maximale Trainingsdokumente pro Klasse
Wähle Featuregewichtung (TF max[TF])*(log1+IDF) ....
Wann wird ein Dokument verworfen
Seite 70 von 105
e) Sicherung der Datenbank als Dumpschema oder auch als
Datenbankdateien und Zwischenspeichern auf einer
zusätzlichen Platte
Da sich im Laufe der Zeit große Datenmengen mit wichtigen
statistischen Daten ansammeln können, sollte der
Administrator diese Daten auch sichern können. Dazu geeignet
wäre ein Dumpschema der Datenbereiche, oder auch das
Sichern der eigentlichen Datenbankdateien auf einem zweiten
Medium.
f) Sonstige Einstellungsmöglichkeiten
Folgende weitere Einstellungen sollten von dem
Systemadministrator eingestellt werden können
-
Wieviele Zeichen der URL als Übersichtstext in der
Datenbank gespeichert werden sollen
Maximale Größe der Datentypen, die durchsucht werden
dürfen
Welcher DNS-Server soll benutzt werden
8.4 Schlußbemerkung zur Systemadministration:
Der Suchmaschinenwrapper muss als eigenes Modul generiert
werden, da dieses evtl. häufiger ausgetauscht werden muss.
Dieser Austausch muss durch reines physikalisches Ersetzen des
Moduls geschehen und darf keine Auswirkung auf die
Funktionalität des Systems haben. Daher müssen die
zurückgegebenen Parameter stets gleichförmig bleiben.
Seite 71 von 105
9. Anhang B (Spezifizierung der Funktionen der Diplomarbeit)
Nach der Erstellung das Pflichtenheft und der Entscheidung für
das System Bingo als Grundlage, galt es, alle Funktionen
bereitzustellen, damit eine GUI programmiert werden konnte, ohne
auf die Datenbank oder Bingo direkt zugreifen zu müssen. Dazu
mussten zunächst die benötigten Funktionen in den
verschiedenen Bereichen gefunden und definiert werden.
Dies führte zu folgendem Ergebnis:
9.1 Benötigte Funktionen für den Bereich der Benutzer
function get_classes_for_path($path)
function get_class_for_ID($Class_ID)
function get_docs_for_path($path,$order)
function get_doc_for_id($id)
function get_class_id_for_doc_id($id)
function
get_docs_for_simple_search($search_string,$order,$path,$sessionid)
function
get_docs_for_limited_simple_search($search_string,$sessionid)
function delete temp_query($sessionid)
function get_docs_for_professional_search($search_string1,$bool1,
$search_string2, $order,$path)
function insert_user_doc_to_katalog($url,$Class_ID)
function insert_user_doc($url)
function insert_user_doc_error($id,$ Prop_Class_ID)
function insert_click_evaluation($id)
function insert_user_doc_evaluation($id,$type)
function get_authscore_for_id($id)
function get_clicks_for_id($id)
function get_evaluation_for_id($id)
9.2 Benötigte Funktionen für den Bereich des
Portaladministrators
function search_crawler_doc($url)
function get_crawler_doc_id($url)
function delete_crawler_doc($id)
function add_crawler_doc($url)
function search_docs($url)
function search_abc($url)
function get_doc_id($url)
Seite 72 von 105
function delete_doc($id)
function add_doc($url)
function get_error_urls()
function get_error_url_info($Temp_ID)
function get_new_urls()
function get_new_url_info($Temp_ID)
function activate_new_url($id,$path)
function delete_temp_url($Temp_ID)
function classify_url($url)
function get_url_test_mode()
function set_url_test_mode($type)
function test_url($url)
function activate_crawler()
function activate_classifier()
function change_class_for_id($id,$path)
function get_user_search_mode()
function set_user_search_mode($type)
function get_number_search_results()
function set_number_search_results($amount)
9.3 Benötigte Funktionen für den Bereich des erfahrenen
Systemadministrators
function get_usable_memory()
function set_usable_memory($amount)
function get_usable_harddisk()
function set_usable_harddisk($amount)
function get_db_hostname()
function set_db_hostname($hostname)
function get_db_name()
function set_db_name($dbname)
function get_db_username()
function set_db_username($dbuser)
function get_db_password()
function set_db_password($dbpassword)
function get_crawler_mode()
function set_crawler_mode($mode)
function get_crawler_maxdepth($depth)
function set_crawler_maxdepth($depth)
function get_crawler_maxroot_class()
function set_crawler_maxroot_class($number)
function get_crawler_doc_recrawl_time()
function set_crawler_doc_recrawl_time($day)
function get_crawler_maxthreats()
function set_crawler_maxthreats($threats)
function get_classifier_maxtraindocs_class()
function set_classifier_maxtraindocs_class($traindocs)
Seite 73 von 105
function get_classifier_feature_mode()
function set_classifier_feature_mode($mode)
function get_classifier_drop_mode()
function set_classifier_drop_mode($mode)
function get_doc_summary_amount()
function set_doc_summary_amount($amount)
function get_doc_types()
function get_doc_type_max_size($mime)
function set_doc_type_max_size($mime,$max_size)
function get_dns_server()
function set_dns_server($url)
Die komplette API-Refrenz befindet sich im Anhang C.
Seite 74 von 105
10. Anhang C (API-Dokumentation)
function get_classes_for_path($path)
Beschreibung:
Funktion zur Rückgabe der ID´s aller Unteräste eines bestimmten Astes
Benötigte Parameter:
• Klassenpfad des aktuellen Astes
Rückgabewerte:
• 0, wenn kein Ergebnis gefunden wurde
• Array, wenn Ergebnis gefunden wurde
Im übergebenen Array werden die Class_ID´s der gefundenen Äste
gespeichert
function get_class_for_ID($Class_ID)
Beschreibung:
Funktion zur Rückgabe des Klassennamens einer bestimmten Class_ID
Benötigte Parameter:
• Class_ID
Rückgabewerte:
• 0, wenn kein Ergebnis gefunden werden konnte
• Name der Klasse, falls Ergebnis gefunden wurde
function get_docs_for_path($path,$order)
Beschreibung:
Funktion zur Rückgabe der ID´s aller Dokumente, die in einem bestimmten Ast
als Blätter eingetragen sind
Benötigte Parameter:
• Klassenpfad des aktuellen Astes
• Ordnungskriterium
Das Ordnungskriterium wird wie folgt definiert:
0 alphabetisch
1 AuthScore (Anzahl der Seiten die hierauf verweisen)
2 SvmScore (Klassifizierungsgüte)
3 Klicks
4 User-Bewertungen
Rückgabewerte:
• 0, falls keine Ergebnisse gefunden wurden
• Array, falls Ergebnisse gefunden wurden
In dem übergebenen Array werden die ID´s der im Ast gefundenen
Dokumente gespeichert
Seite 75 von 105
function get_doc_for_id($id)
Beschreibung:
Funktion zur Rückgabe der Daten eines Dokumentes mit bestimmter ID
Benötigte Parameter:
• ID des Dokumentes
Rückgabewerte:
• 0, falls kein Ergebnis gefunden werden konnte
• Array, falls Ergebnis gefunden wurde
Im ersten Feld des Arrays wird die „URL“ abgespeichert und im zweiten
Feld das „summary“
function get_class_id_for_doc_id($ID)
Beschreibung:
Funktion zur Rückgabe der Class-ID zu einer zugehörigen Doc-ID
Benötigte Parameter:
• ID des Dokumentes
Rückgabewerte:
• 0, falls kein Ergebnis gefunden werden konnte
• Class-ID, falls gefunden
function delete temp_query($sessionid)
Beschreibung: Funktion um gespeicherte temporäre Queries eines Users zu
löschen
Benötigte Parameter:
• Sessionid des Users dessen temporäre Query gelöscht werden kann
Rückgabewerte:
• 1, falls Löschen erfolgreich
Seite 76 von 105
function get_docs_for_professional_search
($search_string1,$bool1, $search_string2,$order,$path)
Beschreibung:
Funktion zur Rückgabe der ID´s aller Dokumente, die bestimmte Suchbegriffe
enthalten und andere Suchbegriffe nicht enthalten. Dabei kann bei den
enthaltenen Suchbegriffen die boolsche Operationen „alle“ (and) oder „eins“ (or)
selektiert werden.
Benötigte Parameter:
• Suchstring1 für enthaltene Begriffe
• Boolsche Operation auf den enthaltenen Suchbegriffe:
0 alle Begriffe müssen enthalten sein
1 einer der Begriffe muß enthalten sein
• Suchstring2 für nichtenthaltene Begriffe
• Ordnungskriterium
Das Ordnungskriterium wird wie folgt definiert:
0 alphabetisch
1 AuthScore (Seiten die hierauf verweisen)
2 Klicks
3 POSevaluation
SvmScore und User-Bewertung machen bei kontextfreier Suche keinen
Sinn
• Pfad des Unterbaumes in dem gesucht werden soll
Soll die Suche nicht auf einen Teilbereich eingeschränkt werden, so soll
hier einfach „/root“ übergeben werden.
Rückgabewerte:
• 0, falls kein Ergebnis gefunden werden konnte
• Array, falls Ergebnisse gefunden wurde
In dem übergebenen Array werden die ID´s der gefundenen Dokumente
gespeichert.
Seite 77 von 105
function insert_user_doc_to_katalog($url,$Class_ID)
Beschreibung:
Funktion zum Katalog bezogenen Eintragen einer URL eines Users in die
temporäre Datenbank. Diese wird dem Portaladministrator innerhalb des
Kataloges zur Freischaltung angeboten.
Benötigte Parameter:
• URL des Dokumentes
• Pfad des Unterbaumes in den die URL eingeordnet werden soll.
Rückgabewert:
• 0, wenn nicht eingetragen werden konnte
• 1, wenn Eintragung erfolgreich war.
function insert_user_doc($url)
Beschreibung:
Funktion zum Eintragen einer URL eines Users in die temporäre Datenbank.
Diese wird dem Portaladministrator innerhalb des Kataloges zur Freischaltung
angeboten.
Benötigte Parameter:
• URL des Dokumentes
Rückgabewert:
• 0, wenn nicht eingetragen werden konnte
• 1, wenn Eintragung erfolgreich war.
Dem Portaladministrator kann je nach Einstellung über den Neueintrag per Mail
informiert werden.
function insert_user_doc_error($id,$ Prop_Class_ID)
Beschreibung:
Mit dieser Funktion kann der User melden, dass ein Dokument falsch
kategorisiert wurde.
Dabei kann er einen Pfad vorschlagen, in den das Dokument passen könnte.
Diese Meldung wird in einer temporären Datenbank zwischengespeichert und
dem Portaladministrator vorgelegt.
Benötigte Parameter:
• ID des falschen Dokumentes
• Class_ID des vorgeschlagenen Pfades
Rückgabewerte:
• 0, falls Meldung fehlgeschlagen
• 1, falls Meldung erfolgreich
Seite 78 von 105
function insert_click_evaluation($id)
Beschreibung:
Mit dieser Funktion kann die Anzahl der Klicks für ein Dokument erhöht werden.
Benötigte Parameter:
• ID des zu bewertenden Dokumentes
Rückgabewerte:
• 0, falls Eintragung fehlgeschlagen
• 1, falls Eintragung erfolgreich
function insert_user_doc_evaluation($id,$type)
Beschreibung:
Mit dieser Funktion kann die User-Bewertung für ein Dokument eingetragen
werden.
Dabei werden positive und negative Bewertungen separat gezählt.
Benötigte Parameter:
• ID des zu bewertenden Dokumentes
• Typ der Bewertung:
0 negative Bewertung
1 positive Bewertung
Rückgabewerte:
• 0, falls Eintragung fehlgeschlagen
• 1, falls Eintragung erfolgreich
function get_authscore_for_id($id)
Beschreibung:
Mit dieser Funktion kann ausgelesen werden welcher AuthScore ein Dokument
hat
Benötigte Parameter:
• ID des Dokumentes, dessen AuthScore gesucht ist
Rückgabewerte:
• 0, falls Eintragung fehlgeschlagen
• Wert, falls AuthScore vorhanden
Seite 79 von 105
function get_clicks_for_id($id)
Beschreibung:
Mit dieser Funktion kann ausgelesen werden wie viele Clicks ein Document hat
Benötigte Parameter:
• ID des Dokumentes, dessen Clicks gesucht ist
Rückgabewerte:
• 0, falls Eintragung fehlgeschlagen
• Wert, falls Clicks vorhanden
function get_evaluation_for_id($id)
Beschreibung:
Mit dieser Funktion kann ausgelesen werden welche Bewertung
(NEGevaluation, POSevaluation ) ein Document hat
Benötigte Parameter:
• ID des Dokumentes, dessen Evaluation gesucht ist
Rückgabewerte:
• 0, falls Eintragung fehlgeschlagen
• array mit Werten, falls Bewertungen vorhanden, mit NEGevaluation im
ersten Feld und POSevaluation im zweiten Feld
function search_crawler_doc($url)
Beschreibung:
Diese Funktion gibt in einem Feld alle ID´s der Crawlerdokumente zurück, die
die angegebene URL als Teilstring enthalten.
Benötigte Parameter:
• URL, die gesucht werden soll
Rückgabewerte:
• 0, falls keine Dokumente gefunden werden konnten
• Array mit den gefundenen ID´s, falls Dokumente gefunden wurden
Seite 80 von 105
function get_crawler_doc_id($url)
Beschreibung:
An Hand dieser Funktion kann man die ID eines Crawler-Dokuments mit einer
bestimmten URL ermitteln.
Benötigte Parameter:
• URL des Crawler-Dokuments
Rückgabewerte:
• 0, wenn kein Dokument gefunden wurde
• ID des Dokumentes, wenn es gefunden wurde.
function delete_crawler_doc($id)
Beschreibung:
Mit dieser Funktion kann man das Dokument mit einer bestimmten ID aus der
Crawler-Datenbank löschen.
Benötigte Parameter:
• ID des zu löschenden Dokuments
Rückgabewerte
• 0 , wenn Dokument nicht gelöscht werden konnte
• 1 ,wenn Löschen erfolgreich war
function add_crawler_doc($url)
Beschreibung:
Das Hinzufügen eines Dokuments in die Crawler-Datenbank wird mit dieser
Funktion realisiert.
Benötigte Parameter:
• Die URL, die in die Crawler-Datenbank aufgenommen werden soll
Rückgabewerte:
• 0 ,wenn Eintrag fehlgeschlagen
• 1 ,wenn Eintrag erfolgreich war
Seite 81 von 105
function search_docs($url)
Beschreibung:
Diese Funktion sucht alle ID´s der Dokumente, die die angegebene URL als
Teilstring enthalten.
Benötigte Parameter:
• URL, die gesucht werden soll
Rückgabewerte:
• 0, falls keine Dokumente gefunden werden konnten
• Array, falls Ergebnisse gefunden wurden
In dem übergebenen Array werden die ID´s der gefundenen Dokumente
gespeichert.
function search_abc($url)
Beschreibung:
Diese Funktion sucht alle ID´s der Dokumente, die die angegebene URL als
Teilstring am Anfang enthalten.
Benötigte Parameter:
• URL, die gesucht werden soll
Rückgabewerte:
• 0, falls keine Dokumente gefunden werden konnten
• Array, falls Ergebnisse gefunden wurden
In dem übergebenen Array werden die ID´s der gefundenen Dokumente
gespeichert.
function get_doc_id($url)
Beschreibung:
An Hand dieser Funktion kann man die ID eines Dokuments mit einer
bestimmten URL ermitteln.
Benötigte Parameter:
• URL des Dokuments
Rückgabewerte:
• 0, wenn kein Dokument gefunden wurde
• ID des Dokumentes, wenn es gefunden wurde.
Seite 82 von 105
function delete_doc($id)
Beschreibung:
Mit dieser Funktion kann man das Dokument mit einer bestimmten ID aus der
Datenbank löschen.
Benötigte Parameter:
• ID des zu löschenden Dokuments
Rückgabewerte
• 0 , wenn Dokument nicht gelöscht werden konnte
• 1 ,wenn Löschen erfolgreich war
function add_doc($url)
Beschreibung:
Das Hinzufügen eines Dokuments in die Datenbank wird mit dieser Funktion
realisiert.
Benötigte Parameter:
• Die URL, die in die Datenbank aufgenommen werden soll
Rückgabewerte:
• 0 ,wenn Eintrag fehlgeschlagen
• 1 ,wenn Eintrag erfolgreich war
function get_error_urls()
Beschreibung:
Durch Aufruf dieser Funktion erhält man alle Temp_ID´s der Dokumente, die in
der temporären Datenbank als falsch zugeordnet gespeichert wurden.
Benötigte Parameter:
• Keine
Rückgabewerte:
• 0, falls keine Dokumente gefunden werden konnten
• Array mit den gefundenen Temp_ID´s
Seite 83 von 105
function get_error_url_info($Temp_ID)
Beschreibung:
Hier erhält man die Informationen, zu welcher Klasse das Dokument gehört,
welche Klasse vom User vorgeschlagen wurde, welche ID und Temp_id das
Dokument hat, falls der User einen Vorschlag gemacht hat und letztlich auch
die URL
Benötigte Parameter:
• ID des fehlerhaften Dokumentes
Rückgabewerte:
• 0, falls keine Informationen gefunden werden konnten
• Array mit der aktuellen Klasse, der vorgeschlagenen Klasse, die ID des
Datensatzes, die Temp_ID und die URL
function get_new_urls()
Beschreibung:
Durch Aufruf dieser Funktion erhält man alle Dokumente, die in der temporären
Datenbank als neu aufzunehmen eingetragen wurden.
Benötigte Parameter:
• Keine
Rückgabewerte:
• 0, falls keine Dokumente gefunden werden konnten
• Array mit den temporären ID´s der neuen Einträge
function get_new_url_info($Temp_ID)
Beschreibung:
Hier erhält man die Informationen, welche URL eingetragen ist und welche
Klasse vorgeschlagen wurde.
Benötigte Parameter:
• Temp_ID des neuen Dokumentes
Rückgabewerte:
• 0, falls keine Informationen gefunden werden konnten
• Array mit der URL und der vorgeschlagenen Klasse
Seite 84 von 105
function activate_new_url($id,$path)
Beschreibung:
Diese Funktion aktiviert eine URL, die neu eingetragen wurde und weist Ihr den
angegebenen Pfad zu.
Benötigte Parameter:
• ID des Dokumentes, das freigeschaltet werden soll
Rückgabewerte:
• 0, falls nicht freigeschaltet werden konnte
• 1, falls freigeschaltet werden konnte
function delete_temp_url($Temp_ID)
Beschreibung:
Mit dieser Funktion kann man einen Eintrag aus der temporären Datenbank
löschen.
Benötigte Paramter:
• ID des temporären Eintrags
Rückgabewerte:
• 0, wenn Löschen fehlgeschlagen ist
• 1, wenn erfolgreich gelöscht wurde
function classify_url($url)
Beschreibung:
Diese Funktion lässt eine URL automatisch klassifizieren und gibt den
klassifizierten Pfad zurück.
Benötigte Parameter:
• URL
Rückgabewerte:
• 0, falls nicht klassifiziert werden konnte
• 1, der vorgschlagene Pfad, wenn erfolgreich klassifiziert wurde
Seite 85 von 105
function get_url_test_mode()
Beschreibung:
Mit dieser Funktion kann ausgelesen werden, ob die URL´s vor der Rückgabe
getestet werden sollen.
Benötigte Parameter:
• Keine
Rückgabewert:
• 0 nicht testen
• 1 testen
function set_url_test_mode($type)
Beschreibung:
Mit dieser Funktion kann festgelegt werden, ob die URL´s vor der Rückgabe
getestet werden sollen.
Benötigte Parameter:
• Typ:
0 nicht testen
1 testen
Rückgabewerte:
• 0, falls Eintragung fehlgeschlagen
• 1, falls Eintragung erfolgreich
function test_url($url)
Beschreibung:
Mit dieser Funktion kann getestet werden, ob eine URL noch existiert.
Benötigte Parameter:
• URL des Dokumentes, das überprüft werden soll
Rückgabewerte:
• 0 falls Dokument nicht mehr existiert
• 1 falls Dokument abrufbar ist
Seite 86 von 105
function activate_crawler()
Beschreibung:
Aktivieren des Crawlers.
Benötigte Parameter:
• Keine
Rückgabewerte:
• 0, falls Crawler nicht gestartet werden konnte
• 1, falls Crawler gestartet werden konnte
function activate_classifier()
Beschreibung:
Aktivieren des Classifiers.
Benötigte Parameter:
• Keine
Rückgabewerte:
• 0, falls Classifiers nicht gestartet werden konnte
• 1, falls Classifiers gestartet werden konnte
function change_class_for_id($id,$path)
Beschreibung:
Mit dieser Funktion kann man einem Dokument eine andere Klasse zuweisen.
Benötigte Parameter:
• ID des Dokumentes, dessen Klasse geändert werden soll
• Neue Klasse die dem Dokument zugewiesen werden soll
Rückgabewerte:
• 0, wenn Änderung der Klasse fehlgeschlagen ist
• 1, wenn Änderung der Klasse erfolgreich war
Seite 87 von 105
function get_user_search_mode()
Beschreibung:
Mit dieser Funktion können die Parameter der Suche des Users ausgelesen
werden.
Benötigte Parameter:
• Keine
Rückgabewerte:
• Typ des Suchmodus, der für die Suche eingestellt werden soll:
0 nur interne Daten verwenden
1 nur externe Daten (externe Suchmaschine) verwenden
2 interne und externe Daten verwenden
function set_user_search_mode($type)
Beschreibung:
Mit dieser Funktion können die Parameter der Suche des Users vom
Portaladministrator beeinflußt werden.
Benötigte Parameter:
• Typ des Suchmodus, der für die Suche eingestellt werden soll:
0 nur interne Daten verwenden
1 interne und externe Daten verwenden
Rückgabewerte:
• 0, wenn Eintragung der Parameter fehlgeschlagen
• 1, wenn Eintragung der Parameter erfolgreich
function get_number_search_results()
Beschreibung:
Mit dieser Funktion kann die Anzahl der Ergebnisse ermittelt werden, die bei
einer erfolgreichen Suche auf einer Seite angezeigt werden sollen.
Benötigte Parameter:
• Keine
Rückgabewert:
• Anzahl der gleichzeitig darzustellenden Ergebnisse
Seite 88 von 105
function set_number_search_results($amount)
Beschreibung:
Mit dieser Funktion kann die Anzahl der Ergebnisse gesetzt werden, die bei
einer erfolgreichen Suche auf einer Seite angezeigt werden sollen.
Benötigte Parameter:
• Anzahl der darzustellenden Ergebnisse
Rückgabewert:
• 0, wenn setzen fehlgeschlagen
• 1, wenn erfolgreich
function get_usable_memory()
Beschreibung:
Mit dieser Funktion kann die Menge des benutzbaren Hauptspeichers
ausgelesen werden.
Benötigte Parameter:
• Keine
Rückgabewerte:
• Anzahl Megabytes, die das interne System vom Hauptspeicher nutzen
darf
function set_usable_memory($amount)
Beschreibung:
Mit dieser Funktion kann die Menge des benutzbaren Hauptspeichers
eingestellt werden.
Benötigte Parameter:
• Anzahl Megabytes, die das interne System vom Hauptspeicher nutzen
darf
Rückgabewerte:
• 0, wenn Eintragung der Parameter fehlgeschlagen
• 1, wenn Eintragung der Parameter erfolgreich
Seite 89 von 105
function get_usable_harddisk()
Beschreibung:
Mit dieser Funktion kann die Menge des benutzbaren Plattenplatzes
ausgelesen werden.
Benötigte Parameter:
• Keine
Rückgabewerte:
• Anzahl Megabytes, die das interne System als Plattenplatz nutzen darf
function set_usable_harddisk($amount)
Beschreibung:
Mit dieser Funktion kann die Menge des benutzbaren Plattenplatzes eingestellt
werden.
Benötigte Parameter:
• Anzahl Megabytes, die das interne System als Plattenplatz nutzen darf
Rückgabewerte:
• 0, wenn Eintragung der Parameter fehlgeschlagen
• 1, wenn Eintragung der Parameter erfolgreich
function get_db_hostname()
Beschreibung:
Mit dieser Funktion kann der Hostname eingestellt werden, der zur
Datenbankanfrage genutzt werden soll.
Benötigte Parameter:
• Keine
Rückgabewerte:
• 0, wenn nicht ermittelt werden konnte
• Hostname des Datenbankrechners, sonst
Seite 90 von 105
function set_db_hostname($hostname)
Beschreibung:
Mit dieser Funktion kann der Hostname eingestellt werden, der zur
Datenbankanfrage genutzt werden soll.
Benötigte Parameter:
• Hostname des Rechners, auf dem die Datenbank installiert ist
Rückgabewerte:
• 0, wenn Eintragung des Parameters fehlgeschlagen
• 1, wenn Eintragung des Parameters erfolgreich
function get_db_name()
Beschreibung:
Mit dieser Funktion kann der Datenbankname ausgelesen werden, der zur
Datenbankanfrage genutzt werden soll.
Benötigte Parameter:
• Keine
Rückgabewerte:
• Datenbankname
function set_db_name($dbname)
Beschreibung:
Mit dieser Funktion kann der Datenbankname eingestellt werden, der zur
Datenbankanfrage genutzt werden soll.
Benötigte Parameter:
• Name der Datenbank auf die zugegriffen werden soll.
Rückgabewerte:
• 0, wenn Eintragung des Parameters fehlgeschlagen
• 1, wenn Eintragung des Parameters erfolgreich
Seite 91 von 105
function get_db_username()
Beschreibung:
Mit dieser Funktion kann der Datenbankuser ausgelesen werden, der zur
Datenbankanfrage genutzt werden soll.
Benötigte Parameter:
• Keine
Rückgabewerte:
• Username
function set_db_username($dbuser)
Beschreibung:
Mit dieser Funktion kann der Datenbankuser eingestellt werden, der zur
Datenbankanfrage genutzt werden soll.
Benötigte Parameter:
• Name des Users, der bei der Datenbank angemeldet werden soll.
Rückgabewerte:
• 0, wenn Eintragung des Parameters fehlgeschlagen
• 1, wenn Eintragung des Parameters erfolgreich
function get_db_password()
Beschreibung:
Mit dieser Funktion kann das Datenbank-Passwort ausgelesen werden, das zur
Datenbankanfrage genutzt werden soll.
Benötigte Parameter:
• Keine
Rückgabewerte:
• Eingestelltes Passwort
Seite 92 von 105
function set_db_password($dbpassword)
Beschreibung:
Mit dieser Funktion kann das Datenbank-Passwort eingestellt werden, das zur
Datenbankanfrage genutzt werden soll.
Benötigte Parameter:
• Passwort das bei der Datenbank verwendet werden soll.
Rückgabewerte:
• 0, wenn Eintragung des Parameters fehlgeschlagen
• 1, wenn Eintragung des Parameters erfolgreich
function get_crawler_mode()
Beschreibung:
Mit dieser Funktion wird der Modus des Crawlers ausgelesen.
Benötigte Parameter:
• Keine
Rückgabewerte:
• Modus des Crawlers
function set_crawler_mode($mode)
Beschreibung:
Mit dieser Funktion wird der Modus des Crawlers eingestellt.
Benötigte Parameter:
• Modus des Crawlers:
0 Tiefe zuerst
1 Breite zuerst
Rückgabewerte:
• 0, wenn Eintragung des Parameters fehlgeschlagen
• 1, wenn Eintragung des Parameters erfolgreich
Seite 93 von 105
function get_crawler_maxdepth($depth)
Beschreibung:
Mit dieser Funktion wird die maximale Tiefe des Crawlers ausgelesen.
Benötigte Parameter:
• Keine
Rückgabewerte:
• 0, wenn nicht ermittelbar
• maximale Tiefe des Crawlers
function set_crawler_maxdepth($depth)
Beschreibung:
Mit dieser Funktion wird die maximale Tiefe des Crawlers eingestellt.
Benötigte Parameter:
• maximale Tiefe des Crawlers
Rückgabewerte:
• 0, wenn Eintragung des Parameters fehlgeschlagen
• 1, wenn Eintragung des Parameters erfolgreich
function get_crawler_maxroot_class()
Beschreibung:
Mit dieser Funktion wird die maximale Anzahl an Crawler-Root-Dokumenten pro
Klasse ausgelesen werden.
Benötigte Parameter:
• Keine
Rückgabewerte:
• maximale Anzahl an Crawler-Root-Dokumenten pro Klasse
Seite 94 von 105
function set_crawler_maxroot_class($number)
Beschreibung:
Mit dieser Funktion wird die maximale Anzahl an Crawler-Root-Dokumenten pro
Klasse eingestellt.
Benötigte Parameter:
• maximale Anzahl an Crawler-Root-Dokumenten pro Klasse
Rückgabewerte:
• 0, wenn Eintragung des Parameters fehlgeschlagen
• 1, wenn Eintragung des Parameters erfolgreich
function get_crawler_doc_recrawl_time()
Beschreibung:
Diese Funktion dient dem Auslesen des Zeitraumes, wann ein Dokument erneut
gecrawlt werden soll. Dazu wird der Zeitraum in Tagen angegeben.
Benötigter Parameter:
• Keine
Rückgabewerte:
• Anzahl Tage
function set_crawler_doc_recrawl_time($day)
Beschreibung:
Diese Funktion dient dem Einstellen des Zeitraumes, wann ein Dokument
erneut gecrawlt werden soll. Dazu wird der Zeitraum in Tagen angegeben.
Benötigter Parameter:
• Anzahl der Tage, nachdem ein Dokument erneut gecrawlt werden soll.
Rückgabewerte:
• 0, wenn Eintragung des Parameters fehlgeschlagen
• 1, wenn Eintragung des Parameters erfolgreich
Seite 95 von 105
function get_crawler_maxthreats()
Beschreibung:
Mit dieser Funktion wird die maximale Anzahl der Threats des Crawlers
ausgelesen.
Benötigte Parameter:
• Keine
Rückgabewerte:
• maximale Anzahl der Threats des Crawlers
function set_crawler_maxthreats($threats)
Beschreibung:
Mit dieser Funktion wird die maximale Anzahl der Threats des Crawlers
eingestellt.
Benötigte Parameter:
• maximale Anzahl an Threats des Crawlers
Rückgabewerte:
• 0, wenn Eintragung des Parameters fehlgeschlagen
• 1, wenn Eintragung des Parameters erfolgreich
function get_classifier_maxtraindocs_class()
Beschreibung:
Mit dieser Funktion wird die maximale Anzahl der Trainingsdokumente pro
Klasse des Classifiers ausgelesen.
Benötigte Parameter:
• Keine
Rückgabewerte:
• maximale Anzahl der Trainingsdokumente pro Klasse des Classifiers
function set_classifier_maxtraindocs_class($traindocs)
Beschreibung:
Mit dieser Funktion wird die maximale Anzahl der Trainingsdokumente pro
Klasse des Classifiers eingestellt.
Benötigte Parameter:
• maximale Anzahl an Trainingsdokumenten pro Klasse
Rückgabewerte:
• 0, wenn Eintragung des Parameters fehlgeschlagen
• 1, wenn Eintragung des Parameters erfolgreich
Seite 96 von 105
function get_classifier_feature_mode()
Beschreibung:
Mit dieser Funktion kann man auslesen, welche Gewichtung der Klassifier
benutzen soll.
Benötigte Parameter:
• Keine
Rückgabewerte:
• Featuregewichtung:
0 IDF*TF
1 relative Termhäufigkeit
function set_classifier_feature_mode($mode)
Beschreibung:
Mit dieser Funktion kann man einstellen, welche Gewichtung der Klassifier
benutzen soll.
Benötigte Parameter:
• Featuregewichtung:
0 IDF*TF
1 relative Termhäufigkeit
Rückgabewerte:
• 0, wenn Eintragung des Parameters fehlgeschlagen
• 1, wenn Eintragung des Parameters erfolgreich
function get_classifier_drop_mode()
Beschreibung:
Mit dieser Funktion kann man auslesen, welchen Grad der Klassifier benutzen
soll, um ein Dokument zu verwerfen.
Benötigte Parameter:
• Keine
Rückgabewerte:
• Drop-Mode:
0 soft
1 middle
2 strong
Seite 97 von 105
function set_classifier_drop_mode($mode)
Beschreibung:
Mit dieser Funktion kann man einstellen, welchen Grad der Klassifier benutzen
soll, um ein Dokument zu verwerfen.
Benötigte Parameter:
• Drop-Mode:
0 soft
1 middle
2 strong
Rückgabewerte:
• 0, wenn Eintragung des Parameters fehlgeschlagen
• 1, wenn Eintragung des Parameters erfolgreich
function get_doc_summary_amount()
Beschreibung:
Mit dieser Funktion kann man auslesen, wieviele Zeichen als summary zu
einem Dokument abgespeichert werden sollen.
Benötigte Parameter:
• Anzahl der Zeichen, die als summary gespeichert werden sollen
Rückgabewerte:
• 0, wenn Eintragung des Parameters fehlgeschlagen
• Anzahl der Zeichen, die als summary gespeichert werden sollen, wenn
Auslesen des Parameters erfolgreich
function set_doc_summary_amount($amount)
Beschreibung:
Mit dieser Funktion kann man einstellen, wieviele Zeichen als summary zu
einem Dokument abgespeichert werden sollen.
Benötigte Parameter:
• Anzahl der Zeichen, die als summary gespeichert werden sollen
Rückgabewerte:
• 0, wenn Eintragung des Parameters fehlgeschlagen
• 1, wenn Eintragung des Parameters erfolgreich
Seite 98 von 105
function get_doc_types()
Beschreibung:
Diese Funktion gibt in einem Array die Datentypen zurück, die durchsucht
werden können.
Benötigte Parameter:
• Keine
Rückgabewerte:
• 0, wenn Auslesen fehlgeschlagen
• Array mit vorhandenen Datentypen
function get_doc_type_max_size($mime)
Beschreibung:
Diese Funktion gibt die maximale Größe eines Datentyps zurück
Benötigte Parameter:
• Datentyp (mime)
Rückgabewerte:
• 0, wenn Auslesen fehlgeschlagen
• Max Groesse, wenn erfolgreich
function set_doc_type_max_size($mime,$max_size)
Beschreibung:
Durch Aufruf dieser Funktion lässt sich die maximale Dokumentgröße eines
Dokumenttyps ändern.
Benötigte Parameter:
• Dokumenttyp
• Maximale Größe dieses Typs
Rückgabewerte:
• 0, wenn Eintragen fehlgeschlagen
• 1, wenn Eintragen erfolgreich
Seite 99 von 105
function get_dns_server()
Beschreibung:
Mit dieser Funktion kann ausgelesen werden, welcher DNS-Server benutzt
werden soll.
Benötigter Parameter:
• Keine
Rückgabewerte:
• 0, wenn Eintragung des Parameters fehlgeschlagen
• URL des DNS-Server, wenn Auslesen des Parameters erfolgreich
function set_dns_server($url)
Beschreibung:
Mit dieser Funktion kann eingetragen werden, welcher DNS -Server benutzt
werden soll.
Benötigter Parameter:
• URL des DNS-Servers
Rückgabewerte:
• 0, wenn Eintragung des Parameters fehlgeschlagen
• 1, wenn Eintragung des Parameters erfolgreich
Seite 100 von 105
11. Anhang D – (Das Datenbankschema)
Seite 101 von 105
Seite 102 von 105
Seite 103 von 105
Seite 104 von 105
12. Literaturverzeichnis
[1] Andreas Henrich: „Information Retrieval: Grundlagen, Modelle,
Implementierung und Anwendungen“, Praktische Informatik,
Fakultät Sozial- und Wirtschaftswissenschaften
Otto-Friedrich Universität Bamberg, 96045 Bamberg;
http://ai1.inf.unibayreuth.de/lehre/ws_2001_2002/information_retrieval/vorlesungs
script/ir.pdf
[2 ] Martin Theobald: “Bingo! Ein thematisch fokussierender
Crawler zur Generierung personalisierter Ontologien“,
Datenbanken und Informationssysteme Universität des
Saarlandes WS 2001/02
[3] Sergej Sizov, Stefan Siersdorfer, Martin Theobald, Gerhard
Weikum: „The Bingo! Focused Crawler: From Bookmarks to
Archtypes“, University of the Saarland, Saarbruecken, Germany
[4] Sergej Sizov, Stefan Siersdorfer, Martin Theobald, Gerhard
Weikum: „Bingo! Bookmark-Induced Gathering of Information“,
University of the Saarland, Saarbruecken, Germany
[5] Soumen Chakrabarti: „Minig the web: Discovering Knowledge
from Hypertext Data “
[6] Stefan Siersdorfer: „Konstruktion von Featureräumen zur SVM
-Klassifikation von HTML-Dokumenten“, Datenbanken und
Informationssysteme - Universität des Saarlandes, April 2002
[7] Liang Xu, Xueqi Cheng, Wensi Xi: „TREC10 ¨C HITS“,
Information Storage and Retrieval, Dezember 2001 http://csgrad.cs.vt.edu/~lixu1/work/CS5604/hits.htm#Introduction%
20to%20HITS
Seite 105 von 105
Herunterladen