• Keine Ergebnisse gefunden

Vergleich mit Prometheus

Die beiden Ans¨atze haben gemein, dass beide eine Informationsextraktion aus Tabellen anstreben. Kushmericks Wrapper Induction ist aber eher auf generierte Seiten ausgerichtet und arbeitet auf Stringebene. Prometheus hingegen benutzt das Document Model von Java zum Auffinden von relevan-ten Darelevan-ten. Dadurch wird gew¨ahrleistet, dass nur auf Indizes zur¨uckgegriffen wird, die auch f¨ur die grafische Pr¨asentation des Dokuments Relevanz haben, so dass der Benutzer interaktiv am Extraktionsprozess beteiligt werden kann.

2.3 Hierarchische Wrapper Induction

Die Motivation f¨ur diesen Ansatz ist dieselbe wie in 2.2, man m¨ochte Daten mit Hilfe von Wrappern aus semi-strukturierten Websites gewinnen. Er hat dabei den Anspruch, Informationen nicht nur aus Tabellen, sondern auch aus hierarchischen Strukturen gewinnen zu wollen.

Um diese zu beschreiben, wird der ’embedded catalog’ (EC)-Formalismus eingef¨uhrt. Die (EC)-Beschreibung einer Seite ist eine baumartige Struktur, in der die Bl¨atter die f¨ur den Anwender relevanten Daten darstellen. Die internen Knoten repr¨asentieren k-Tupel, wobei jeder Posten in diesen Tu-peln entweder ein Blatt oder eine weitere Liste darstellt (siehe Abbildung 2.2 f¨ur ein Beispiel). Ein Dokument wird nun als eine Sequenz S von Token (z.B. W¨orter, Zahlen, HTML-Tags,. . . ) gesehen. Der Inhalt der Wurzel der (EC)-Beschreibung ist dann die gesamte Sequenz S. Der Inhalt der Kinder der Wurzel sind Teilsequenzen. Folglich ist im Allgemeinen der Inhalt eines Knotens x eine Teilsequenz seines Eltersp.

Die Extraktion von Daten findet nun mit Hilfe eines Wrappers statt, der die (EC)-Beschreibung des Dokuments und eine Menge von Regeln benutzt.

Der Wrapper ben¨otigt jeweils eine Regel, um einen bestimmten Knoten eines Elters zu extrahieren, und zus¨atzlich Regeln f¨ur Listen-Knoten, die besagen, wie die Liste in individuelle Knoten zerlegt werden kann. Diese Regeln ba-sieren auf so genannten ’Landmarks’, die eine Gruppe von Token darstellen.

So kann man im Beispiel aus Abbildung 2.3 mit der Regel R1 =SkipTo(<b>)

den Beginn des Restaurantnamens finden. Sie hat die Bedeutung, dass aus-gehend vom Beginn des Dokuments alles ¨ubersprungen werden soll, bis das

<b>Landmark gefunden worden ist. Formell bedeutet das, dass die RegelR1 auf den Inhalt des Elters des Knoten, in diesem Fall die Wurzel, angewandt wird, wobei das Prefix des Elters bis zum Restaurantnamen absorbiert wird.

R1 ist als Start-Regel zu bezeichnen, es gibt aber auch End-Regeln, die am

2.3 Hierarchische Wrapper Induction 14

Abbildung 2.2: (EC)-Beschreibung von LA-Weekly und ZAGAT Seiten[13]

Ende des Dokuments beginnen und sich zu dessen Anfang vorarbeiten.

R2 =SkipTo(</b>)

w¨are beispielsweise eine Regel, die das Ende eines Restaurantnamens im Bei-spiel findet.

Es ist m¨oglich Regeln zu kombinieren, wieR3=SkipTo(Name)SkipTo(<b>), die besagt, dass erst alles bis zum Landmark Name und dann alles bis <b>

ignoriert werden soll.

Um den verschiedenen Formaten von Dokumenten gerecht zu werden, sind Disjunktionen wie

either SkipTo(<b>) or SkipTo(<i>) erlaubt.

Um Listen zu bearbeiten, muss der Wrapper zun¨achst die Liste extrahieren und diese dann in ihre einzelnen Tupel zerlegen. Beim Beispiel aus Abbildung 2.3 w¨are das zun¨achst die Start-Regel SkipTo(<p><i>) und die End-Regel

2.3 Hierarchische Wrapper Induction 15

Abbildung 2.3: Eine einfache Version des ZAGAT Dokuments[13]

SkipTo(</i>) f¨ur die Liste, woraufhin die einzelnen Tupel mitSkipTo(<i>) f¨ur den Anfang und SkipTo(</i>) f¨ur das jeweilige Ende zum Einsatz kom-men.

Die Vorteile dieser Art der Extraktion liegen auf der Hand:

• Die hierarchische Extraktion erlaubt eine beliebige Tiefe von Verschach-telungen.

• Jeder Knoten wird unabh¨angig von seinen Geschwistern extrahiert, so dass keine feste Ordnung n¨otig ist, und fehlende Eintr¨age nichts aus-machen.

• Andere Ans¨atze werden komplexer, je tiefer der (EC)-Baum wird; hier werden verschiedene einfache Regeln kombiniert.

Abbildung 2.4: Ein beispielhafter SLG[13]

Die Extraktionsregeln werden formell als nichtdeterministische finite Auto-maten definiert, die Landmark automata (LA). Jeder ¨Ubergang von einem ZustandSi in einen anderenSj wird durch einen linearen Landmarkli,j mar-kiert. Ein linearer Landmark ist eine Sequenz von Token und Wildcards wie

2.3 Hierarchische Wrapper Induction 16

HtmlTag, Number, Sign,. . .. Ein ¨Ubergang Si li,j Sj findet nur dann statt, wenn es sich im Zustand Si bei der Eingabe um einen String s handelt, der vom Landmark li,j akzeptiert wird.

Simple Landmark Grammars (SLGs) sind die Klasse von LAs, die den dis-junktiven Regeln entsprechen. Sie haben folgende Eigenschaften:

• Vom Startzustand S0 k¨onnen k Kanten abgehen.

• Es gibt genau k akzeptierende Zust¨ande (einer pro Kante).

• Alle k Kanten, die von S0 ausgehen sind sequentielle LAs, d.h. von jeden Zustand Si gibt es exakt zwei ¨Uberg¨ange: eine Schleife zu sich selbst und einen ¨Ubergang in den n¨achsten Zustand.

• Lineare Landmarks kennzeichnen jeden ¨Ubergang, der keine Schleife bezeichnet.

• Alle Schleifen haben die Bedeutung ”absorbiere alle Tokens bis auf den linearen Landmark gestoßen wird, der zum n¨achsten Zustand f¨uhrt”.

Ein beispielhafter SLG ist in Abbildung 2.4 zu sehen.

Extraktionsregeln werden gelernt, indem ein Algorithmus, Stalker,SLG Re-geln generiert, die den Start und das Ende eines Eintrags x innerhalb seines Elters p identifiziert. Dazu werden anhand von ausgezeichneten Beispielen zun¨achst ein linearer Landmark Automat generiert, der so viele Beispiele wie m¨oglich abdeckt. F¨ur die restlichen Beispiele wird dann wiederum ein Auto-mat mit maximaler Abdeckung gesucht, usw. Wenn alle Beispiele abgedeckt sind, wird als Ergebnis die Disjunktion aller LAs geliefert.

F¨ur eine genaue Beschreibung von Stalker siehe [13].

Vergleich mit Prometheus

Der Vergleich f¨allt ¨ahnlich aus wie in Kapitel 2.2. Beide Ans¨atze haben ge-mein, dass sie eine Informationsextraktion aus Tabellen anstreben, wobei der hier vorgestellte mit seinem Hierarchie-Ansatz sogar noch tiefer geht.

Die hierarchische Wrapper Induction arbeitet aber auf Stringebene in Ver-bindung mit einigen Wildcards wie z.B.htmlTag, Symbol, etc..Prometheus hingegen benutzt das Document Model von Java zum Auffinden von relevan-ten Darelevan-ten. Dadurch wird gew¨ahrleistet, dass nur auf Indizes zur¨uckgegriffen wird, die auch f¨ur die grafische Pr¨asentation des Dokuments Relevanz haben, so dass der Benutzer interaktiv am Extraktionsprozess beteiligt werden kann.