Datenextraktion aus dem WWW Datenextraktion aus dem WWW

w5.cs.uni.sb.de

Datenextraktion aus dem WWW Datenextraktion aus dem WWW

349

350

Datenextraktion aus dem WWW

Wie können die Daten im WWW extrahiert und anderen Programmen zugänglich

gemacht werden?

Datenextraktion aus dem WWW

(1) Bestmöglicher Fall: Datenquelle bietet entsprechenden Service über

standardisiertes Interface direkt an

Konsument (z.B. Informationsagent) nutzt Interface; Extraktion wird von

Datenquelle übernommen

(2) Auch nicht schlecht: Inhalt von Webseiten passend annotiert

Konsument sucht relevante Seiten und extrahiert markierte Daten

(3) Nicht so toll: Daten “versteckt” im semistrukturierten Text einer HTML Seite

Konsument muß Seiteninhalt aufwendig analysieren, um (hoffentlich)

relevante Daten zu entdecken

Im heutigen WWW trifft man leider am häufigsten auf Fall (3)


351

352

Datenextraktion aus dem WWW

Beispiel: Pflegen der DBLP

Vorgehen: Studenten fügen Daten von Hand ein.

Datenextraktion aus dem WWW

Nachteile manueller Extraktion

– Relativ langsam

– Sehr kostenaufwendig

Alternativer Ansatz: Verwendung von Wrappern

– Wrapper := Komponente, die eine andere Komponente

umhüllt, um deren Funktionalität über ein alternatives Interface

anzubieten

– Im DBLP Beispiel: Programm, welches bibliographischen

Daten aller neuen Veröffentlichungen aus der ACM DL in

einem festgelegten Format extrahiert

Nachteile von Wrappern

– Müssen von Programmierern erstellt werden

– Speziell im WWW: Umhüllte Komponenten (HTML Seiten)

werden oft verändert ständige Pflege der Wrapper

notwendig


353

Datenextraktion aus dem WWW

Wie können die Kosten des Erstellens und Pflegens von Wrappern

reduziert werden?

Beschleunige und vereinfache die Konstruktion/Modifikation von

Wrappern

- Reduziert den benötigten Zeitaufwand

- Systemverwalter benötigen weniger Expertise

Möglicher Ansatz: Programmieren durch Vormachen (Programming

by Demonstration, PbD)

- PbD := Teilgebiet des end-user programming; zentrale Idee ist

“Programmieren mit der Benutzerschnittstelle”

- Motivation: Falls ein Benutzer weiß, wie eine Aufgabe mit dem

Computer zu lösen ist, sollte dies ausreichen, um ein

entsprechendes Programm zu erstellen.

- Unterschied zu Macro-Aufzeichnern: Ziel ist die Erstellung eines

allgemeineren Programms, welches auch in nicht-identischen

Situationen einsetzbar ist.

354

Datenextraktion aus dem WWW

Ausprägungen von PbD im Bereich der Wrapperkonstruktion:

(1) Weitgehende Automatisierung des Konstruktionsprozesses

- Wrappererstellung als induktives Lernen [Kushmerick et al.]

Benutzer liefert Trainingsbeispiele, die vom System zum

Lernen eines Wrappers genutzt werden

- Benutzer unterstützt das System

- Beispiele: WIEN, Ariadne, LExIKON

(2) Benutzer zentral für den Konstruktionsprozess

- Benutzer erstellt Wrapper selbst

- System unterstützt den Benutzer

- Beispiele: Internet Scrapbook, TrIAs, WebCES


355

356

Datenextraktion aus dem WWW

Wrapperkonstruktion als induktives Lernen

Wrapper wird betrachtet als Funktion, die ein Dokument D auf eine

Menge von Tupeln {(d , d , ..., d ), ...} abbildet.

1 2 n

• Beispiel Comparision Shopping: Abbildung von D nach

{(Produkt, Preis), ...}

Hypothese des induktiven Lernens:

“Jede Hypothese, die die Zielfunktion über eine genügend große

Menge von Trainingsbeispielen gut approximiert, wird diese

Zielfunktion auch über nicht gesehene Beispiele gut

approximieren”.

Problem:

Schränke die Menge möglicher Hypothesen so weit ein, dass eine

kleine Menge von Beispielen zur Identifikation einer “guten”

Hypothese ausreicht (generalization bias).

Datenextraktion aus dem WWW

Beispiel: Wrapper Induction Environment (WIEN) [Kushmerick et al.]

WIEN erlaubt es dem Benutzer, Beispiele für relevante Daten in

einem Webbrowser zu markieren und generiert daraus einen HLRT

Wrapper.

- HLRT (Head-Left-Right-Tail) Wrapper sind Instanzen folgender

Schablone:

ExecuteHLRT(, page P)

skip past first occurrence of h in P

while next l 1 is before next t in P

for each in {, ..., }

skip past next occurrence of l k in P

extract attributes from P to next occurrence of r k

return extracted tuples

- Gedacht für Seiten, die Daten in tabellarischer Form

präsentieren


357

358

Datenextraktion aus dem WWW

Ein konkretes Beispiel:

Orbit-Velocities in km/s


Venus35.022

Earth29.786


ExtractVel(page P)

skip past first occurrence of in P

while next is before next in P

for each in {< , >, < , >}

skip past next occurrence of lk in P

extract attribute from P to next occurrence of rk return extracted tuples

Datenextraktion aus dem WWW

Konstruktion eines HLRT Wrappers: Auf eine Menge von Paaren ,

wobei P n ein HTML Dokument und L n eine Liste von K Datenobjekten ist, wird

BuildHLRT angewendet:

BuildHLRT({..., , ...})

for k := 1 to K

rk := any common prefix of the strings following each (but not

contained in any) data item k

for k := 2 to K

lk := any common suffix of the strings preceding each data item k

for each common suffix l1 of the pages' heads

for each common substring h of the pages' heads

for each common substring t of the pages' tails

if h precedes l1 in each of the pages' heads; and

t precedes l1 in each of the pages' tails; and

t occurs between h and l1 in no pages' head; and

l1 doesn't follow t in any inter-tuple separator

then return


359

360

Datenextraktion aus dem WWW

Ergebnisse einer empirischen Studie über HLRT Wrapper [Kushmerick et al.]:

- Anwendbar auf 48 von 100 zufällig gewählten Seiten

- Wrapper für zwei spezielle Services konnten anhand von 3 bis höchsten 15 Bespielen

gelernt werden

Vorteil des induktiven Lernens von Wrappern:

Falls die Klasse der lernbaren Wrapper für die aktuelle Aufgabe gut gewählt ist

- Sehr einfache und schnelle Wrapperkonstruktion

Nachteile:

- Mögliche Wrapper auf eine festgelegte Klasse beschränkt

- Eingeschränkte Kommunikation

- Zusätzliches Wissen des Benutzers wird nicht ausgenutzt

- Defizite bei Transparenz für und Kontrolle durch den Benutzer

Datenextraktion aus dem WWW

Nachteile einer eingeschränkten Kommunikation


361

362

Datenextraktion aus dem WWW

Beispiel für den benutzerzentrierten Ansatz: WebCES

Entwurfsziele:

- Kosten zum Erstellen und Pflegen von Wrappern sollen reduziert werden

- Wrapper sollen auch von Nicht-Programmierern erstellt werden können

- Erstellte Wrapper sollen möglichst robust in Bezug auf Modifikationen von

Webseiten sein

- Wrapper sollen document retrieval als auch data extraction unterstützen

- Benutzer sollen die Möglichkeit haben, Wrapper zu kontrollieren, korrigieren

und zu testen

- Benutzer sollen ihr Domänenwissen während der Wrapperkonstruktion

ausnutzen können

Zentrales Problem: Kommunikation zwischen Benutzer und System

Datenextraktion aus dem WWW

Auf welcher Ebene können Benutzer und System kommunizieren?

Idee: Ermögliche Kommunikation auf der visuellen Ebene (gerenderte Webseite)


363

364

Datenextraktion aus dem WWW

Das WebCES User Interface

Datenextraktion aus dem WWW

Konstruktion eines Wrappers (1)


365

366

Datenextraktion aus dem WWW

Konstruktion eines Wrappers (2)

Datenextraktion aus dem WWW

Aufbau eines WebCES Wrappers

Ein WebCES Wrapper besteht aus einer Reihe von Aktionslisten, die mit

Webseiten verknüpft werden


367

368

Datenextraktion aus dem WWW

Eine Aktion bestehen aus einem Muster, welches Objekte auf einer Seite

identifiziert, und der eigentlichen Aktion

Beispiel eines Musters:

Mögliche Aktionen: Extrahiere Text, Klicke auf, Fülle Text ein, Selektiere

Option

Datenextraktion aus dem WWW

Identifikation von Objekten anhand eines Musters

Muster werden in eine Constraintsprache übersetzt und auf Grundlage einer

Webseite ausgewertet

Image(?Image_20346), height(?Image_20346, 90),

width(?Image_20346, 64), focus(?Image_20346, 250),

rightOf(?Price_21029, ?Image_20346), textBlock(?Price_21029),

text(?Price_21029, ?aup_1357),

stringlength(?aup_1357, ?aup_1358),

lessThan(?aup_1358, 80),

not(same(?Price_21029, ?Image_20346)),

containsText(?Price_21029, "Our Price", ?TEXTSEGMENT_18490),

closeness(?Image_20346, ?Price_21029, ?abp_7540),

lessThan(?abp_7540, 250), greaterThanOrEqual(?abp_7540, 0),

leftOf(?Image_20346, ?Title_18589),

below(?Price_21029, ?Title_18589), textBlock(?Title_18589),

text(?Title_18589, ?aup_1354),

stringlength(?aup_1354, ?aup_1355), lessThan(?aup_1355, 80),

fontWeight(?Title_18589, "BOLD"),

not(same(?Title_18589, ?Image_20346)),

not(same(?Title_18589, ?Price_21029)),

closeness(?Title_18589, ?Image_20346, ?abp_7321),

lessThan(?abp_7321, 25), greaterThanOrEqual(?abp_7321, 0),

closeness(?Title_18589, ?Price_21029, ?abp_7523),

lessThan(?abp_7523, 100), greaterThanOrEqual(?abp_7523, 0)


369

370

Datenextraktion aus dem WWW

Auswerten räumlicher Constraints

Problem: Finde möglichst effizient alle Variablenbelegungen, die

Ausdrücke der Form leftOf(?X,?Y), above(?X,?Z),

topsAligned(?Y,?Z) erfüllen

Vorgehen: Verwende window-reduction Algorithmus [Papadias et al.]

- Jede Variable wird mit einem Bereichsfenster (domain window)

assoziert

● Bereichsfenster enthalten alle potentiellen Variablenbelegungen

- Wenn eine Variable instantiiert wird, werden alle Bereichsfenster

noch nicht instantiierter Variablen angepaßt

- Nach dieser Anpassung werden die übrigen nicht instantiierten

Variablen in “Kleinstes Bereichsfenster zuerst”-Ordnung gebracht

- Die erste Variable in dieser Liste wird als nächstes instantiiert

Datenextraktion aus dem WWW

Beispiel: leftOf(?X,?Y), above(?X, ?Z),

topsAligned(?Y, ?Z)

Annahmen:

- Anfangsvariablenordnung ist [?X, ?Y, ?Z]

- Objekte werden in alphabetischer Reihenfolge ausgewählt


371

372

Datenextraktion aus dem WWW

Beispiel: leftOf(?X,?Y), above(?X, ?Z), topsAligned(?Y, ?Z)

Datenextraktion aus dem WWW

Beispiel: leftOf(?X,?Y), above(?X,?Z), topsAligned(?Y,?Z)

Kurzzusammenstellung der ersten Auswertungsschritte:

- Objekt A wird ?X zugeordnet

- Bereichsfenster von ?Z wird reduziert (s. Abb. b)

- Variablen werden umgeordnet, da ?Z nun kleineres Fenster als ?Y

- Objekt B wird ?Z zugeordnet

- Fenster von ?Y wird reduziert (s. Abb. c)

- Objekt A wird ?Y zugeordnet

- Zuordnung ist inkonsistent ( backtracking bis vor Zuordnung an ?Z)

- Objekt C wird ?Z zugeordnet

- Fenster von ?Y wird reduziert (s. Abb. d)

- Keine Belegung von ?Y möglich ( backtracking bis vor Zuordnung an ?Z)

- Objekt D wird ?Z zugeordnet

- Fenster von ?Y wird reduziert (s. Abb. e)

- Objekt C wird ?Y zugeordnet ( mögliche Lösung gefunden!)


373

374

Datenextraktion aus dem WWW

Anbindung an einen Webbrowser

- WebCES verwendet Internet Explorer 6.0 als

Browserkomponente

- Über die COM-Schnittstelle des IE wird auf das DHTML

Modell zugegriffen

• DHTML enthält Angaben über das momentane

Layout der Seite

- Anhand von Heuristiken wird eine Teilmenge der

DHTML Objekte einer Seite ausgewählt und in WebCES

verwendet

- DHTML Textblöcke werden zu Paragraphen

zusammengefasst

Datenextraktion aus dem WWW

Probleme, Einschränkungen und mögliche Erweiterungen

• HTML Frames werden nicht unterstützt

• String Pattern-Matching nur sehr eingeschränkt möglich

• Textextraktion auf Paragraphen beschränkt

• Einfache, lineare Wrapperstruktur

- Keine bedingte Ausführung von Aktionen

- Keine Verzweigungen (bedingte Auswahl von Aktionslisten)

• Sinnvolle Erweiterungen der Benutzerschnittstelle

- Benutzer sollte Nachfragen können, warum eine bestimmte

Objektkonstellation nicht zu einem Muster passt

- System sollte bessere Constraintsvorschläge machen

(möglicherweise anhand mehrere Musterinstanzen)

Integration des induktiven Ansatzes


375

376

Datenextraktion aus dem WWW

Referenzen

Nickolas Kushmerick, Daniel S. Weld, and Robert B. Doorenbos. Wrapper

Induction for Information Extraction. In Intl. Joint Conference on Artificial

Intelligence (IJCAI), pages 729-737, 1997

Dimitris Papadias, Nikos Mamoulis, and Vasilis Delis. Algorithms for querying by

spatial structure. In Proceedings of 24rd International Conference on Very

Large Data Bases, pages 546-557, Morgan Kaufmann, 1998

Mehr über WebCES

Eric Schwarzkopf, Mathias Bauer, Dietmar Dengler. Exploiting Visual Information

in Programming by Demonstration. Proceedings of the 7th International

Conference on Intelligent User Interfaces, pages 220-221, ACM Press, 2002

Eric Schwarzkopf, Mathias Bauer, Dietmar Dengler. Towards Intuitive Interaction

for End-User Programming. Proceedings of the 2003 International Conference

on Intelligent User Interfaces, pages 287-289, ACM Press, 2003

Datenextraktion aus dem WWW

Mehr über Programmieren durch Vormachen

Allen Cypher, editor. Watch What I Do: Programming by Demonstration. MIT

Press, 1993. available at: http://www.acypher.com/wwid

Henry Lieberman, editor. Your Wish Is My Command: Programming by Example.

Morgan Kaufmann, 2001

Weitere Magazine dieses Users
Ähnliche Magazine