09.05.2003 Information Retrieval Information Retrieval New Indices for Text: PAT Trees and PAT Arrays Diese Arbeit orientiert sich an dem Aufsatz „New Indices for Text: PAT-Trees und PATArrays“ von G. Gonnet, R. Baeza-Yates und T. Snider in „Information Retrieval: Data Structure and algorithms“. 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 1 2 Information Retrieval Maria Tzolova, Fatih Ekrem Genc, PAT-Trees 13.01.2003 Information Retrieval PAT-TREE - Einführung 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 Ein PAT-Tree ist eine Datenstruktur zur effizienten Datenspeicherung und Textsuche in großen Dokumentkollektionen. - Bucketing - Supenodes PAT Array Operationen mit PAT-Array - Verbinden kleiner mit großen Arrays - Verbinden größeren Dateien Literatur 3 Maria Tzolova, Fatih Ekrem Genc, PAT-Trees 13.01.2003 4 Information Retrieval Maria Tzolova, Fatih Ekrem Genc, PAT-Trees 13.01.2003 Information Retrieval PAT-Tree – Definition Ein PAT-Tree ist • ein Patricia Tree (Practical Algorithm To Retrieve Information Coded In Alphanumeric) • über allen Sistrings eines Textes. 5 Maria Tzolova, Fatih Ekrem Genc, PAT-Trees 13.01.2003 PATRICIA Tree 6 Maria Tzolova, Fatih Ekrem Genc, PAT-Trees 13.01.2003 1 09.05.2003 Information Retrieval Information Retrieval PATRICIA Tree PATRICIA-Tree • Ein PATRICIA-Tree ist ein binärer 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) 7 13.01.2003 Maria Tzolova, Fatih Ekrem Genc, PAT-Trees 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. 8 Information Retrieval 13.01.2003 Maria Tzolova, Fatih Ekrem Genc, PAT-Trees Information Retrieval PATRICIA Tree vs. Binär Baum Binär Baum -Beispiel 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. 0 1 1 Bit 1 2 2 0 3 0 3 1 7 0 1 0 5 4 3 1 2 4 0 Bit 4 1 5 0 4 6 1 3 8 - externer Knoten 9 13.01.2003 Maria Tzolova, Fatih Ekrem Genc, PAT-Trees Bit 3 10 1 10 Bit 2 1 10 Information Retrieval - interner Knoten Maria Tzolova, Fatih Ekrem Genc, PAT-Trees Bit 5 Knoten mit nur einem Nachfolger 13.01.2003 Information Retrieval PATRICIA-Tree-Beispiel 0 1 1 Bit 1 2 0 1 3 0 3 10 7 00 0 5 5 0 1 4 8 4 1 1 0 6 2 Bit 2 1 2 Sistring Bit 3 und 4 1 Bit 5 3 Hier wurden die Knoten mit nur einem Nachfolger eliminiert -interner Knoten - externer Knoten (G.Gonnet,R.Baeza-Yates , T.Snider 1992) 11 Maria Tzolova, Fatih Ekrem Genc, PAT-Trees 13.01.2003 12 Maria Tzolova, Fatih Ekrem Genc, PAT-Trees 13.01.2003 2 09.05.2003 Information Retrieval Information Retrieval semi – infinite Strings (Sistrings) Semi-infinite Strings- Beispiel • Ein Text wird als ein einziger String als Array von Zeichen dargestellt. • Ein semi – infiniter String ist eine Folge von Zeichen dieses Strings (Text), Text: Ein kleiner Text....... Position: 1234...8910....16...... • er beginnt an einer bestimmten Position und • dehnt sich unbegrenzt weit nach rechts aus (längstens bis zum Textende) 13 Maria Tzolova, Fatih Ekrem Genc, PAT-Trees 13.01.2003 14 Information Retrieval Maria Tzolova, Fatih Ekrem Genc, PAT-Trees 13.01.2003 Information Retrieval Semi – infinite Strings semi-infinite Strings-Beispiel • Semi – infinite Strings kann man als abstrakte • Sistring 1:Ein kleiner Text ... Datenstruktur bezeichnen • Sistring 2:in kleiner Text ... • Die wichtigste Operation mit Sistrings ist der • Sistring 3:n kleiner Text ... lexikographische Vergleich von Sistrings . • Sistring 4:kleiner Text ... • Sistring 5:leiner Text ... • Sistring 10:er Text ... • Sistring 15:xt ... 15 Maria Tzolova, Fatih Ekrem Genc, PAT-Trees 13.01.2003 16 Information Retrieval Maria Tzolova, Fatih Ekrem Genc, PAT-Trees 13.01.2003 Information Retrieval PAT-Tree-Aufbau • Die Zeichen aller Zeichenketten des Textes werden als ein Baum gespeichert. PAT - Tree • 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. 17 Maria Tzolova, Fatih Ekrem Genc, PAT-Trees 13.01.2003 18 Maria Tzolova, Fatih Ekrem Genc, PAT-Trees 13.01.2003 3 09.05.2003 Information Retrieval Information Retrieval PAT -Tree Suche nach „00101“ PAT - Tree 0 • Für einen Text der Größe n hat der PAT - Tree n externe und n-1 interne Knoten. 0 • Der PAT - Tree präsentiert den Text als einen einzigen String. 10 • An jeder Position im String(Text) beginnt ein semi – infiniter String (Sistring). 1 in Binärdarstellung 19 (S.Olk, PAT-Trees/PAT -Arrays, 1997/98) Maria Tzolova, Fatih Ekrem Genc, PAT-Trees 13.01.2003 20 Information Retrieval Maria Tzolova, Fatih Ekrem Genc, PAT-Trees Information Retrieval Präfix Suche Suchalgorithmen • Bei Präfix Suche werden alle Sistrings , die ein 1. Präfix Suche 2. Nährungssuche 3. Bereichssuche 4. Häufigkeitssuche 5. Längste-Wiederholung-Suche 6. Suchen nach regulären Ausdrücken 21 13.01.2003 Maria Tzolova, Fatih Ekrem Genc, PAT-Trees 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. 13.01.2003 22 Information Retrieval Maria Tzolova, Fatih Ekrem Genc, PAT-Trees 13.01.2003 Information Retrieval Präfix Suche Nährungssuche 0 • Es werden alle Positionen gesucht, bei denen ein String s1 eine bestimmte Anzahl von Zeichen von einem andern String s2 entfernt ist. • Zeitbedarf: (m 1 +m 2)log m 1 ,für m 1 < m 2 0 10 0 1 Suche alle Wörter die mit „001“ beginnen. 23 (S.Olk, PAT-Trees/PAT -Arrays, 1997/98) Maria Tzolova, Fatih Ekrem Genc, PAT-Trees 13.01.2003 24 Maria Tzolova, Fatih Ekrem Genc, PAT-Trees 13.01.2003 4 09.05.2003 Information Retrieval Information Retrieval Nährungssuche Bereichssuche 0 0 • Gesucht werden alle Strings, die entsprechend 1 10 der lexikographischen Ordnung zwischen zwei gegebenen Strings liegen. • Zeitbedarf: O(log n). 1 0 25 S1=01100,S2=00100,m=4 (S.Olk, PAT-Trees/PAT -Arrays, 1997/98) 13.01.2003 Maria Tzolova, Fatih Ekrem Genc, PAT-Trees 26 Information Retrieval Maria Tzolova, Fatih Ekrem Genc, PAT-Trees 13.01.2003 Information Retrieval Bereichssuche Häufigkeitssuche 0 • Gesucht wird der String,der am häufigsten 0 vorkommt. 1 • 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, durchsucht. • Zeitaufwand: O(n/a), a= durchschnittliche Antwortgröße Suche alles zwischen „00“ und „01“. 27 (S.Olk, PAT-Trees/PAT -Arrays, 1997/98) 13.01.2003 Maria Tzolova, Fatih Ekrem Genc, PAT-Trees 28 Information Retrieval Maria Tzolova, Fatih Ekrem Genc, PAT-Trees 13.01.2003 Information Retrieval Längste-Wiederholung-Suche Häufigkeitssuche 0 • Es wird nach dem längsten Sistring gesucht, 1 der zweimal im Text vorkommt. 0 0 1 0 1 • Bei einem PAT-Tree entspricht dies dem höchsten Unterbaum. 10 0 1 Bsp: Häufigster String von 2 Zeichen 29 (S.Olk, PAT-Trees/PAT -Arrays, 1997/98) Maria Tzolova, Fatih Ekrem Genc, PAT-Trees 13.01.2003 30 Maria Tzolova, Fatih Ekrem Genc, PAT-Trees 13.01.2003 5 09.05.2003 Information Retrieval Information Retrieval Suchen nach regulären Ausdrücken Längste-Wiederholung-Suche 0 • 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. 0 10 Suche längste Wiederholung zwischen „1“ und „8“ 31 (S.Olk, PAT-Trees/PAT -Arrays, 1997/98) Maria Tzolova, Fatih Ekrem Genc, PAT-Trees 13.01.2003 32 Information Retrieval 13.01.2003 Information Retrieval Suchen nach regulären Ausdrücken Erstellen PAT -Trees als Patricia Bäume • Der endliche Automat wird auf dem binären • PAT- Trees werden als Patricia Bäume 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. 33 Maria Tzolova, Fatih Ekrem Genc, PAT-Trees Maria Tzolova, Fatih Ekrem Genc, PAT-Trees 13.01.2003 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. 34 Information Retrieval Maria Tzolova, Fatih Ekrem Genc, PAT-Trees 13.01.2003 Information Retrieval Erstellen PAT -Trees als Patricia Bäume Bucketing • Bucketing ist das Zusammenfassen von • Diese Probleme werden gelöst durch : – – externen Knoten, um interne Knoten einzusparen. Bucketing von externen Knoten Das Einteilen des Baumes im Speicher in Superknoten (Supernodes ) • Buckets von b externen Knoten sparen b-1 innere Knoten. • Bei der Suche in einem Bucket werden die externen Knoten, die im Bucketsind, einzeln durchsucht. 35 Maria Tzolova, Fatih Ekrem Genc, PAT-Trees 13.01.2003 36 Maria Tzolova, Fatih Ekrem Genc, PAT-Trees 13.01.2003 6 09.05.2003 Information Retrieval Information Retrieval Bucketing 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. 37 Maria Tzolova, Fatih Ekrem Genc, PAT-Trees 13.01.2003 38 Information Retrieval 13.01.2003 Information Retrieval Supernodes (Superknoten) 39 (S.Olk, PAT-Trees/PAT -Arrays, 1997/98) Maria Tzolova, Fatih Ekrem Genc, PAT-Trees Supernodes (Superknoten) • Supernodes bringen Vorteile im Zugriff und • Jeder Supernode endet entweder in einem 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. 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 13.01.2003 40 Information Retrieval Maria Tzolova, Fatih Ekrem Genc, PAT-Trees 13.01.2003 Information Retrieval PAT-Tree als PAT-Array Supernodes (Superknoten) • Für große Datenmengen passt der PAT-Tree nicht in dem Hauptspeicher, deshalb werden PAT-Arrays entwickelt, die weniger Speicherplatz brauchen. 41 (S.Olk, PAT-Trees/PAT -Arrays, 1997/98) Maria Tzolova, Fatih Ekrem Genc, PAT-Trees 13.01.2003 42 Maria Tzolova, Fatih Ekrem Genc, PAT-Trees 13.01.2003 7 09.05.2003 Information Retrieval Information Retrieval PAT-Array 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. • PAT-Array enthält Pointer auf Sistrings • Speicherbedarf - nur ein Speicherwort pro Sistring. • Es wird Binärsuche durchgeführt. (G.Gonnet, R.Baeza-Yates,T.Snider, 1992) • Suchzeit: O(log2n) 43 Maria Tzolova, Fatih Ekrem Genc, PAT-Trees 13.01.2003 44 Information Retrieval Maria Tzolova, Fatih Ekrem Genc, PAT-Trees 13.01.2003 Information Retrieval PAT-Array 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. 45 Maria Tzolova, Fatih Ekrem Genc, PAT-Trees 13.01.2003 (S.Olk, PAT-Trees/PAT -Arrays, 1997/98) 46 Information Retrieval Maria Tzolova, Fatih Ekrem Genc, PAT-Trees 13.01.2003 Information Retrieval PAT - Array Operationen mit PAT-Array - Verbinden kleiner mit großen Arrys - Verbinden großer Dateien 47 (S.Olk, PAT-Trees/PAT -Arrays, 1997/98) Maria Tzolova, Fatih Ekrem Genc, PAT-Trees 13.01.2003 48 Maria Tzolova, Fatih Ekrem Genc, PAT-Trees 13.01.2003 8 09.05.2003 Information Retrieval Information Retrieval Verbinden kleiner mit großen Arrays 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. • 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. 49 Maria Tzolova, Fatih Ekrem Genc, PAT-Trees 13.01.2003 50 Information Retrieval Maria Tzolova, Fatih Ekrem Genc, PAT-Trees 13.01.2003 Information Retrieval Verbinden Großer Dateien Verbinden kleiner mit großen Arrays • Häufige Diskzugriffe bei Verbindung von großen Dateien. • Bei n Schlüssel (in einer Heap-Struktur organisiert ) und m Files werden n Diskzugriffe gemacht, um die Schlüssel aus dem Text zu holen. • Eine Vorsortierung der Textstrings kann das Problem lösen. 51 (S.Olk, PAT-Trees/PAT -Arrays, 1997/98) Maria Tzolova, Fatih Ekrem Genc, PAT-Trees 13.01.2003 52 Information Retrieval 13.01.2003 Information Retrieval Literatur Literatur [5]Norbert Fuhr, IR -Skriptum zur Vorlesung im WS00/01, 12.Okt.2000 www.is.informatik.uni-duisberg.de/teaching/dortmund/lectures/ir_ws00-01/irskall.pdf (28.12.2002) [1]G. H. Gonnet, R. A. Baeza -Yates, und T. Snider.New indices für text: Pat trees and pat arrays. In Information Retrieval:Data Structures & Algorithms(66-82).Prentice Hall.1992 [2]G. H. Gonnet, R. A. Baeza -Yates und T. Snider. Lexicographical indices for text: inverted files vs. PAT trees(1991). Technical Report TR – OED – 91 – 01, University of Waterloo, 1991 [2]R.Sedgewick: Algorithmen. Addison – Wesley, 1991 [3]Stefan Olk, PAT -trees/PAT-Arrays, Ausarbeitung eines Vortrags für das Proseminar Online Recherche Techniken im WS1997/1998 www.informatik.uni-bonn.de/~tb/Lehre/ws97/psOR/Ausarbeitungen (28.12.2002) [4] Jörg Schönebaum, Information Retrieval: PAT-Bäume und Stringsuche,PS Information Retrieval, 9.11.1999 www.cs.uni-magdeburg.de/~joschoen/ir/index.html (28.12.2002) 53 Maria Tzolova, Fatih Ekrem Genc, PAT-Trees Maria Tzolova, Fatih Ekrem Genc, PAT-Trees 13.01.2003 54 Maria Tzolova, Fatih Ekrem Genc, PAT-Trees 13.01.2003 9