Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Der Lexical Tree und seine Freunde

Ähnliche Präsentationen


Präsentation zum Thema: "Der Lexical Tree und seine Freunde"—  Präsentation transkript:

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

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

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

4 PG 520 - L-Tree - Martin Böhmer
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) PG L-Tree - Martin Böhmer

5 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 PG L-Tree - Martin Böhmer

6 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 PG L-Tree - Martin Böhmer

7 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 = { (vi, vj) | vi, vj € V} mit |E| = m T ist zusammenhängend und es gilt: m = n - 1 Pfad P = {v1, …, vk € V |(vi, vi+1) € E für alle i = 1, …, k-1} Länge des Pfads: k Tiefes eines Baum: Längster Pfad von Wurzel zu Blatt Wurzel(-knoten) Knoten Elter Kinder PG L-Tree - Martin Böhmer

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

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

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

11 PG 520 - L-Tree - Martin Böhmer
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 PG L-Tree - Martin Böhmer

12 Klassen Java Datentypen in LexicalTreeNode
{d € D | b1…bn € d} b1 bn char Hashmap<character, LexicalTreeNode> Hashmap<<docIdType>, Integer> PG L-Tree - Martin Böhmer

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

14 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<String> Welche Dokumente enthalten „Grottenolm“ und wie oft kommt das Wort dort vor? Rückgabe: Hashmap<String,Integer> PG L-Tree - Martin Böhmer

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

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

17 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 PG L-Tree - Martin Böhmer

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

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

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

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

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

23 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 Dauer Testlauf 2: 15min PG L-Tree - Martin Böhmer

24 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 PG L-Tree - Martin Böhmer

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

26 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? PG L-Tree - Martin Böhmer

27 Fernstraßenbauprivatfinanzierungs-gesetzesänderungsgesetz
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 PG L-Tree - Martin Böhmer

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

29 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 PG L-Tree - Martin Böhmer

30 PG 520 - L-Tree - Martin Böhmer
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) PG L-Tree - Martin Böhmer

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

32 Inverted Files im L-Tree Variante 1
Speichere für jedes Wort eine Textdatei mit seinen Dokumenten und Häufigkeiten {d € D | b1…bn € d} b1 bn d1: <Häufigkeit von b1…bn in d1> dm: <Häufigkeit von b1…bn in dm> Nachteil: Für jedes Wort eine Datei PG L-Tree - Martin Böhmer

33 Inverted Files im L-Tree Variante 2
Seien if1, …, ifp Inverted Files Jedes ifj 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 d1: <Dokumente zu d1> d5: <Dokumente zu d5> d99: <Dokumente zu d99> PG L-Tree - Martin Böhmer

34 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? PG L-Tree - Martin Böhmer

35 PG 520 - L-Tree - Martin Böhmer
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 PG L-Tree - Martin Böhmer

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

37 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 PG L-Tree - Martin Böhmer

38 Grundstücksverkehrsgenehmigungs-zuständigkeitsübertragungsverordnung
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 PG L-Tree - Martin Böhmer

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


Herunterladen ppt "Der Lexical Tree und seine Freunde"

Ähnliche Präsentationen


Google-Anzeigen