Pat - PD Dr. Karin Haenelt

Werbung
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
Herunterladen