εικτοδότηση και Αναζήτηση (Indexing & Searching) Εισαγωγή Εισαγωγή

Σχετικά έγγραφα
εικτοδότηση και Αναζήτηση (Indexing & Searching) Ανάκτηση Πληροφορίας

Ανάκτηση Πληροφορίας

Ανάκτηση Πληροφορίας

Ανάκτηση Πληροφορίας. Φροντιστήριο 3

Φροντιστήριο 4. Άσκηση 1. Λύση. Πανεπιστήµιο Κρήτης, Τµήµα Επιστήµης Υπολογιστών HY463 - Συστήµατα Ανάκτησης Πληροφοριών Εαρινό Εξάµηνο

Λύση (από: Τσιαλιαμάνης Αναγνωστόπουλος Πέτρος) (α) Το trie του λεξιλογίου είναι

Οργάνωση αρχείων: πως είναι τοποθετηµένες οι εγγραφές ενός αρχείου όταν αποθηκεύονται στο δίσκο

Δυναμικός Κατακερματισμός. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

Δυναμικός Κατακερματισμός. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

Ανάκτηση πληροφορίας

Δυναμικός Κατακερματισμός. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

Δυναμικός Κατακερματισμός. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

Δομές Ευρετηρίου: Διάρθρωση Διάλεξης

Δομές Ευρετηρίου: Διάρθρωση Διάλεξης

Ερώτημα 1. Μας δίνεται μια συλλογή από k ακολοθίες, k >=2 και αναζητούμε το πρότυπο Ρ, μεγέθους n.

Δομές Ευρετηρίου: Διάρθρωση Διάλεξης

Δομές Ευρετηρίου: Διάρθρωση Διάλεξης

Τα δεδομένα (περιεχόμενο) μιας βάσης δεδομένων αποθηκεύεται στο δίσκο

Δομές Δεδομένων. Δημήτρης Μιχαήλ. Συμβολοσειρές. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο

Μελετάμε την περίπτωση όπου αποθηκεύουμε ένα (δυναμικό) σύνολο στοιχειών. Ένα στοιχείο γράφεται ως, όπου κάθε.

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΤΜΗΜΑ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΛΥΣΗ ΣΤΗΝ ΕΥΤΕΡΗ ΑΣΚΗΣΗ

#2 Αλγόριθµοι, οµές εδοµένων και Πολυπλοκότητα

Κεφ.11: Ευρετήρια και Κατακερματισμός

Κατακερµατισµός. Οργάνωση Αρχείων (σύνοψη) Οργάνωση αρχείων: πως είναι τοποθετημένες οι εγγραφές ενός αρχείου όταν αποθηκεύονται στο δίσκο

Πληροφορική 2. Δομές δεδομένων και αρχείων

Δεντρικά Ευρετήρια. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

Multimedia IR. εικτοδότηση και Αναζήτηση. Ανάκτηση Πληροφορίας

Εισαγωγή στην Επεξεργασία Ερωτήσεων. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

ΠΑΡΑΡΤΗΜΑ: QUIZ ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ

Δεντρικά Ευρετήρια. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

Αλγόριθμοι - Τμήμα Πληροφορικής ΑΠΘ -4ο εξάμηνο 1

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ Τ Μ Η Μ Α Π Λ Η Ρ Ο Φ Ο Ρ Ι Κ Η Σ

Δεντρικά Ευρετήρια. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

Διάλεξη 11: Δέντρα Ι - Εισαγωγή σε Δενδρικές Δομές Δεδομένων

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ

µπιτ Λύση: Κάθε οµάδα των τεσσάρων µπιτ µεταφράζεται σε ένα δεκαεξαδικό ψηφίο 1100 C 1110 E Άρα το δεκαεξαδικό ισοδύναµο είναι CE2

Δομές Δεδομένων. Δημήτρης Μιχαήλ. Κατακερματισμός. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο

Το εσωτερικό ενός Σ Β

Ενότητα 2: Η κρυφή µνήµη και η λειτουργία της

Εξωτερική Αναζήτηση. Ιεραρχία Μνήμης Υπολογιστή. Εξωτερική Μνήμη. Εσωτερική Μνήμη. Κρυφή Μνήμη (Cache) Καταχωρητές (Registers) μεγαλύτερη ταχύτητα

Multimedia IR. Εισαγωγή. Εισαγωγή. εικτοδότηση και Αναζήτηση

Initialize each person to be free. while (some man is free and hasn't proposed to every woman) { Choose such a man m w = 1 st woman on m's list to

Δεντρικά Ευρετήρια. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

Δομές Δεδομένων και Αλγόριθμοι

Συστήματα Ανάκτησης Πληροφοριών ΗΥ-463

Ανάκτηση Πληροφορίας (Information Retrieval IR) ιδακτικό βοήθηµα 2. Πανεπιστήµιο Θεσσαλίας Πολυτεχνική Σχολή Τµήµα Μηχ. Η/Υ, Τηλ/νιών & ικτύων

Ανάκτηση Πληροφορίας

Ανάκτηση Πληροφορίας (Information Retrieval IR)

ΑΛΓΟΡΙΘΜΟΙ. Τι είναι αλγόριθμος

Διάλεξη 11: Δέντρα Ι Εισαγωγή σε Δενδρικές Δομές Δεδομένων

Βασικές Έννοιες Δοµών Δεδοµένων

ΟΙΚΟΝΟΜΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ. Δοµές Δεδοµένων

Ευρετηρίαση, Αποθήκευση και Οργάνωση Αρχείων (Indexing, Storage and File Organization) ΜΕΡΟΣ Ι

Εισαγωγή στον Προγραμματισμό

ΠΑΝΕΠΙΣΤΗΜΙΟ ΜΑΚΕΔΟΝΙΑΣ ΠΡΟΓΡΑΜΜΑ ΜΕΤΑΠΤΥΧΙΑΚΩΝ ΣΠΟΥΔΩΝ ΤΜΗΜΑΤΟΣ ΕΦΑΡΜΟΣΜΕΝΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ

ΑΛΓΟΡΙΘΜΟΙ. Ενότητα 7: Χωρικοί Χρονικοί Συμβιβασμοί. Ιωάννης Μανωλόπουλος, Καθηγητής Αναστάσιος Γούναρης, Επίκουρος Καθηγητής Τμήμα Πληροφορικής ΑΠΘ

Λύσεις Παλιών Θεµάτων. Συστήµατα Παράλληλης Επεξεργασίας, 9ο εξάµηνο Υπεύθ. Καθ. Νεκτάριος Κοζύρης

Σύνοψη Προηγούμενου. Πίνακες (Arrays) Πίνακες (Arrays): Βασικές Λειτουργίες. Πίνακες (Arrays) Ορέστης Τελέλης

Ευρετήρια. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

Ευρετήρια. Ευρετήρια. Βάσεις Δεδομένων : Ευρετήρια 1

ΚΕΦΑΛΑΙΟ 8 Η ΓΛΩΣΣΑ PASCAL

ΟΙΚΟΝΟΜΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ. Δοµές Δεδοµένων

Διδάσκων: Παναγιώτης Ανδρέου

MBR Ελάχιστο Περιβάλλον Ορθογώνιο (Minimum Bounding Rectangle) Το µικρότερο ορθογώνιο που περιβάλλει πλήρως το αντικείµενο 7 Παραδείγµατα MBR 8 6.

Ειδικά θέματα Αλγορίθμων και Δομών Δεδομένων (ΠΛΕ073) Απαντήσεις 1 ου Σετ Ασκήσεων

Πανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων ομές εδομένων

Επίλυση Προβληµάτων µε Greedy Αλγόριθµους

Βασικές δοµές δεδοµένων. Ορολογία λιστών. 8.1 Βασικές έννοιες δοµών δεδοµένων 8.2 Υλοποίηση δοµών δεδοµένων 8.3 Μια σύντοµη υπόθεση εργασίας

Αλγόριθμοι και Δομές Δεδομένων (IΙ) (γράφοι και δένδρα)

Ενότητα 9 Ξένα Σύνολα που υποστηρίζουν τη λειτουργία της Ένωσης (Union-Find)

Ευρετήρια. Ευρετήρια. Βάσεις Δεδομένων : Ευρετήρια 1

Πανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων ομές εδομένων

Insert(K,I,S) Delete(K,S)

Προγραµµατισµός Ι (ΗΥ120)

Επιµέλεια Θοδωρής Πιερράτος

Κατακερματισμός (Hashing)

ΣΥΣΚΕΥΕΣ ΑΠΟΘΗΚΕΥΣΗΣ (ΜΝΗΜΗ)

Ενότητα 4. Εισαγωγή στην Πληροφορική. Αναπαράσταση δεδοµένων. Αναπαράσταση πληροφορίας. υαδικοί αριθµοί. Χειµερινό Εξάµηνο

Διάλεξη 22: Δυαδικά Δέντρα. Διδάσκων: Παναγιώτης Ανδρέου

Διαχείριση Πολιτισμικών Δεδομένων

Λογικός Σχεδιασµός και Σχεδιασµός Η/Υ. ΗΜΥ-210: Εαρινό Εξάµηνο Σκοπός του µαθήµατος. Ψηφιακά Συστήµατα. Περίληψη. Εύρος Τάσης (Voltage(

Δυναμικός Κατακερματισμός

ΥΠΟΛΟΓΙΣΤΕΣ Ι. Τα επιμέρους τμήματα Η ΟΜΗ TOY ΥΠΟΛΟΓΙΣΤΗ. Αναπαράσταση μεγεθών. Αναλογική αναπαράσταση ΚΕΝΤΡΙΚΗ ΜΝΗΜΗ ΜΟΝΑ Α ΕΛΕΓΧΟΥ

ΤΕΧΝΟΛΟΓΙΕΣ ΠΟΛΥΜΕΣΩΝ

Ανάκληση Πληποφοπίαρ. Information Retrieval. Διδάζκων Δημήηριος Καηζαρός

Posting File. D i. tf key1 [position1 position2 ] D j tf key2... D l.. tf keyl

Λεξικό, Union Find. ιδάσκοντες: Σ. Ζάχος,. Φωτάκης Επιμέλεια διαφανειών:. Φωτάκης. Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών

Διδάσκων: Παναγιώτης Ανδρέου

Αλγόριθμοι και Δομές Δεδομένων (Ι) (εισαγωγικές έννοιες)

Δοµές Δεδοµένων. 16η Διάλεξη Κατακερµατισµός. Ε. Μαρκάκης

- Εισαγωγή - Επίπεδα μνήμης - Ολοκληρωμένα κυκλώματα μνήμης - Συσκευασίες μνήμης προσωπικών υπολογιστών

Επίλυση προβληµάτων. Αλγόριθµοι Αναζήτησης

Τμήμα Χρηματοοικονομικής & Ελεγκτικής ΤΕΙ Ηπείρου Παράρτημα Πρέβεζας. Πληροφορική Ι. Μάθημα 4 ο Πράξεις με bits. Δρ.

Λειτουργικά Συστήματα Κεφάλαιο 2 Οργάνωση Συστήματος Αρχείων 2.1 Διαχείριση Αρχείων και Σύστημα Αρχείων(File System)

Ο ΑΤΔ Λεξικό. Σύνολο στοιχείων με βασικές πράξεις: Δημιουργία Εισαγωγή Διαγραφή Μέλος. Υλοποιήσεις

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ

Ενότητα 9 Ξένα Σύνολα που υποστηρίζουν τη λειτουργία της Ένωσης (Union-Find)

Αποδοτικη ιαχειριση Κειµενικης Πληροφοριας εικτοδοτηση, Αποθηκευση, Επεξεργασια και Εφαρµογες

Αλγόριθµοι και Πολυπλοκότητα

Λεξικό, Union Find. ημήτρης Φωτάκης. Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών. Εθνικό Μετσόβιο Πολυτεχνείο

Transcript:

εικτοδότηση και Αναζήτηση (Indexing & Searching) 1 Εισαγωγή Με ποιους τρόπους µπορούµενααναζητήσουµε πληροφορία από µία συλλογή κειµένων; Ο πιο απλός και εύκολα υλοποιήσιµος τρόπος είναι να ψάξουµε σειριακάόλατακείµενα της συλλογής. Ένας άλλος τρόπος είναι να χτίσουµε ειδικές δοµές δεδοµένων (index structures) ώστε να επιταχύνουµε τη διαδικασία αναζήτησης. 2 Εισαγωγή Η χρήση δεικτών είναι ευρεία στα συστήµατα βάσεων δεδοµένων (π.χ. Oracle, MySQL, SQLserver). Οι δείκτες έχουν την ικανότητα να απορρίπτουν ένα µεγάλο τµήµατωνδεδοµένων το οποίο δεν συµµετέχει στην απάντηση. Παραδείγµατα δεικτών: Β-δένδρα, Κατακερµατισµός (hashing). 3 1

Εισαγωγή 4 υαδικά ένδρα Αναζήτησης 10 4 19 1 7 13 22 5 Β-δένδρα 5 3 11 1 2 4 8 9 14 16 6 2

Κατακερµατισµός 0 0 1 1 2 2 3 3 4 4 5 5 6 6 7 7 8 8 9 9 10 10 20 20 30 30 12 12 22 22 42 42 9 19 19 79 79 40 40 50 50 60 60 Συνάρτηση Κατακερµατισµού h(key) = key mod 10 7 είκτες για Κείµενα Στην περίπτωση των κειµένων οι µηχανισµοί δεικτοδότησης διαφέρουν από τους αντίστοιχους για αριθµούς. είκτες για κείµενα: Αντεστραµµένα Αρχεία (Inverted Files) Suffix Trees, Suffix Arrays Αρχεία Υπογραφών (Signature Files) 8 Αντεστραµµένα Αρχεία n: µέγεθος κειµένου m: µήκος του pattern v: µέγεθος λεξιλογίου M: το µέγεθος της διαθέσιµης µνήµης 9 3

Αντεστραµµένα Αρχεία Είναι ένας µηχανισµός δεικτοδότησης στηριζόµενες σε λέξεις (word-based) ο οποίος χρησιµοποιείται για αποδοτικότερη αναζήτηση. οµή αντεστραµµένου αρχείου: Λεξιλόγιο (vocabulary) Λίστες εµφάνισης 10 Κείµενο Παράδειγµα 1 6 12 16 18 25 29 36 40 45 54 58 66 70 That house has a garden. The garden has many flowers. The flowers are beautiful Αντεστραµµένο Αρχείο Vocabulary Occurrences beautiful 70 flowers 45, 58 garden 18, 29 house 6 11 Αντεστραµµένα Αρχεία Οι απαιτήσεις χώρου για την αποθήκευση του λεξιλογίου (vocabulary) είναι αρκετά µικρές. Σύµφωνα µε τονόµο τουheap το µέγεθος του λεξιλογίου αυξάνεται ανάλογα του O(n^β) όπου β είναι µία σταθερά µεταξύ 0 και 1. Στην πράξη το β παίρνει τιµές µεταξύ 0.4 και 0.6 Για παράδειγµαγιακείµενα συνολικού µεγέθους 1GBytes από τη συλλογή TREC-2 το λεξιλόγιο καταλαµβάνει µόλις 5MBytes. 12 4

Αντεστραµµένα Αρχεία Το τµήµατωνεµφανίσεων καταλαµβάνει πολύ περισσότερο χώρο. Εφόσον κάθε λέξη εµφανίζεται τουλάχιστον µία φορά στο κείµενο, ο επιπλέον απαιτούµενος χώροςείναιτηςτάξηςτουo(n). Ακόµηκαιµετά την αποµάκρυνση των stopwords, το επιπλέον κόστος σε χώρο κυµαίνεται µεταξύ 30% και 40% του µεγέθους του κειµένου. 13 Αντεστραµµένα Αρχεία Για τη µείωση του απαιτούµενου χώρου χρησιµοποιείται η τεχνική της διευθυνσιοδότησης block (block addressing). Το κείµενο χωρίζεται σε τµήµατα (blocks) και οι εµφανίσεις δείχνουν στα αντίστοιχα block και όχι σε χαρακτήρες. Οι κλασικές µέθοδοι που χρησιµοποιούν δείκτες σε θέσεις χαρακτήρων καλούνται full inverted indices. 14 Αντεστραµµένα Αρχεία Χρησιµοποιώντας block addressing απαιτούνται pointers µικρότερου µεγέθους διότι τα blocks είναι πολύ λιγότερα από τους χαρακτήρες του κειµένου. Επίσης εµφανίσεις που αναφέρονται σε λέξεις του ίδιου block εµφανίζονται µε την ίδια αναφορά. Συνήθωςτοεπιπλέονκόστοςσεχώροπου απαιτείται µε τηντεχνικήαυτήείναιπερίπου5% του µεγέθους του κειµένου. 15 5

Παράδειγµα Κείµενο Block 1 Block 2 Block 3 Block 4 That house has a garden. The garden has many flowers. The flowers are beautiful Αντεστραµµένο Αρχείο Vocabulary Occurrences beautiful 4 flowers 3 garden 2 house 1 16 Σύγκριση Index Small collection Medium collection Large collection (1Mb) (200Mb) (2Gb) Addressing words 45% 73% 36% 64% 35% 63% Addressing documents 19% 26% 18% 32% 26% 47% Addressing 256 blocks 18% 25% 1.7% 2.4% 0.5% 0.7% 17 Αναζήτηση σε Αντ. Αρχείο Μία τυπική µέθοδος αναζήτησης σε αντεστραµµένο αρχείο ακολουθεί τα παρακάτω βήµατα: 1. Αναζήτηση Λεξιλογίου: οι λέξεις που προσδιορίζονται στο ερώτηµα αποµονώνονται και αναζητούνται στο λεξιλόγιο. 2. Εµφανίσεων: προσδιορίζονται οι εµφανίσεις της κάθε λέξης. 3. Επεξεργασία Εµφανίσεων: οι εµφανίσεις επεξεργάζονται για την επίλυση φράσεων, οµοιότητας ή λογικών τελεστών (boolean operators). Εάν χρησιµοποιείται block addressing µπορεί να απαιτηθεί απευθείας αναζήτηση στο κείµενο. 18 6

Αναζήτηση σε Αντ. Αρχείο Εφόσον η αναζήτηση ξεκινά µε τολεξιλόγιο, µία καλή πρακτική είναι να αποθηκεύεται σε ξεχωριστό αρχείο. Είναι πιθανόν, ακόµηκαιγιαµεγάλες συλλογές κειµένων, το λεξιλόγιο να χωράει στην κύρια µνήµη. Σε διαφορετική περίπτωση µέρος του λεξιλογίου βρίσκεται στην κύρια µνήµη και το υπόλοιπο στη βοηθητική µνήµη (δίσκο, CD-ROM). 19 Αναζήτηση σε Αντ. Αρχείο Ερωτήµατα µίας λέξης (single-word queries) µπορούν να απαντηθούν χρησιµοποιώντας κάποια βολική δοµήδεδοµένων για τη γρήγορη επεξεργασία του ερωτήµατος. Κατακερµατισµός, TRIES, Β-δένδρα. Χρόνος αναζήτησης O(m) για τις δύο πρώτες µεθόδους, Ο(m*log(n)) για τα B-δένδρα. 20 Αναζήτηση σε Αντ. Αρχείο Για να απαντήσουµε ερωτήσεις διαστήµατος η δοµή του κατακερµατισµού δεν είναι κατάλληλη. Για την περίπτωση αυτή µπορούµε να χρησιµοποιήσουµε δυαδικά δένδρα αναζήτησης, TRIES ήβ-δένδρα. 21 7

Παράδειγµα Να βρεθούν κείµενα που περιέχουν λέξεις οι οποίες λεξικογραφικά βρίσκονται µεταξύ της λέξης cluster και της λέξης damage. 22 Παράδειγµα Age basket cat cube cluster creature creative damage 23 Αναζήτηση σε Αντ. Αρχείο Σε περίπτωση που το ερώτηµααποτελείταιαπό µεµονωµένες λέξεις η αναζήτηση σταµατά όταν έχουµε προσδιορίσει τις εµφανίσεις των συγκεκριµένων λέξεων στα κείµενα. Σε περίπτωση που πάνω από µία λέξεις του ερωτήµατος έχουν βρεθεί ακολουθεί η διαδικασία της ένωσης (union) των εµφανίσεων. 24 8

Αναζήτηση σε Αντ. Αρχείο Στις περιπτώσεις όπου έχουµε αναζήτηση ολόκληρων φράσεων (όχι µεµονωµένων λέξεων) ήερωτήµατα γειτνίασης (proximity), η επεξεργασία είναι δυσκολότερη. Για κάθε λέξη δηµιουργείται µία λίστα εµφανίσεων. Στη συνέχεια πραγµατοποιείται επεξεργασία των λιστών ώστε να προσδιοριστεί η τελική απάντηση του ερωτήµατος. 25 Παράδειγµα Έστω ότι αναζητείται η φράση: modern information retrieval Έστω ότι µετά την αναζήτηση του λεξιλογίου έχουν προκύψει οι ακόλουθες λίστες: modern 10, 50, 80 information 17, 57, 120 retrieval 29, 90, 400 Ποια θα είναι η απάντηση στο ερώτηµα; Υπάρχει ή φράση στο κείµενο ή όχι; 26 Κατασκευή Αντ. Αρχείου Η κατασκευή και η ενηµέρωση ενός αντεστραµµένου αρχείου είναι σχετικά εύκολη διαδικασία. Ένα αντεστραµµένο αρχείο για ένα κείµενο n χαρακτήρων µπορεί να κατασκευαστεί σε χρόνο O(n). 27 9

Κατασκευή Αντ. Αρχείου Το λεξιλόγιο οργανώνεται µετηβοήθειαµίας βολικής δοµής δεδοµένων (π.χ. TRIE). Κάθε λέξη του κειµένου διαβάζεται και αναζητείται στο λεξιλόγιο. Εάν η νέα λέξη δε βρεθεί στο λεξιλόγιο, τότε εισάγεται σε αυτό και ενηµερώνεται η λίστα εµφανίσεων για τη συγκεκριµένη λέξη. Εάν η λέξη υπάρχει στο λεξιλόγιο, τότε απαιτείται µόνο ενηµέρωση της λίστας εµφανίσεων. 28 Κατασκευή Αντ. Αρχείου 1 6 9 11 17 19 24 28 33 40 46 50 55 60 This is a text. A text has many words. Words are made from letters l m t w letters: 60 60 a text: text: 11, 11, 19 19 d n words: 33, 33, 40 40 made: 50 50 many: 28 28 29 Κατασκευή Αντ. Αρχείου Εφόσον για την επεξεργασία κάθε χαρακτήρα του κειµένου απαιτείται χρόνος Ο(1), και για την ενηµέρωση µίας λίστας εµφανίσεων απαιτείται χρόνος Ο(1), ησυνολικήπολυπλοκότητατης προηγούµενης µεθόδου είναι Ο(n). Σεπερίπτωσηπουηδοµήδενµπορεί να χωρέσει στην κύρια µνήµη, η µέθοδος παρουσιάζει προβλήµατα, διότι απαιτούνται πολλές προσπελάσεις στο δίσκο, µε αποτέλεσµανα αυξάνεται δραµατικά ο χρόνος κατασκευής. 30 10

Κατασκευή Αντ. Αρχείου Εναλλακτική Μέθοδος Ηπροηγούµενη διαδικασία συνεχίζεται µέχρι να γεµίσει η κύρια µνήµη. Σχηµατίζεται ένα τµήµα τηςδοµής δεδοµένων Ii το οποίο αποθηκεύεται στο δίσκο. Ακολουθώντας την ίδια διαδικασία σχηµατίζεται ένα σύνολο τµηµάτων Ii τα οποία είναι αποθηκευµένα στο δίσκο. Ακολουθούν διαδοχικές συγχωνεύσεις ώστε να προκύψει ησυνολικήδοµή. 31 Κατασκευή Αντ. Αρχείου I 1...8 final index 7 level 3 I 1...4 I 5...8 3 6 level 2 I 1...2 I 3...4 I 5...6 I 7...8 I 1 I 2 I 3 I 4 I 5 I 6 I 7 I 8 1 2 4 5 level 1 initial dumps 32 Κατασκευή Αντ. Αρχείου Πολυπλοκότητα Εναλλακτικής Μεθόδου Χρόνος κατασκευής των τµηµάτων Ii είναι O(n). Αριθµός τµηµάτων O(n/M). Κάθε φάση συγχώνευσης απαιτεί χρόνο O(n). Για τη συγχώνευση των O(n/M) τµηµάτων απαιτούνται log(n/m) φάσεις συγχώνευσης. Εποµένως συνολικά Ο(n * log(n/m)) 33 11

Μειονεκτήµατα Αντ. Αρχείων Η µέθοδος των αντεστραµµένων αρχείων υποθέτει ότι το κείµενο µπορεί να θεωρηθεί σαν µία ακολουθία λέξεων. Αυτό το χαρακτηριστικό περιορίζει αρκετά τον τύπο των ερωτηµάτων που µπορούν να επεξεργαστούν από το σύστηµα. Ερωτήµατα όπως αναζήτηση φράσεων είναι ακριβά στην επεξεργασία τους. Τέλος, σε πολλές εφαρµογές η έννοια της δεν υπάρχει (π.χ. genetic databases). 34 Suffix Trees & Arrays Αποτελούν αποδοτική υλοποίηση των suffix trees. Επιτρέπουν την επεξεργασία πιο πολύπλοκων ερωτήσεων. Η µέθοδος αυτή «βλέπει» το κείµενο σαν µία µεγάλη σειρά χαρακτήρων. Κάθε θέση στο κείµενο θεωρείται ως suffix. Οι θέσεις που δεικτοδοτούνται ονοµάζονται index points. εναπαιτείταιηδεικτοδότησηόλωντων θέσεων του κειµένου. 35 Suffix Trees & Arrays Ένα suffix tree είναι στην ουσία µία δοµή TRIE η οποία χτίζεται µε βάση τις καταλήξεις (suffixes) του κειµένου. Οι pointers προς τις καταλήξεις αποθηκεύονται στα φύλλα της δοµής. Γιατηβελτίωσητουπαράγονταχρησιµοποίησης χώρου (space utilization), τα µονοπάτια της δοµής συµπιέζονται (Patricia trees). Αυτό µας επιτρέπει να αποθηκεύσουµε τηδοµήσε χώρο O(n). 36 12

Suffix Trees & Arrays 1 6 9 11 17 19 24 28 33 40 46 50 55 60 This is a text. A text has many words. Words are made from letters l m 60 60 a d 50 50 Suffix Trie w t n 28 28 e x t 19 19. 11 11 o r d s 40 40. 33 33 37 Suffix Trees & Arrays 1 6 9 11 17 19 24 28 33 40 46 50 55 60 This is a text. A text has many words. Words are made from letters l m 60 60 d 50 50 Suffix Tree w t n 28 28 19 19 40 40. 11 11. 33 33 38 Suffix Trees & Arrays Το πρόβληµα είναι ότι για την αποθήκευση της δοµής απαιτείται αρκετός χώρος. Υπολογίζεται ότι ακόµη και στην περίπτωση που δεικτοδοτούνται µόνο οι πρώτοι χαρακτήρες κάθε λέξης, ο επιπλέον χώρος που απαιτείται είναι 120% µε 240% του συνολικού µεγέθους του κειµένου. Κάθε κόµβος της δοµής απαιτεί 12 ή 24 bytes για την αποθήκευσή του. 39 13

Suffix Trees & Arrays Ηδοµήτωνsuffix arrays προσφέρει την ίδια λειτουργικότητα, µετηδιαφοράότιαπαιτείται πολύ λιγότερος χώρος για την αποθήκευση της δοµής. Εάν διασχίσουµε τα φύλλα του suffix tree από αριστερά προς τα δεξιά, όλες οι καταλήξεις (suffixes) του κειµένου παράγονται κατά λεξικογραφική διάταξη. Ένα suffix array περιέχει τους pointers στις καταλήξεις µε λεξικογραφική διάταξη. 40 Suffix Trees & Arrays 1 6 9 11 17 19 24 28 33 40 46 50 55 60 This is a text. A text has many words. Words are made from letters 60 50 28 19 11 40 33 Suffix Array Ο επιπλέον απαιτούµενος χώρος είναι περίπου 40% του κειµένου. 41 Αναζήτηση µε S.T. & S.A. Αναζητήσεις για λέξεις, φράσεις και προθέµατα (prefixes) µπορούν να πραγµατοποιηθούν σε χρόνο O(logn). Για το pattern που αναζητούµεβρίσκουµεδύοsubpatterns P1 και P2 και αναζητούµεταsuffixes S ώστε λεξικογραφικά να ισχύει: P1<=S<P2. Παράδειγµα: αν αναζητούµετηλέξηtext έχουµε P1=text και P2=texu. Η δοµήεπιστρέφειτιςεµφανίσεις 19 και 11. Τα P1 και P2 αναζητούνται µε δυαδική αναζήτηση. Εφόσον κάθε δυαδική αναζήτηση κοστίζει logn βήµατα στη χειρότερη περίπτωση, έχουµε O(logn). 42 14

Αρχεία Υπογραφών Signature Files ιαχειρίζονται λέξεις (word-based) και στηρίζονται στον κατακερµατισµό. Έχουν σχετικά µικρό επιπλέον χώρο (περίπου 10% µε 20% του µεγέθους του κειµένου). Σύµφωνα µε πειραµατικές µετρήσεις, τα αντεστραµµένα αρχεία έχουν καλύτερη απόδοση από τα αρχεία υπογραφών. 43 Αρχεία Υπογραφών Ένα αρχείο υπογραφών χρησιµοποιεί µία συνάρτηση κατακερµατισµού η οποία αναπαριστά κάθε λέξη µε µία µάσκα από Β bits. Το κείµενο χωρίζεται σε blocks µε b λέξεις το καθένα. Σε κάθε block µεγέθους b αντιστοιχούµε µία µάσκα από B bits. Η µάσκα παράγεται εφαρµόζοντας τον τελεστή OR στις δυαδικές αναπαραστάσεις των λέξεων του block. 44 Αρχεία Υπογραφών Εάν µία λέξη είναι παρούσα σε ένα block κειµένου, τότε όλα τα bits που είναι 1 στην υπογραφή της λέξης, είναι επίσης 1 στη µάσκα του block. Ωστόσο είναι πιθανόν, τα bits να είναι 1 ακόµη και όταν η λέξη δε βρίσκεται στο block. Αυτό ονοµάζεται false drop. Το πιο ενδιαφέρον µέρος στα αρχεία υπογραφών είναι µα µειωθεί στο ελάχιστο η πιθανότητα να έχουµε false drop. 45 15

Παράδειγµα This is a text. A text has many words. Words are made from letters 000101 110101 100100 101101 H(text) = 000101 H(many) = 110000 H(words) = 100100 H(made) = 001100 H(letters) = 100001 Η συνάρτηση κατακερµατισµού επιλέγεται έτσι έτσιώστε να ναυπάρχουν τουλάχιστον Κ bits bits ενεργά στην στηνυπογραφή κάθε κάθελέξης. 46 Σειριακή Αναζήτηση Υπάρχουν περιπτώσεις που δεν υπάρχουν βοηθητικές δοµές δεδοµένων για την αναζήτηση. Αν δίνεται ένα pattern P µε m χαρακτήρες και ένα κείµενο Κ µε n χαρακτήρες, πρέπει να βρεθούν οι εµφανίσεις του P στο Κ. Έχουν προταθεί πολλές µέθοδοι για την επίλυση του προβλήµατος. Στη συνέχεια θα εξετάσουµε µερικές από αυτές. 47 Σειριακή Αναζήτηση Προφανής µέθοδος (brute-force) Μέθοδος των Knuth, Morris και Pratt (KMP) Μέθοδος Boyer-Moore Μέθοδος Shift-or Μέθοδος Suffix Automaton 48 16

Brute-Force Είναι η πιο απλή µέθοδος αναζήτησης. οκιµάζονται σειριακά όλες οι θέσεις του κειµένου και ελέγχεται εάν το pattern ταιριάζει µε τους χαρακτήρες του κειµένου. Η διαδικασία ακολουθείται έως ότου φτάσουµε στο τέλος του κειµένου Κ. 49 Brute-Force a b r a c a b r a c a d a b r a a b r a c a d a a a b a a b r a c a d a b r a 50 Brute-Force Υπάρχουν O(n) θέσεις στο κείµενο και Ο(m) θέσεις στο pattern. Εφόσον εξετάζονται όλες οι δυνατές θέσεις για το pattern, η πολυπλοκότητα χειρότερης περίπτωσης για τη µέθοδο είναι O(n*m). Ωστόσο η πολυπλοκότητα µέσης περίπτωσης είναι O(n), διότι σε τυχαίο κείµενο θα έχουµε αποτυχία µετά από O(1) συγκρίσεις χαρακτήρων. 51 17

Knuth-Morris Morris-Pratt Είναι ο πρώτος αλγόριθµος µε γραµµική πολυπλοκότητα χειρότερης περίπτωσης που προτάθηκε (Ο(n)). Ωστόσο στη µέση περίπτωση έχει παρόµοια απόδοση µε τονbrute-force. Ηβασικήτεχνικήπουχρησιµοποιείται είναι ότι αποφεύγεται η εξέταση θέσεων στις οποίες είναι σίγουρο ότι δε θα βρεθεί το pattern. Έτσι, δεν εξετάζονται όλες οι δυνατές θέσεις. 52 Knuth-Morris Morris-Pratt Απαιτείται προεπεξεργασία του pattern. Κατασκευάζεται ένας πίνακας next, οοποίος δηλώνει πόσες θέσεις µπορούµενα προχωρήσουµε. Κάθε θέση j του πίνακα δείχνει πιο είναι το µεγαλύτερο κανονικό πρόθεµατουp1..j-1 το οποίο είναι επίσης και επίθεµακαιοιχαρακτήρες που ακολουθούν είναι διαφορετικοί. Εποµένως, µπορούµε µεασφάλειανα παρακάµψουµε j - next[j] - 1 χαρακτήρες. 53 Knuth-Morris Morris-Pratt a b r a c a b r a c a d a b r a a b r a c a d a b r a c a d a b r a 54 18

Knuth-Morris Morris-Pratt Η µέθοδος χρησιµοποιεί ένα «παράθυρο» το οποίο σε κάθε βήµα βρίσκεται σε µία θέση του κειµένου. Υπάρχει ένας δείκτης (pointer) µέσα στο παράθυρο. Κάθε φορά που ένας χαρακτήρας του pattern ταιριάζει, ο δείκτης µετακινείται µία θέση παρακάτω. Κάθε φορά που δεν υπάρχει ταίριασµα, το παράθυρο µετακινείται ενώ ο δείκτης παραµένει σταθερός. Εφόσον κάθε φορά είτε το παράθυρο είτε ο δείκτης µετακινούνται κατά µία θέση, η µέθοδος πραγµατοποιεί το πολύ 2*n συγκρίσεις. 55 Boyer-Moore Το pattern συγκρίνεται µεχαρακτήρεςτου κειµένου από το τέλος του pattern προς την αρχή. Όπως και η µέθοδος KMP χρησιµοποιεί το match heuristic. Εκτός από το match heuristic, χρησιµοποιείται και το occurrence heuristic: ο χαρακτήραςτου κειµένου που προκάλεσε το πρόβληµαπρέπεινα «ευθυγραµµιστεί»µετοpattern µετά τη µετακίνηση του παραθύρου. 56 Boyer-Moore a b r a c a b a b r a c a d a b r a a b r a c a d a b r a match heuristic µετακίνηση 7 θέσεις a b r a c a d a b r a occurence heuristic µετακίνηση 5 θέσεις a b r a c a d a b r a ΕΠΙΛΕΓΕΤΑΙ Η ΜΕΓΑΛΥΤΕΡΗ ΜΕΤΑΚΙΝΗΣΗ 57 19

Boyer-Moore Κόστος προεπεξεργασίας pattern Ο(m+σ). Κόστος αναζήτησης µέσης περίπτωσης: Ο(n*logm/m) Κόστος αναζήτησης χειρότερης περίπτωσης Ο(m*n). Παραλλαγές: ΒΜ-απλοποιηµένος, BM- Horspool, BM-Sunday, Commentz-Walter (επέκταση για αναζήτηση πολλών patterns). 58 Shift-OR Στηρίζεται στην τεχνική bit-parallelism. Λειτουργίες που αφορούν στα bits µίας λέξης του επεξεργαστή που αποτελείται από w bits. Οι σηµερινοί επεξεργαστές στηρίζονται σε αρχιτεκτονικές 32 ή 64 bits. Η βελτίωση που προσφέρει η µέθοδος στο χρόνο αναζήτησης του pattern είναι αρκετά καλή. 59 Shift-OR Η µέθοδος εξοµοιώνει τη λειτουργία ενός µη-ντετερµινιστικού αυτοµάτου το οποίο αναζητά το pattern στο κείµενο. Το αυτόµατο εξοµοιώνεται σε χρόνο O(n*m). Η πολυπλοκότητα χρόνου χειρότερης περίπτωσης είναι O(n*m/w) (optimal speedup). 60 20

Shift-OR a b r a c a d a b r a B[a] B[b] B[c] B[d] B[r] B[*] 0 1 1 0 1 0 1 0 1 1 0 1 0 1 1 1 1 1 1 0 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 0 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 61 Shift-OR Η κατάσταση της αναζήτησης καταχωρείται σε µία λέξη µηχανής D=dm d1, όπου το bit di =0 όταν η κατάσταση i του αυτοµάτου είναι ενεργή. Εποµένως έχουµε ταύτιση όταν dm == 0. bor = bitwise OR band = bitwise AND 62 Shift-OR Αρχικά όλα τα bits της λέξης D είναι 1. Για κάθε νέο χαρακτήρα κειµένου Tj που εξετάζεται, η λέξηd ενηµερώνεται ως εξής: D = ( D << 1) bor B[Tj]. Το σύµβολο << σηµαίνει ότι τα bits µετακινούνται µία θέση αριστερά (shiftleft) και το πιο δεξί bit γίνεται 1. 63 21

64 65 Πολύπλοκα Patterns Σε πολλές περιπτώσεις αναζητούµε πιο πολύπλοκα patterns από απλές λέξεις. Εξετάζουµε ταεξής: Αναζήτηση µε λάθη(approximate matching) Αναζήτηση extended patterns 66 22

Approximate Matching ίνεται ένα pattern P µεγέθους m, κείµενο Τ µεγέθους n, και ένας ακέραιος αριθµός k οοποίος δηλώνει το µέγιστο αριθµό λαθώνπου επιτρέπονται στο ταίριασµα. Το πρόβληµαείναιπιοπρόσφατοσεσχέσηµε την ακριβή (exact) αναζήτηση. Υπάρχουν αρκετές λύσεις. Εδώ θα συζητήσουµε δύο: υναµικός προγραµµατισµός Αυτόµατα 67 υναµικός Προγραµµατισµός Οι περισσότεροι από τους αλγορίθµους που σχετίζονται µε επεξεργασίαοµιλίας και γλωσσών ανήκουν στην οικογένεια του υναµικού Προγραµµατισµού. Μεταξύ αυτών βρίσκεται και ο αλγόριθµος που βασίζεται στην ελάχιστη απόσταση (minimum edit distance). Ο υναµικός Προγραµµατισµός βασίζεται στην αρχή ότιτοαρχικόπρόβληµα µπορεί να επιλυθεί, µε κατάλληλο συνδυασµό των λύσεων µικρότερων υποπροβληµάτων. 68 υναµικός Προγραµµατισµός Έστω πίνακας C[0 m, 0 n]. Το στοιχείο C[i,j] δηλώνει τον ελάχιστο αριθµό λαθώνπου υπάρχουν κατά το ταίριασµα τουp1 i µεκάποιοsuffix του T1 j. Ο υπολογισµός γίνεται ως εξής: Έχουµε ταίριασµα όταν για κάποια θέση j ισχύει C[m,j] <= k 69 23

υναµικός Προγραµµατισµός Πολυπλοκότητα χρόνου O(m*n). Πολυπλοκότητα χώρου O(m). Πολυπλοκότητα χρόνου προεπεξεργασίας O(m). Πρόσφατα έχουν προταθεί αλγόριθµοι οι οποίοι πετυχαίνουν χρονική πολυπλοκότητα O(k*n). 70 υναµικός Προγραµµατισµός 71 Αυτόµατα 72 24