Information Retrieval 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 1 Information Retrieval 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“. 2 Maria Tzolova, Fatih Ekrem Genc, PAT-Trees 13.01.2003 Information Retrieval 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 3 Maria Tzolova, Fatih Ekrem Genc, PAT-Trees 13.01.2003 Information Retrieval PAT-TREE - Einführung Ein PAT-Tree ist eine Datenstruktur zur effizienten Datenspeicherung und Textsuche in großen Dokumentkollektionen. 4 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 Information Retrieval PATRICIA Tree 6 Maria Tzolova, Fatih Ekrem Genc, PAT-Trees 13.01.2003 Information Retrieval 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) 7 Maria Tzolova, Fatih Ekrem Genc, PAT-Trees 13.01.2003 Information Retrieval 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. 8 Maria Tzolova, Fatih Ekrem Genc, PAT-Trees 13.01.2003 Information Retrieval 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. 9 Maria Tzolova, Fatih Ekrem Genc, PAT-Trees 13.01.2003 Information Retrieval Binär Baum -Beispiel 0 Bit 1 2 0 1 3 7 1 2 0 0 1 3 0 1 4 5 1 10 1 3 1 Bit 2 2 Bit 3 10 4 Bit 4 0 1 6 3 5 10 0 1 4 8 - externer Knoten - 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 7 00 3 0 1 0 5 5 1 6 1 4 8 Bit 2 1 4 10 0 2 2 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 Information Retrieval Sistring 12 Maria Tzolova, Fatih Ekrem Genc, PAT-Trees 13.01.2003 Information Retrieval 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) 13 Maria Tzolova, Fatih Ekrem Genc, PAT-Trees 13.01.2003 Information Retrieval Semi-infinite Strings- Beispiel Text: Ein kleiner Text....... Position: 1234...8910....16...... 14 Maria Tzolova, Fatih Ekrem Genc, PAT-Trees 13.01.2003 Information Retrieval 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 ... 15 Maria Tzolova, Fatih Ekrem Genc, PAT-Trees 13.01.2003 Information Retrieval Semi – infinite Strings • Semi – infinite Strings kann man als abstrakte Datenstruktur bezeichnen • Die wichtigste Operation mit Sistrings ist der lexikographische Vergleich von Sistrings. 16 Maria Tzolova, Fatih Ekrem Genc, PAT-Trees 13.01.2003 Information Retrieval PAT - Tree 17 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. • 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. 18 Maria Tzolova, Fatih Ekrem Genc, PAT-Trees 13.01.2003 Information Retrieval PAT-Tree Suche nach „00101“ 0 0 10 1 in Binärdarstellung 19 (S.Olk, PAT-Trees/PAT-Arrays, 1997/98) Maria Tzolova, Fatih Ekrem Genc, PAT-Trees 13.01.2003 Information Retrieval PAT - Tree • Für einen Text der Größe n hat der PAT - Tree n externe und 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). 20 Maria Tzolova, Fatih Ekrem Genc, PAT-Trees 13.01.2003 Information Retrieval 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 21 Maria Tzolova, Fatih Ekrem Genc, PAT-Trees 13.01.2003 Information Retrieval 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. 22 Maria Tzolova, Fatih Ekrem Genc, PAT-Trees 13.01.2003 Information Retrieval Präfix Suche 0 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 Information Retrieval Nährungssuche • Es werden alle Positionen gesucht, bei denen ein String s1 eine bestimmte Anzahl von Zeichen von einem andern String s2 entfernt ist. • Zeitbedarf: (m1 +m2)log m1 ,für m1 < m2 24 Maria Tzolova, Fatih Ekrem Genc, PAT-Trees 13.01.2003 Information Retrieval Nährungssuche 0 0 1 10 1 0 25 S1=01100,S2=00100,m=4 (S.Olk, PAT-Trees/PAT-Arrays, 1997/98) Maria Tzolova, Fatih Ekrem Genc, PAT-Trees 13.01.2003 Information Retrieval Bereichssuche • Gesucht werden alle Strings, die entsprechend der lexikographischen Ordnung zwischen zwei gegebenen Strings liegen. • Zeitbedarf: O(log n). 26 Maria Tzolova, Fatih Ekrem Genc, PAT-Trees 13.01.2003 Information Retrieval Bereichssuche 0 0 1 Suche alles zwischen „00“ und „01“. 27 (S.Olk, PAT-Trees/PAT-Arrays, 1997/98) Maria Tzolova, Fatih Ekrem Genc, PAT-Trees 13.01.2003 Information Retrieval 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 28 Maria Tzolova, Fatih Ekrem Genc, PAT-Trees 13.01.2003 Information Retrieval Häufigkeitssuche 0 0 0 1 1 0 1 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 Information Retrieval 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. 30 Maria Tzolova, Fatih Ekrem Genc, PAT-Trees 13.01.2003 Information Retrieval Längste-Wiederholung-Suche 0 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 Information Retrieval 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. 32 Maria Tzolova, Fatih Ekrem Genc, PAT-Trees 13.01.2003 Information Retrieval 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. 33 Maria Tzolova, Fatih Ekrem Genc, PAT-Trees 13.01.2003 Information Retrieval 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. 34 Maria Tzolova, Fatih Ekrem Genc, PAT-Trees 13.01.2003 Information Retrieval Erstellen PAT-Trees als Patricia Bäume • Diese Probleme werden gelöst durch : – – 35 Bucketing von externen Knoten Das Einteilen des Baumes im Speicher in Superknoten (Supernodes) Maria Tzolova, Fatih Ekrem Genc, PAT-Trees 13.01.2003 Information Retrieval 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. 36 Maria Tzolova, Fatih Ekrem Genc, PAT-Trees 13.01.2003 Information Retrieval 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 Information Retrieval Bucketing 38 (S.Olk, PAT-Trees/PAT-Arrays, 1997/98) Maria Tzolova, Fatih Ekrem Genc, PAT-Trees 13.01.2003 Information Retrieval 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. 39 Maria Tzolova, Fatih Ekrem Genc, PAT-Trees 13.01.2003 Information Retrieval 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. 40 Maria Tzolova, Fatih Ekrem Genc, PAT-Trees 13.01.2003 Information Retrieval Supernodes (Superknoten) 41 (S.Olk, PAT-Trees/PAT-Arrays, 1997/98) Maria Tzolova, Fatih Ekrem Genc, PAT-Trees 13.01.2003 Information Retrieval 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. 42 Maria Tzolova, Fatih Ekrem Genc, PAT-Trees 13.01.2003 Information Retrieval 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) 43 Maria Tzolova, Fatih Ekrem Genc, PAT-Trees 13.01.2003 Information Retrieval PAT-Array • PAT-Array enthält Pointer auf Sistrings • Speicherbedarf - nur ein Speicherwort pro Sistring. • Es wird Binärsuche durchgeführt. • Suchzeit: O(log2n) 44 Maria Tzolova, Fatih Ekrem Genc, PAT-Trees 13.01.2003 Information Retrieval 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 Information Retrieval PAT-Array (S.Olk, PAT-Trees/PAT-Arrays, 1997/98) 46 Maria Tzolova, Fatih Ekrem Genc, PAT-Trees 13.01.2003 Information Retrieval PAT - Array 47 (S.Olk, PAT-Trees/PAT-Arrays, 1997/98) Maria Tzolova, Fatih Ekrem Genc, PAT-Trees 13.01.2003 Information Retrieval Operationen mit PAT-Array - Verbinden kleiner mit großen Arrys - Verbinden großer Dateien 48 Maria Tzolova, Fatih Ekrem Genc, PAT-Trees 13.01.2003 Information Retrieval 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. 49 Maria Tzolova, Fatih Ekrem Genc, PAT-Trees 13.01.2003 Information Retrieval 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. 50 Maria Tzolova, Fatih Ekrem Genc, PAT-Trees 13.01.2003 Information Retrieval Verbinden kleiner mit großen Arrays 51 (S.Olk, PAT-Trees/PAT-Arrays, 1997/98) Maria Tzolova, Fatih Ekrem Genc, PAT-Trees 13.01.2003 Information Retrieval Verbinden Großer Dateien • 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. 52 Maria Tzolova, Fatih Ekrem Genc, PAT-Trees 13.01.2003 Information Retrieval Literatur [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 13.01.2003 Information Retrieval 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) 54 Maria Tzolova, Fatih Ekrem Genc, PAT-Trees 13.01.2003