1 / 39

Der Lexical Tree und seine Freunde

Der Lexical Tree und seine Freunde. Ein Crashkurs zur Erstellung eines großen Wort-Indexes. Agenda. Lexical Tree Grundlagen und Datenstruktur Implementierung Experiment Bundestagsprotokolle Speicherplatz-Problematik Inverted Files Prinzip im Lexical Tree Fazit.

arich
Download Presentation

Der Lexical Tree und seine Freunde

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

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

  3. Lexical TreeGrundlagen und Datenstruktur PG 520 - L-Tree - Martin Böhmer

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

  8. b1 … bn {d € D | b1…bn€ d} 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 bifü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 PG 520 - L-Tree - Martin Böhmer

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

  10. Lexical TreeImplementierung PG 520 - L-Tree - Martin Böhmer

  11. KlassenÜberblick • LexcialTreeImplemntierung des L-Tree • LexcialTreeNodeImplentierung eines Baumknoten • LexicalTreeBuilderAufbau oder Laden des L-Trees aus Datei • FileSpider / WordSplitterFastDatei-Enumerator / Wort-Enumerator PG 520 - L-Tree - Martin Böhmer

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

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

  14. Nutzung des L-TreeWichtige 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? • Aufruf: ltree.getDocumentIds("Grottenolm") • Rückgabe: Hashmap<String,Integer> PG 520 - L-Tree - Martin Böhmer

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

  16. Lexical TreeExperiment Bundestagsprotokolle PG 520 - L-Tree - Martin Böhmer

  17. L-Tree als Wort-Dokument-Index:Experiment • L-Tree Aufbau mit Bundestagsprotokollen (BTP) der Wahlperioden 13 - 16 • Anzahl Dokumente: 50.363 • Anzahl Wörter im L-Tree: ca. 470.000 • Längstes Wort: 67 Buchstaben PG 520 - L-Tree - Martin Böhmer

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

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

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

  21. Lexical TreeSpeicherplatzproblematik PG 520 - 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 520 - 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 25.000 Dokumenten voll (Abbruch) • Testlauf 2: (Dauer 15min) • L-Tree ohne Dokument-Listen • L-Tree Dateigröße: 150 MB  Dokumentenliste muss besser organisiert werden PG 520 - 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 tragenz.B. der/die/das/dieser/dieses/ • Dokumentenlisten auslagern PG 520 - L-Tree - Martin Böhmer

  25. L-Tree als Wort-Dokument-Index:Wörter reduzieren Häufigkeit des Vorkommens eines Wortes in den 50.363 BTP Dokumenten PG 520 - 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 520 - L-Tree - Martin Böhmer

  27. BTP - Das QuizRunde 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 520 - L-Tree - Martin Böhmer

  28. Inverted Files zur Auslagerung PG 520 - 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 520 - L-Tree - Martin Böhmer

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

  31. 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} d1: Grottenolme sind Lurche. d2: Lurche singen laut lachend in der Grotte. d3: Grottenolme singen nicht. PG 520 - L-Tree - Martin Böhmer

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

  33. d1: <Dokumente zu d1> d5: <Dokumente zu d5> d99: <Dokumente zu d99> d1: <Dokumente zu d1> d5: <Dokumente zu d5> d99: <Dokumente zu d99> d1: <Dokumente zu d1> d5: <Dokumente zu d5> d99: <Dokumente zu d99> Inverted Files im L-TreeVariante 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 PG 520 - L-Tree - Martin Böhmer

  34. Inverted Files im L-TreeVariante 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 520 - L-Tree - Martin Böhmer

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

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

  37. Literaturverzeichnis • „Datenstrukturen und Datenbanken“, Schäfer 1989, Vieweg • Wikipedia - „Inverted Index“http://en.wikipedia.org/wiki/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 520 - L-Tree - Martin Böhmer

  38. BTP - Das QuizRunde 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 520 - L-Tree - Martin Böhmer

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

More Related