1 / 54

Inhalt

New Indices for Text: PAT Trees and PAT Arrays Ruprecht - Karls - Universität Heidelberg Lehrstuhl für Computerlinguistik HS Information Retrieval Dozentin: Dr. Karin Haenelt Referenten: Maria Tzolova, Fatih Ekrem Genc 13.01.2003.

lindsey
Télécharger la présentation

Inhalt

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. New Indices for Text:PAT Trees and PAT ArraysRuprecht - Karls - Universität Heidelberg Lehrstuhl für Computerlinguistik HS Information Retrieval Dozentin: Dr. Karin HaeneltReferenten: Maria Tzolova, Fatih Ekrem Genc13.01.2003

  2. Diese Arbeit orientiert sich an dem Aufsatz „New Indices for Text: PAT-Trees und PAT-Arrays“ von G. Gonnet, R. Baeza-Yates und T. Snider in „Information Retrieval: Data Structure and algorithms“. Maria Tzolova, Fatih Ekrem Genc, PAT-Trees

  3. Inhalt PAT – Tree – Einführung PAT – Tree - Definition PATRICIA Tree Semi-infinite Strings PAT- Tree Suchalgorithmen auf PAT-Trees Erstellen von PAT Trees als PATRICIA Trees - Bucketing - Supenodes PAT Array Operationen mit PAT-Array - Verbinden kleiner mit großen Arrays - Verbinden größeren Dateien Literatur Maria Tzolova, Fatih Ekrem Genc, PAT-Trees

  4. PAT-TREE - Einführung EinPAT-Tree ist eine Datenstruktur zur effizienten Datenspeicherung und Textsuche in großen Dokumentkollektionen. Maria Tzolova, Fatih Ekrem Genc, PAT-Trees

  5. PAT-Tree – Definition Ein PAT-Tree ist • ein Patricia Tree (Practical Algorithm To Retrieve Information Coded In Alphanumeric) • über allen Sistrings eines Textes. Maria Tzolova, Fatih Ekrem Genc, PAT-Trees

  6. PATRICIA Tree Maria Tzolova, Fatih Ekrem Genc, PAT-Trees

  7. PATRICIA Tree Patricia trees are a practical and efficient solution for handling variable length or very long keys; they are particulary well suited for text searching. Note that the problem generated by verylong common prefixes virtually disappears for Patricia trees. (G.Gonnet,R.Baeza-Yates 1991) Maria Tzolova, Fatih Ekrem Genc, PAT-Trees

  8. PATRICIA-Tree • Ein PATRICIA-Tree ist ein binärer Digitalbaum, in dem die Verzweigung der Knoten von den Bits der Schlüssel bestimmt wird(bei 0 nach links, bei 1 nach rechts ). • Ein binärer Digitalbaum ist ein Baum, in dem die Knoten höchstens zwei Nachfolger haben. Maria Tzolova, Fatih Ekrem Genc, PAT-Trees

  9. PATRICIA Tree vs. Binär Baum In einem PATRICIA Tree: • werden die internen Knoten, die nur einen Nachfolger haben, eliminiert und damit wird weniger Speicherplatz gebraucht. • enthalten nur die externen Knoten Schlüsselwerte. • haben die internen Knoten einen Index, der die Position des Bits angibt, das zum Verzweigen benutzt wird. Maria Tzolova, Fatih Ekrem Genc, PAT-Trees

  10. Binär Baum -Beispiel 0 1 1 Bit 1 Bit 2 Bit 3 Bit 4 Bit 5 2 2 0 0 1 1 3 3 3 2 0 1 0 1 10 7 4 5 1 4 1 10 0 5 3 0 6 1 Knoten mit nur einem Nachfolger 4 8 - externer Knoten - interner Knoten Maria Tzolova, Fatih Ekrem Genc, PAT-Trees

  11. PATRICIA-Tree-Beispiel 0 1 1 Bit 1 Bit 2 Bit 3 und 4 Bit 5 2 2 0 1 00 1 3 3 4 2 0 10 0 1 0 1 7 5 5 1 6 3 0 1 Hier wurden die Knoten mit nur einem Nachfolger eliminiert 4 8 • interner Knoten - externer Knoten (G.Gonnet,R.Baeza-Yates, T.Snider 1992) Maria Tzolova, Fatih Ekrem Genc, PAT-Trees

  12. Sistring Maria Tzolova, Fatih Ekrem Genc, PAT-Trees

  13. semi – infinite Strings (Sistrings) • Ein Text wird als ein einziger String als Array von Zeichen dargestellt. • Ein semi – infiniter String ist eine Folge von Zeichen dieses Strings (Text), • er beginnt an einer bestimmten Position und • dehnt sich unbegrenzt weit nach rechts aus(längstens bis zum Textende) Maria Tzolova, Fatih Ekrem Genc, PAT-Trees

  14. Semi-infinite Strings- Beispiel Text: Position: Ein kleiner Text....... 1234...8910....16...... Maria Tzolova, Fatih Ekrem Genc, PAT-Trees

  15. semi-infinite Strings-Beispiel • Sistring 1:Ein kleiner Text ... • Sistring 2:in kleiner Text ... • Sistring 3:n kleiner Text ... • Sistring 4:kleiner Text ... • Sistring 5:leiner Text ... • Sistring 10:er Text ... • Sistring 15:xt ... Maria Tzolova, Fatih Ekrem Genc, PAT-Trees

  16. Semi – infinite Strings • Semi – infinite Strings kann man als abstrakte Datenstruktur bezeichnen • Die wichtigste Operation mit Sistrings ist der lexikographische Vergleich von Sistrings. Maria Tzolova, Fatih Ekrem Genc, PAT-Trees

  17. PAT - Tree Maria Tzolova, Fatih Ekrem Genc, PAT-Trees

  18. PAT-Tree-Aufbau • Die Zeichen aller Zeichenketten des Textes werden als ein Baum gespeichert. • Dabei werden die Zeichenkette jeweils als Pfad von der Wurzel bis zu den externen Knoten gespeichert. • Die Wurzel entspricht dem ersten Zeichen,die Nachfolger dem zweiten Zeichen usw. Maria Tzolova, Fatih Ekrem Genc, PAT-Trees

  19. PAT-TreeSuche nach „00101“ 0 0 10 1 in Binärdarstellung (S.Olk, PAT-Trees/PAT-Arrays, 1997/98) Maria Tzolova, Fatih Ekrem Genc, PAT-Trees

  20. PAT - Tree • Für einen Text der Größe n hat der PAT - Tree n externeund n-1 interne Knoten. • Der PAT - Tree präsentiert den Text als einen einzigen String. • An jeder Position im String(Text) beginnt ein semi – infiniter String (Sistring). Maria Tzolova, Fatih Ekrem Genc, PAT-Trees

  21. Suchalgorithmen 1. Präfix Suche 2. Nährungssuche 3. Bereichssuche 4. Häufigkeitssuche 5. Längste-Wiederholung-Suche 6. Suchen nach regulären Ausdrücken Maria Tzolova, Fatih Ekrem Genc, PAT-Trees

  22. Präfix Suche • Bei Präfix Suche werden alle Sistrings, die ein gemeinsames Präfix haben, gesucht. • Man sucht nach einem Präfix, bis es gefunden ist oder ein externer Knoten erreicht wird. • Zeitbedarf: O(log n), n=Anzahl der externen Knoten. Maria Tzolova, Fatih Ekrem Genc, PAT-Trees

  23. Präfix Suche 0 0 10 0 1 Suche alle Wörter die mit „001“ beginnen. (S.Olk, PAT-Trees/PAT-Arrays, 1997/98) Maria Tzolova, Fatih Ekrem Genc, PAT-Trees

  24. Nährungssuche • Es werden alle Positionen gesucht, bei denen ein String s1 eine bestimmte Anzahl von Zeichen von einem andern String s2entfernt ist. • Zeitbedarf: (m1 +m2)log m1 ,für m1 < m2 Maria Tzolova, Fatih Ekrem Genc, PAT-Trees

  25. Nährungssuche 0 0 1 10 1 0 S1=01100,S2=00100,m=4 (S.Olk, PAT-Trees/PAT-Arrays, 1997/98) Maria Tzolova, Fatih Ekrem Genc, PAT-Trees

  26. Bereichssuche • Gesucht werden alle Strings, die entsprechend der lexikographischen Ordnung zwischen zwei gegebenen Strings liegen. • Zeitbedarf: O(log n). Maria Tzolova, Fatih Ekrem Genc, PAT-Trees

  27. Bereichssuche 0 0 1 Suche alles zwischen „00“ und „01“. (S.Olk, PAT-Trees/PAT-Arrays, 1997/98) Maria Tzolova, Fatih Ekrem Genc, PAT-Trees

  28. Häufigkeitssuche • Gesucht wird der String,der am häufigsten vorkommt. • Bei der Suche nach dem häufigsten String der Länge n , wird der größten Teilbaum, der eine Distanz von n zur Wurzel aufweist, durch-sucht. • Zeitaufwand: O(n/a), a= durchschnittliche Antwortgröße Maria Tzolova, Fatih Ekrem Genc, PAT-Trees

  29. Häufigkeitssuche 0 1 0 1 0 1 0 10 0 1 Bsp: Häufigster String von 2 Zeichen (S.Olk, PAT-Trees/PAT-Arrays, 1997/98) Maria Tzolova, Fatih Ekrem Genc, PAT-Trees

  30. Längste-Wiederholung-Suche • Es wird nach dem längsten Sistring gesucht, der zweimal im Text vorkommt. • Bei einem PAT-Tree entspricht dies dem höchsten Unterbaum. Maria Tzolova, Fatih Ekrem Genc, PAT-Trees

  31. Längste-Wiederholung-Suche 0 0 10 Suche längste Wiederholung zwischen „1“ und „8“ (S.Olk, PAT-Trees/PAT-Arrays, 1997/98) Maria Tzolova, Fatih Ekrem Genc, PAT-Trees

  32. Suchen nach regulären Ausdrücken • Der reguläre Ausdruck wird zuerst in einem minimalen deterministischen endlichen Automat umgewandelt. • Dieser Automat wird dann in einen binären Automat konvertiert, der der Binärcodierung des verwendeten Zeichensatzes entspricht. Maria Tzolova, Fatih Ekrem Genc, PAT-Trees

  33. Suchen nach regulären Ausdrücken • Der endliche Automat wird auf dem binären Baum simuliert. Die Wurzel entspricht dabei dem Startzustand des Automaten. • Bei jedem Knoten, der einem Endzustand des Automaten entspricht wird dabei der gesamte darunter liegenden Teilbaum als Resultat ausgegeben. Maria Tzolova, Fatih Ekrem Genc, PAT-Trees

  34. Erstellen PAT-Trees als Patricia Bäume • PAT- Trees werden als Patricia Bäume implementiert. • Patricia Bäume haben zwei große Nachteile: • Hoher Speicherbedarf für Daten der inneren Knoten • Hohe Anzahl von Diskzugriffe bei großen Datensätze. Maria Tzolova, Fatih Ekrem Genc, PAT-Trees

  35. Erstellen PAT-Trees als Patricia Bäume • Diese Probleme werden gelöst durch : • Bucketing von externen Knoten • Das Einteilen des Baumes im Speicher in Superknoten (Supernodes) Maria Tzolova, Fatih Ekrem Genc, PAT-Trees

  36. Bucketing • Bucketing ist das Zusammenfassen von externen Knoten, um interne Knoten einzusparen. • Buckets von b externen Knoten sparen b-1 innere Knoten. • Bei der Suche in einem Bucket werden die externen Knoten, die im Bucket sind, einzeln durchsucht. Maria Tzolova, Fatih Ekrem Genc, PAT-Trees

  37. Bucketing • In den Buckets sind die externen Knoten unsortiert und das kann die Suchzeit verschlechtern. • Die Buckets haben einen Füllzustand von b  N, aber wegen der Baumstruktur werden die Buckets nicht immer völlig gefüllt. Maria Tzolova, Fatih Ekrem Genc, PAT-Trees

  38. Bucketing (S.Olk, PAT-Trees/PAT-Arrays, 1997/98) Maria Tzolova, Fatih Ekrem Genc, PAT-Trees

  39. Supernodes (Superknoten) • Supernodes bringen Vorteile im Zugriff und Platzbedarf. • Es wird so viel wie möglich vom Baum in die Plattensektoren eingeteilt, solange bis jeder Sektor einen bestimmten Eintragspunkt erreicht hat. • Ein Supernode hat die Größe eines Festplattensektors. Maria Tzolova, Fatih Ekrem Genc, PAT-Trees

  40. Supernodes (Superknoten) • Jeder Supernode endet entweder in einem externen Konten oder in einem Zeiger zu einem anderen Supernode. • Die Zeiger der internen Knoten zeigen entweder auf einen anderen Supernode oder auf einen Knoten in dem selben Supernode und so werden die Speicherungskosten reduziert. Maria Tzolova, Fatih Ekrem Genc, PAT-Trees

  41. Supernodes (Superknoten) (S.Olk, PAT-Trees/PAT-Arrays, 1997/98) Maria Tzolova, Fatih Ekrem Genc, PAT-Trees

  42. PAT-Tree als PAT-Array • Für große Datenmengen passt der PAT-Tree nicht in dem Hauptspeicher, deshalb werden PAT-Arrays entwickelt, die weniger Speicherplatz brauchen. Maria Tzolova, Fatih Ekrem Genc, PAT-Trees

  43. PAT-Array PAT arrays are an efficient implementation of PAT trees, and support a query language more pauerfull than do traditional structures based on keywords and Boolean operations. (G.Gonnet, R.Baeza-Yates,T.Snider, 1992) Maria Tzolova, Fatih Ekrem Genc, PAT-Trees

  44. PAT-Array • PAT-Array enthält Pointer auf Sistrings • Speicherbedarf - nur ein Speicherwort pro Sistring. • Es wird Binärsuche durchgeführt. • Suchzeit: O(log2n) Maria Tzolova, Fatih Ekrem Genc, PAT-Trees

  45. PAT-Array • PAT-Arrays werden bei der Bildung von großen Indizes verwendet. • In einem PAT-Array sind die externen Knoten innerhalb eines Buckets sortiert. • PAT-Arrays sind aber völlig unsortiert, was die Position der Sistrings innerhalb des Textes betrifft und das führt zu viele Festplattenzugriffen. Maria Tzolova, Fatih Ekrem Genc, PAT-Trees

  46. PAT-Array (S.Olk, PAT-Trees/PAT-Arrays, 1997/98) Maria Tzolova, Fatih Ekrem Genc, PAT-Trees

  47. PAT - Array (S.Olk, PAT-Trees/PAT-Arrays, 1997/98) Maria Tzolova, Fatih Ekrem Genc, PAT-Trees

  48. Operationen mit PAT-Array - Verbinden kleiner mit großen Arrys - Verbinden großer Dateien Maria Tzolova, Fatih Ekrem Genc, PAT-Trees

  49. Verbinden kleiner mit großen Arrays • Es werden ein kleiner und ein großer Text mit ihren zugehörigen Pat-Arrays vorausgesetzt. • Der kleine Text, sein Pat-Array und ein Zählarray sind in dem Hauptspeicher gespeichert. • Sequentielles Einlesen des großen Textes. Maria Tzolova, Fatih Ekrem Genc, PAT-Trees

  50. Verbinden kleiner mit großen Arrays • Das Zählarray speichert, wie viele Sistrings des großen Textes zwischen Indexpaare des kleinen Textes gehören. • Für jeden Sistrings des großen Textes wird geprüft, zwischen welches Indexpaar des kleinen Textes er einsortiert werden muß. • Die Verbindung der Arrays findet anhand der Werte des Zählarrays statt. Maria Tzolova, Fatih Ekrem Genc, PAT-Trees

More Related