Der Lexical Tree und seine Freunde

Slides:



Advertisements
Ähnliche Präsentationen
Algorithmen und Datenstrukturen
Advertisements

Imperative Programmierung
Punkt-in-Polygon-Verfahren III (R/R+-Baum)
Grundlagen des A*-Algorithmus und Anwendung in der Routenplanung
Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)
Claudio Moraga; Gisbert Dittrich
Indizierung von Graphen durch häufige Subgraphen (2)
Kapitel 6: Klassifizierung von Sortiertechniken
Indexed Sequential Access Method
der Universität Oldenburg
Sortierverfahren Richard Göbel.
Java: Dynamische Datentypen
Sortierverfahren Richard Göbel.
Algorithmentheorie 04 –Hashing
WS Algorithmentheorie 05 - Treaps Prof. Dr. Th. Ottmann.
Algorithmen und Datenstrukturen
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (10 - Suchverfahren) T. Lauer.
Algorithmen und Datenstrukturen
Informatik II, SS 2008 Algorithmen und Datenstrukturen Vorlesung 4 Prof. Dr. Thomas Ottmann Algorithmen & Datenstrukturen, Institut für Informatik Fakultät.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (17 – Bäume: Grundlagen und natürliche Suchbäume) Prof. Th. Ottmann.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (11-1 –Selbstanordnende lineare Listen) Prof. Th. Ottmann.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (27-Selbstanordnende lineare Listen) Prof. Th. Ottmann.
Informatik II, SS 2008 Algorithmen und Datenstrukturen Vorlesung 16 Prof. Dr. Thomas Ottmann Algorithmen & Datenstrukturen, Institut für Informatik Fakultät.
Algorithmen und Datenstrukturen
Universität Dortmund, Lehrstuhl Informatik 1 EINI II Einführung in die Informatik für Naturwissenschaftler und Ingenieure.
EINI-I Einführung in die Informatik für Naturwissenschaftler und Ingenieure I Vorlesung 2 SWS WS 99/00 Gisbert Dittrich FBI Unido
Kap. 6.2 Binäre B-Bäume Ullmann: (2, 3) - Bäume
Relevanz Ranking Bisher: Sind wir davon ausgegangen, dass das Ergebnis des Rankings des statistischen Verfahrens in den Index geschrieben wird und dem.
Relevanz Ranking Bisher:
Heaps und Priority Queues
Minimum Spanning Tree: MST
Intelligentes Crawling im WWW mit Hilfe intuitiver Suchbedingungen
AkadOR W. Wagner, Didaktik der Chemie, Universität Bayreuth Sicherung auf HD: Beschreibung z.B. HD 500 GB: 1.Partition 1: Laufwerk C:, ca. 250GB Inhalt:
Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)
Einführung MySQL mit PHP
1 Dienstbeschreibung mit DAML Ein graphischer Editor für DAML - Ting Zheng Betreuer: Michael Klein, Philipp Obreiter.
GlobalStorehouseGlobalStorehouse Institut für Modellbildung und Simulation IMS Bemerkung: Mit diesem "MB" und "WBM" lässt sich der ganze Zyklus abdecken.
Eine Produktion von der Firma Presentations GmbH
Verfahren zur Stammformreduktion
7.1 Externes Suchen Bisherige Algorithmen: geeignet, wenn alle Daten im Hauptspeicher. Große Datenmengen: oft auf externen Speichermedien, z.B. Festplatte.
Unterrichtsmaterial 3. Klasse
Splay Trees Von Projdakov Benjamin.
2. Die rekursive Datenstruktur Baum 2
Flüsse, Schnitte, bipartite Graphen
Effiziente Algorithmen
Diskrete Mathematik II
Effiziente Algorithmen Hartmut Klauck Universität Frankfurt SS
Effiziente Algorithmen
Effiziente Algorithmen Hartmut Klauck Universität Frankfurt SS
Effiziente Algorithmen Hartmut Klauck Universität Frankfurt SS
Hartmut Klauck Universität Frankfurt SS
Information und Kommunikation
Einführung in die Informatik für Naturwissenschaftler und Ingenieure
1.2 Trennung von Struktur und Inhalt
Jamshid Azizi: Folie Isomorphietest Jamshid Azizi
MODAL-PARTIKELN.
Informatik Datenstruktur Graph 3.3 Durchlaufen von Graphen
Übung 4.1 Strukturierte Datentypen
Das Traveling Salesman Problem (TSP)
Analyse der Laufzeit von Algorithmen
Präsentation: Google Picasa
1 6.4 Verwaltung semistrukturierter Daten - was ist das? Datenverwaltung für XML-Dokumente - Daten in XML-Gewand - eigentlich XML-Dokumente - Abbildung.
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Diskrete Mathematik II Vorlesung Datenstrukturen für den Algorithmus von.
Gliederung der Vorlesung
Pool Informatik, Sj 11/12 GZG FN W.Seyboldt 1 Pool Informatik 5 GZG FN Sj. 11/12 Kopieren, Daten, Programme.
Algorithmen und Datenstrukturen Prof. Dr. Ralf Möller Universität zu Lübeck Institut für Informationssysteme Stefan Werner (Übungen) sowie viele Tutoren.
Binärbäume.
Programmiersprachen II Vorbesprechung Klausur Prof. Dr. Reiner Güttler Fachbereich GIS HTW.
Programmiersprachen II Fortsetzung Datenstrukturen Balancierte Bäume 2 Prof. Dr. Reiner Güttler Fachbereich GIS HTW.
2. Die rekursive Datenstruktur Baum 2.1 Von der Liste zum Baum
 Präsentation transkript:

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

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

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

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

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

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

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

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

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

Lexical Tree Implementierung 10.01.2008 PG 520 - L-Tree - Martin Böhmer

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

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

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

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

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

Lexical Tree Experiment Bundestagsprotokolle 10.01.2008 PG 520 - L-Tree - Martin Böhmer

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

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

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

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

Lexical Tree Speicherplatzproblematik 10.01.2008 PG 520 - L-Tree - Martin Böhmer

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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