Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

10.01.2008PG 520 - L-Tree - Martin Böhmer1 Der Lexical Tree und seine Freunde Ein Crashkurs zur Erstellung eines großen Wort-Indexes.

Ähnliche Präsentationen


Präsentation zum Thema: "10.01.2008PG 520 - L-Tree - Martin Böhmer1 Der Lexical Tree und seine Freunde Ein Crashkurs zur Erstellung eines großen Wort-Indexes."—  Präsentation transkript:

1 PG L-Tree - Martin Böhmer1 Der Lexical Tree und seine Freunde Ein Crashkurs zur Erstellung eines großen Wort-Indexes

2 PG L-Tree - Martin Böhmer2 Agenda Lexical Tree –Grundlagen und Datenstruktur –Implementierung –Experiment Bundestagsprotokolle –Speicherplatz-Problematik Inverted Files –Prinzip –im Lexical Tree Fazit

3 PG L-Tree - Martin Böhmer3 Lexical Tree Grundlagen und Datenstruktur

4 PG L-Tree - Martin Böhmer4 Der Lexical Tree auch kurz L-Tree genannt Datenstruktur zur Indexierung Vorteile: –sehr kompakte Datenhaltung –eignet sich auch für große Datenmengen Anwendungen: –Spracherkennung (Indexierung von Lauten) –Wörterbuch-Index (Dokumente finden)

5 PG L-Tree - Martin Böhmer5 Die Datenstruktur: Idee Das was aus Bestandteilen so zusammengesetzt ist, dass es ein einheitliches Ganzes bildet, nicht nach Art eines Haufens, sondern wie eine Silbe, das ist offenbar mehr als bloß die Summe seiner Bestandteile. - Aristoteles

6 PG L-Tree - Martin Böhmer6 Die Datenstruktur: Idee Zerlege Daten, so dass –ihre Gemeinsamkeiten nur einmal gespeichert werden –sich die Teile zu einem Ganzes zusammenfügen Das ist mehr als die Summe der Bestandteile! –Speicherplatz sparen: weniger ist mehr –Zusatzinformationen verwalten

7 PG L-Tree - Martin Böhmer7 Die Datenstruktur: Von Bäumen, Knoten und Kindern… L-Tree ist eine Baum-Datenstruktum (engl. tree = Baum) Baum T = (V, E) –Kontenmenge V mit |V| = n –Kanten E = { (v i, v j ) | v i, v j V} mit |E| = m –T ist zusammenhängend und es gilt: m = n - 1 Pfad P = {v 1, …, v k V |(v i, v i+1 ) E für alle i = 1, …, k-1} Länge des Pfads: k Tiefes eines Baum: Längster Pfad von Wurzel zu Blatt Knoten Kinder Elter Wurzel(-knoten)

8 PG L-Tree - Martin Böhmer8 Die Datenstruktur: L-Tree als Wort-Dokument-Index Menge von Dokumenten D, bestehend aus Wörtern Speichere Wort w = b 1, …, b n (Buchstaben): –Ein Konten v speichert b i für i = n speichere Dokumente in denen w vorkommt –Elter von v speichert b i-1 –Ein Kind von v speichert b i+1 Maximale Anzahl an Kindern: 59 (A-Z, a-z, Ää, Öö, Üü, ß) Tiefe des L-Tree: Längstes Wort {d D | b 1 …b n d} b1b1 … bnbn

9 PG L-Tree - Martin Böhmer9 d1d1 d1, d2d1, d2 d2d2 d2d2 L-Tree als Wort-Dokument-Index: Ein Beispiel d 1 :Grottenolme sind Lurche. d 2 :Lurche singen laut lachend in der Grotte. - d e r d2d2 c h e n d d1d1 G r o t t e n o l m e d2d2 i n L u r c h e d2d2 l a u t d1d1 i s n d d1d1 d2d2 g e n

10 PG L-Tree - Martin Böhmer10 Lexical Tree Implementierung

11 PG L-Tree - Martin Böhmer11 Klassen Überblick LexcialTree Implemntierung des L-Tree LexcialTreeNode Implentierung eines Baumknoten LexicalTreeBuilder Aufbau oder Laden des L-Trees aus Datei FileSpider / WordSplitterFast Datei-Enumerator / Wort-Enumerator

12 PG L-Tree - Martin Böhmer12 Klassen Java Datentypen in LexicalTreeNode {d D | b 1 …b n d} b1b1 … bnbn char Hashmap Hashmap, Integer>

13 PG L-Tree - Martin Böhmer13 Nutzung des L-Tree Erstellung Nutze Klasse LexicalTreeBuilder Aufbau des L-Tree LexicalTree ltree = LexicalTreeBuilder.buildLTree(, ); ltree.saveToFile("ltree_full.dat"); Laden des L-Tree LexicalTree ltree = LexicalTreeBuilder.loadFromFile("ltree.dat");

14 PG L-Tree - Martin Böhmer14 Nutzung des L-Tree Wichtige Abfragen Ist das Wort Grottenolm im L-Tree? –Aufruf: ltree.containsWord("Grottenolm") –Rückgabe: boolean Welche Dokumente enthalten Grottenolm? –Aufruf: ltree.getDocumentIds("Grottenolm") –Rückgabe: Set Welche Dokumente enthalten Grottenolm und wie oft kommt das Wort dort vor? –Aufruf: ltree.getDocumentIds("Grottenolm") –Rückgabe: Hashmap

15 PG L-Tree - Martin Böhmer15 Fragen zur Implementation? Zur Benutzung? Sourcecode zeigen? Generische Typen genauer erklären?

16 PG L-Tree - Martin Böhmer16 Lexical Tree Experiment Bundestagsprotokolle

17 PG L-Tree - Martin Böhmer17 L-Tree als Wort-Dokument-Index: Experiment L-Tree Aufbau mit Bundestagsprotokollen (BTP) der Wahlperioden Anzahl Dokumente: Anzahl Wörter im L-Tree:ca Längstes Wort: 67 Buchstaben

18 PG L-Tree - Martin Böhmer18 L-Tree als Wort-Dokument-Index: Wörter Anzahl (BTP)

19 PG L-Tree - Martin Böhmer19 BTP - Das Quiz Runde 1 37-Zeichen Frage: Was wird im Bundestag durchgeführt, wenn sich mal wieder keine Einigung findet? Konsensfindungserleichterungs- maßnahme

20 PG L-Tree - Martin Böhmer20 BTP - Das Quiz Runde 2 51-Zeichen Frage: Wie lautet das komplizierteste Adjektiv? Tipp: Es geht um Geld… arbeitgeberbeitragsfondssteuer- ergänzungsfinanzierte

21 PG L-Tree - Martin Böhmer21 Lexical Tree Speicherplatzproblematik

22 PG L-Tree - Martin Böhmer22 Heap-Size der JVM erhöhen -Xmx1600m -Xms1600m Xmx = maximale Größe, Xms = Startgröße, 1600m = 1600 MB

23 PG L-Tree - Martin Böhmer23 L-Tree als Wort-Dokument-Index: Speicherplatz (BTP) Zur Verfügung: 1600 MB Arbeitsspeicher Testlauf 1: –L-Tree, wie vorgestellt –Speicher nach Dokumenten voll (Abbruch) Testlauf 2:(Dauer 15min) –L-Tree ohne Dokument-Listen –L-Tree Dateigröße: 150 MB Dokumentenliste muss besser organisiert werden

24 PG L-Tree - Martin Böhmer24 L-Tree als Wort-Dokument-Index: Speicherplatzredukltion Was tun? Unterscheidung zwischen Groß- und Kleinschreibung aufheben Informationsverlust Stemming: Wörter auf ihren Wortstamm reduzieren Informationsverlust Wörter ausschließen –Wörter die in allen Dokumenten vorkommen –Stopwörter: Wörter, die keine Information tragen z.B. der/die/das/dieser/dieses/ Dokumentenlisten auslagern

25 PG L-Tree - Martin Böhmer25 L-Tree als Wort-Dokument-Index: Wörter reduzieren Häufigkeit des Vorkommens eines Wortes in den BTP Dokumenten

26 PG L-Tree - Martin Böhmer26 L-Tree als Wort-Dokument-Index: Wörter reduzieren Maßnahmen –offensichliche Stopwörter: der, die, das, dass, dieses, diese, einer, vor –Analyse Worthäufigkeit: Deutscher, Bundestag, haben, werden, sind, Sie, deshalb, … Ergebnis: –insgesamt 250 Stopwörter –Ersparnis von ca. 22% der Dokumentenverweise –L-Tree Datei-Größe: 350 MB! –Erstellungsdauer: 40min, Ladedauer: 10min Geht das mit Auslagerung noch besser?

27 PG L-Tree - Martin Böhmer27 BTP - Das Quiz Runde 3 56-Zeichen Frage: Ich würde gerne 100km Autobahn bauen! Wie finde ich heraus, ob sich die Bedingungen dazu zu meinem Nachteil ändern können? Fernstraßenbauprivatfinanzierungs- gesetzesänderungsgesetz

28 PG L-Tree - Martin Böhmer28 Inverted Files zur Auslagerung

29 PG L-Tree - Martin Böhmer29 Dokumentenlisten auslagern Wir haben gesehen: –Wortmenge nach oben beschränkt –Dokumentenlisten bestimmen Platzbedarf Idee: –Lagere Teile oder alle Dokumentenlisten in Dateien aus. –Erweiterung: Halte nur Listen für häufig abgefragte Wörter im Speicher (statische Auswahl) –Erweiterung 2: Lernender Algorithmus, der mit jeder Abfrage die Auswahl der gecachten Listen anpasst

30 PG L-Tree - Martin Böhmer30 Inverted Index Situation: Suche nach einer Menge von Wörtern Forward Index –Zu jedem Dokument wird die Menge der enthaltenen Wörter verwaltet –alle Dokumente müssen durchsucht werden Inverted Index (oder Inverted Files) –Zu jedem Wort wird die Menge der Dokuemente, in denen es vorkommt, gespeichert –Wörter sind sortiert (schnelle Suche)

31 PG L-Tree - Martin Böhmer31 Inverted Files Beispiel Inverted File : der{1} Grottenolme{1, 3} Grotte{2} in{2} lachend{2} laut{2} Lurche{1, 2} nicht{3} sind{1} singen{2, 3} d 1 :Grottenolme sind Lurche. d 2 :Lurche singen laut lachend in der Grotte. d 3 : Grottenolme singen nicht.

32 PG L-Tree - Martin Böhmer32 d 1 : … d m : Inverted Files im L-Tree Variante 1 Speichere für jedes Wort eine Textdatei mit seinen Dokumenten und Häufigkeiten {d D | b 1 …b n d} b1b1 … bnbn Nachteil: Für jedes Wort eine Datei

33 PG L-Tree - Martin Böhmer33 Inverted Files im L-Tree Variante 2 Seien if 1, …, if p Inverted Files Jedes if j verwaltet eine disjunkte Teilmenge aller Wörter und deren Dokumente Hashfunktion –H: Wort j, j = 1, …, p –ordnet einem bei der Erstellung des L-Tree jedem Wort ein Inverted File zu d 1 : d 5 : d 99 : d 1 : d 5 : d 99 : d 1 : d 5 : d 99 :

34 PG L-Tree - Martin Böhmer34 Inverted Files im L-Tree Variante 2 Vorteil: –wenige Dateien –Dateien können einzeln gecacht werden –Hashfunktion könnte Wörter nach Relevanz ordnen, so dass alle häufig abgefragten Wörter in einem Inverted File im Cache liegen. Bis jetzt leider nicht beantwortet: –Wie viele Inverted Files sind optimal? –Wie lautet die Hashfunktion?

35 PG L-Tree - Martin Böhmer35 Fazit L-Tree dient als sehr kompakter Index für große Dokumentensammlungen Speicherreduktion durch Stopwörter und häufigste Wörter Weitere Verbesserung durch die Auslagerung der Dokumentenlisten in Inverted Files

36 PG L-Tree - Martin Böhmer36 BTP - Das Quiz Runde 4 59-Zeichen Frage: Wer hilft mir eigentlich, wenn ich meine Krankenkasse in die Luft sprengen will? Bundeskrankenversicherungs- explosionsbeschleunigungsminister

37 PG L-Tree - Martin Böhmer37 Literaturverzeichnis Datenstrukturen und Datenbanken, Schäfer 1989, Vieweg Wikipedia - Inverted Index Indexierung für Suchmaschinen, Vortrag von Emel Günal im Rahmen der PG520 am Lehrstuhl für Informatik 8, Universität Dortmund

38 PG L-Tree - Martin Böhmer38 BTP - Das Quiz Runde 5 67-Zeichen Frage: Wo wird geregelt, wie ich meinen Nachbarn für den 40-Tonner in meinem Garten verantwortlich machen kann? Grundstücksverkehrsgenehmigungs- zuständigkeitsübertragungsverordnung

39 PG L-Tree - Martin Böhmer39 Vielen Dank für die Aufmerksamkeit!


Herunterladen ppt "10.01.2008PG 520 - L-Tree - Martin Böhmer1 Der Lexical Tree und seine Freunde Ein Crashkurs zur Erstellung eines großen Wort-Indexes."

Ähnliche Präsentationen


Google-Anzeigen