pdf:6 - PD Dr. Karin Haenelt

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