Η παρουσίαση φορτώνεται. Παρακαλείστε να περιμένετε

Η παρουσίαση φορτώνεται. Παρακαλείστε να περιμένετε

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

Παρόμοιες παρουσιάσεις


Παρουσίαση με θέμα: "Δεικτοδότηση και Αναζήτηση (Indexing & Searching)"— Μεταγράφημα παρουσίασης:

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

2 Εισαγωγή Με ποιους τρόπους μπορούμε να αναζητήσουμε πληροφορία από μία συλλογή κειμένων; Ο πιο απλός και εύκολα υλοποιήσιμος τρόπος είναι να ψάξουμε σειριακά όλα τα κείμενα της συλλογής. Ένας άλλος τρόπος είναι να χτίσουμε ειδικές δομές δεδομένων (index structures) ώστε να επιταχύνουμε τη διαδικασία αναζήτησης. Ανάκτηση Πληροφορίας

3 Εισαγωγή Η χρήση δεικτών είναι ευρεία στα συστήματα βάσεων δεδομένων (π.χ. Oracle, MySQL, SQLserver). Οι δείκτες έχουν την ικανότητα να απορρίπτουν ένα μεγάλο τμήμα των δεδομένων το οποίο δεν συμμετέχει στην απάντηση. Παραδείγματα δεικτών: Β-δένδρα, Κατακερματισμός (hashing). Ανάκτηση Πληροφορίας

4 Εισαγωγή Ανάκτηση Πληροφορίας

5 Δυαδικά Δένδρα Αναζήτησης
Ανάκτηση Πληροφορίας

6 Β-δένδρα Ανάκτηση Πληροφορίας

7 Κατακερματισμός 10 20 30 40 50 60 1 2 12 22 42 3 4 Συνάρτηση Κατακερματισμού h(key) = key mod 10 5 6 7 8 9 9 19 79 Ανάκτηση Πληροφορίας

8 Δείκτες για Κείμενα Στην περίπτωση των κειμένων οι μηχανισμοί δεικτοδότησης διαφέρουν από τους αντίστοιχους για αριθμούς. Δείκτες για κείμενα: Αντεστραμμένα Αρχεία (Inverted Files) Suffix Trees, Suffix Arrays Αρχεία Υπογραφών (Signature Files) Ανάκτηση Πληροφορίας

9 Αντεστραμμένα Αρχεία n: μέγεθος κειμένου m: μήκος του pattern
v: μέγεθος λεξιλογίου M: το μέγεθος της διαθέσιμης μνήμης Ανάκτηση Πληροφορίας

10 Αντεστραμμένα Αρχεία Είναι ένας μηχανισμός δεικτοδότησης στηριζόμενες σε λέξεις (word-based) ο οποίος χρησιμοποιείται για αποδοτικότερη αναζήτηση. Δομή αντεστραμμένου αρχείου: Λεξιλόγιο (vocabulary) Λίστες εμφάνισης Ανάκτηση Πληροφορίας

11 Παράδειγμα Κείμενο Αντεστραμμένο Αρχείο
That house has a garden. The garden has many flowers. The flowers are beautiful Αντεστραμμένο Αρχείο Vocabulary Occurrences beautiful flowers garden house 70 45, 58 18, 29 6 Ανάκτηση Πληροφορίας

12 Αντεστραμμένα Αρχεία Οι απαιτήσεις χώρου για την αποθήκευση του λεξιλογίου (vocabulary) είναι αρκετά μικρές. Σύμφωνα με το νόμο του Heap το μέγεθος του λεξιλογίου αυξάνεται ανάλογα του O(n^β) όπου β είναι μία σταθερά μεταξύ 0 και 1. Στην πράξη το β παίρνει τιμές μεταξύ 0.4 και 0.6 Για παράδειγμα για κείμενα συνολικού μεγέθους 1GBytes από τη συλλογή TREC-2 το λεξιλόγιο καταλαμβάνει μόλις 5MBytes. Ανάκτηση Πληροφορίας

13 Αντεστραμμένα Αρχεία Το τμήμα των εμφανίσεων καταλαμβάνει πολύ περισσότερο χώρο. Εφόσον κάθε λέξη εμφανίζεται τουλάχιστον μία φορά στο κείμενο, ο επιπλέον απαιτούμενος χώρος είναι της τάξης του O(n). Ακόμη και μετά την απομάκρυνση των stopwords, το επιπλέον κόστος σε χώρο κυμαίνεται μεταξύ 30% και 40% του μεγέθους του κειμένου. Ανάκτηση Πληροφορίας

14 Αντεστραμμένα Αρχεία Για τη μείωση του απαιτούμενου χώρου χρησιμοποιείται η τεχνική της διευθυνσιοδότησης block (block addressing). Το κείμενο χωρίζεται σε τμήματα (blocks) και οι εμφανίσεις δείχνουν στα αντίστοιχα block και όχι σε χαρακτήρες. Οι κλασικές μέθοδοι που χρησιμοποιούν δείκτες σε θέσεις χαρακτήρων καλούνται full inverted indices. Ανάκτηση Πληροφορίας

15 Αντεστραμμένα Αρχεία Χρησιμοποιώντας block addressing απαιτούνται pointers μικρότερου μεγέθους διότι τα blocks είναι πολύ λιγότερα από τους χαρακτήρες του κειμένου. Επίσης εμφανίσεις που αναφέρονται σε λέξεις του ίδιου block εμφανίζονται με την ίδια αναφορά. Συνήθως το επιπλέον κόστος σε χώρο που απαιτείται με την τεχνική αυτή είναι περίπου 5% του μεγέθους του κειμένου. Ανάκτηση Πληροφορίας

16 Παράδειγμα Κείμενο Αντεστραμμένο Αρχείο
Block 1 Block Block Block 4 That house has a garden. The garden has many flowers. The flowers are beautiful Αντεστραμμένο Αρχείο Vocabulary Occurrences beautiful flowers garden house 4 3 2 1 Ανάκτηση Πληροφορίας

17 Σύγκριση 45% 19% 18% 73% 26% 25% 36% 1.7% 64% 32% 2.4% 35% 0.5% 63%
47% 0.7% Addressing words Addressing documents Addressing 256 blocks Index Small collection (1Mb) Medium collection (200Mb) Large collection (2Gb) Ανάκτηση Πληροφορίας

18 Αναζήτηση σε Αντ. Αρχείο
Μία τυπική μέθοδος αναζήτησης σε αντεστραμμένο αρχείο ακολουθεί τα παρακάτω βήματα: Αναζήτηση Λεξιλογίου: οι λέξεις που προσδιορίζονται στο ερώτημα απομονώνονται και αναζητούνται στο λεξιλόγιο. Ανάκτηση Εμφανίσεων: προσδιορίζονται οι εμφανίσεις της κάθε λέξης. Επεξεργασία Εμφανίσεων: οι εμφανίσεις επεξεργάζονται για την επίλυση φράσεων, ομοιότητας ή λογικών τελεστών (boolean operators). Εάν χρησιμοποιείται block addressing μπορεί να απαιτηθεί απευθείας αναζήτηση στο κείμενο. Ανάκτηση Πληροφορίας

19 Αναζήτηση σε Αντ. Αρχείο
Εφόσον η αναζήτηση ξεκινά με το λεξιλόγιο, μία καλή πρακτική είναι να αποθηκεύεται σε ξεχωριστό αρχείο. Είναι πιθανόν, ακόμη και για μεγάλες συλλογές κειμένων, το λεξιλόγιο να χωράει στην κύρια μνήμη. Σε διαφορετική περίπτωση μέρος του λεξιλογίου βρίσκεται στην κύρια μνήμη και το υπόλοιπο στη βοηθητική μνήμη (δίσκο, CD-ROM). Ανάκτηση Πληροφορίας

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

21 Αναζήτηση σε Αντ. Αρχείο
Για να απαντήσουμε ερωτήσεις διαστήματος η δομή του κατακερματισμού δεν είναι κατάλληλη. Για την περίπτωση αυτή μπορούμε να χρησιμοποιήσουμε δυαδικά δένδρα αναζήτησης, TRIES ή Β-δένδρα. Ανάκτηση Πληροφορίας

22 Παράδειγμα Να βρεθούν κείμενα που περιέχουν λέξεις οι οποίες λεξικογραφικά βρίσκονται μεταξύ της λέξης cluster και της λέξης damage. Ανάκτηση Πληροφορίας

23 Παράδειγμα Age basket cat cube cluster creature … creative damage …
Ανάκτηση Πληροφορίας

24 Αναζήτηση σε Αντ. Αρχείο
Σε περίπτωση που το ερώτημα αποτελείται από μεμονωμένες λέξεις η αναζήτηση σταματά όταν έχουμε προσδιορίσει τις εμφανίσεις των συγκεκριμένων λέξεων στα κείμενα. Σε περίπτωση που πάνω από μία λέξεις του ερωτήματος έχουν βρεθεί ακολουθεί η διαδικασία της ένωσης (union) των εμφανίσεων. Ανάκτηση Πληροφορίας

25 Αναζήτηση σε Αντ. Αρχείο
Στις περιπτώσεις όπου έχουμε αναζήτηση ολόκληρων φράσεων (όχι μεμονωμένων λέξεων) ή ερωτήματα γειτνίασης (proximity), η επεξεργασία είναι δυσκολότερη. Για κάθε λέξη δημιουργείται μία λίστα εμφανίσεων. Στη συνέχεια πραγματοποιείται επεξεργασία των λιστών ώστε να προσδιοριστεί η τελική απάντηση του ερωτήματος. Ανάκτηση Πληροφορίας

26 Παράδειγμα Έστω ότι αναζητείται η φράση: modern information retrieval
Έστω ότι μετά την αναζήτηση του λεξιλογίου έχουν προκύψει οι ακόλουθες λίστες: modern 10, 50, 80 information 17, 57, 120 retrieval 29, 90, 400 Ποια θα είναι η απάντηση στο ερώτημα; Υπάρχει ή φράση στο κείμενο ή όχι; Ανάκτηση Πληροφορίας

27 Κατασκευή Αντ. Αρχείου Η κατασκευή και η ενημέρωση ενός αντεστραμμένου αρχείου είναι σχετικά εύκολη διαδικασία. Ένα αντεστραμμένο αρχείο για ένα κείμενο n χαρακτήρων μπορεί να κατασκευαστεί σε χρόνο O(n). Ανάκτηση Πληροφορίας

28 Κατασκευή Αντ. Αρχείου Το λεξιλόγιο οργανώνεται με τη βοήθεια μίας βολικής δομής δεδομένων (π.χ. TRIE). Κάθε λέξη του κειμένου διαβάζεται και αναζητείται στο λεξιλόγιο. Εάν η νέα λέξη δε βρεθεί στο λεξιλόγιο, τότε εισάγεται σε αυτό και ενημερώνεται η λίστα εμφανίσεων για τη συγκεκριμένη λέξη. Εάν η λέξη υπάρχει στο λεξιλόγιο, τότε απαιτείται μόνο ενημέρωση της λίστας εμφανίσεων. Ανάκτηση Πληροφορίας

29 Κατασκευή Αντ. Αρχείου This is a text. A text has many words. Words are made from letters letters: 60 l d made: 50 m a t n many: 28 text: 11, 19 w words: 33, 40 Ανάκτηση Πληροφορίας

30 Κατασκευή Αντ. Αρχείου Εφόσον για την επεξεργασία κάθε χαρακτήρα του κειμένου απαιτείται χρόνος Ο(1), και για την ενημέρωση μίας λίστας εμφανίσεων απαιτείται χρόνος Ο(1), η συνολική πολυπλοκότητα της προηγούμενης μεθόδου είναι Ο(n). Σε περίπτωση που η δομή δεν μπορεί να χωρέσει στην κύρια μνήμη, η μέθοδος παρουσιάζει προβλήματα, διότι απαιτούνται πολλές προσπελάσεις στο δίσκο, με αποτέλεσμα να αυξάνεται δραματικά ο χρόνος κατασκευής. Ανάκτηση Πληροφορίας

31 Κατασκευή Αντ. Αρχείου Εναλλακτική Μέθοδος
Η προηγούμενη διαδικασία συνεχίζεται μέχρι να γεμίσει η κύρια μνήμη. Σχηματίζεται ένα τμήμα της δομής δεδομένων Ii το οποίο αποθηκεύεται στο δίσκο. Ακολουθώντας την ίδια διαδικασία σχηματίζεται ένα σύνολο τμημάτων Ii τα οποία είναι αποθηκευμένα στο δίσκο. Ακολουθούν διαδοχικές συγχωνεύσεις ώστε να προκύψει η συνολική δομή. Ανάκτηση Πληροφορίας

32 Κατασκευή Αντ. Αρχείου I 1...8 I 1...4 I 5...8 I 1...2 I 3...4 I 5...6
7 final index initial dumps level 1 level 2 level 3 Ανάκτηση Πληροφορίας

33 Κατασκευή Αντ. Αρχείου Πολυπλοκότητα Εναλλακτικής Μεθόδου
Χρόνος κατασκευής των τμημάτων Ii είναι O(n). Αριθμός τμημάτων O(n/M). Κάθε φάση συγχώνευσης απαιτεί χρόνο O(n). Για τη συγχώνευση των O(n/M) τμημάτων απαιτούνται log(n/M) φάσεις συγχώνευσης. Επομένως συνολικά Ο(n * log(n/M)) Ανάκτηση Πληροφορίας

34 Μειονεκτήματα Αντ. Αρχείων
Η μέθοδος των αντεστραμμένων αρχείων υποθέτει ότι το κείμενο μπορεί να θεωρηθεί σαν μία ακολουθία λέξεων. Αυτό το χαρακτηριστικό περιορίζει αρκετά τον τύπο των ερωτημάτων που μπορούν να επεξεργαστούν από το σύστημα. Ερωτήματα όπως αναζήτηση φράσεων είναι ακριβά στην επεξεργασία τους. Τέλος, σε πολλές εφαρμογές η έννοια της δεν υπάρχει (π.χ. genetic databases). Ανάκτηση Πληροφορίας

35 Suffix Trees & Arrays Αποτελούν αποδοτική υλοποίηση των suffix trees.
Επιτρέπουν την επεξεργασία πιο πολύπλοκων ερωτήσεων. Η μέθοδος αυτή «βλέπει» το κείμενο σαν μία μεγάλη σειρά χαρακτήρων. Κάθε θέση στο κείμενο θεωρείται ως suffix. Οι θέσεις που δεικτοδοτούνται ονομάζονται index points. Δεν απαιτείται η δεικτοδότηση όλων των θέσεων του κειμένου. Ανάκτηση Πληροφορίας

36 Suffix Trees & Arrays Ένα suffix tree είναι στην ουσία μία δομή TRIE η οποία χτίζεται με βάση τις καταλήξεις (suffixes) του κειμένου. Οι pointers προς τις καταλήξεις αποθηκεύονται στα φύλλα της δομής. Για τη βελτίωση του παράγοντα χρησιμοποίησης χώρου (space utilization), τα μονοπάτια της δομής συμπιέζονται (Patricia trees). Αυτό μας επιτρέπει να αποθηκεύσουμε τη δομή σε χώρο O(n). Ανάκτηση Πληροφορίας

37 Suffix Trees & Arrays This is a text. A text has many words. Words are made from letters 60 l d 50 m a t n 28 ‘ ’ 19 e x t w Suffix Trie ‘.’ 11 ‘ ’ o r d s 40 ‘.’ 33 Ανάκτηση Πληροφορίας

38 Suffix Trees & Arrays This is a text. A text has many words. Words are made from letters 60 l d 50 m n t 28 ‘ ’ 19 w Suffix Tree ‘.’ 11 ‘ ’ 40 ‘.’ 33 Ανάκτηση Πληροφορίας

39 Suffix Trees & Arrays Το πρόβλημα είναι ότι για την αποθήκευση της δομής απαιτείται αρκετός χώρος. Υπολογίζεται ότι ακόμη και στην περίπτωση που δεικτοδοτούνται μόνο οι πρώτοι χαρακτήρες κάθε λέξης, ο επιπλέον χώρος που απαιτείται είναι 120% με 240% του συνολικού μεγέθους του κειμένου. Κάθε κόμβος της δομής απαιτεί 12 ή 24 bytes για την αποθήκευσή του. Ανάκτηση Πληροφορίας

40 Suffix Trees & Arrays Η δομή των suffix arrays προσφέρει την ίδια λειτουργικότητα, με τη διαφορά ότι απαιτείται πολύ λιγότερος χώρος για την αποθήκευση της δομής. Εάν διασχίσουμε τα φύλλα του suffix tree από αριστερά προς τα δεξιά, όλες οι καταλήξεις (suffixes) του κειμένου παράγονται κατά λεξικογραφική διάταξη. Ένα suffix array περιέχει τους pointers στις καταλήξεις με λεξικογραφική διάταξη. Ανάκτηση Πληροφορίας

41 Suffix Trees & Arrays This is a text. A text has many words. Words are made from letters 60 50 28 19 11 40 33 Suffix Array Ο επιπλέον απαιτούμενος χώρος είναι περίπου 40% του κειμένου. Ανάκτηση Πληροφορίας

42 Αναζήτηση με 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). Ανάκτηση Πληροφορίας

43 Αρχεία Υπογραφών Signature Files
Διαχειρίζονται λέξεις (word-based) και στηρίζονται στον κατακερματισμό. Έχουν σχετικά μικρό επιπλέον χώρο (περίπου 10% με 20% του μεγέθους του κειμένου). Σύμφωνα με πειραματικές μετρήσεις, τα αντεστραμμένα αρχεία έχουν καλύτερη απόδοση από τα αρχεία υπογραφών. Ανάκτηση Πληροφορίας

44 Αρχεία Υπογραφών Ένα αρχείο υπογραφών χρησιμοποιεί μία συνάρτηση κατακερματισμού η οποία αναπαριστά κάθε λέξη με μία μάσκα από Β bits. Το κείμενο χωρίζεται σε blocks με b λέξεις το καθένα. Σε κάθε block μεγέθους b αντιστοιχούμε μία μάσκα από B bits. Η μάσκα παράγεται εφαρμόζοντας τον τελεστή OR στις δυαδικές αναπαραστάσεις των λέξεων του block. Ανάκτηση Πληροφορίας

45 Αρχεία Υπογραφών Εάν μία λέξη είναι παρούσα σε ένα block κειμένου, τότε όλα τα bits που είναι 1 στην υπογραφή της λέξης, είναι επίσης 1 στη μάσκα του block. Ωστόσο είναι πιθανόν, τα bits να είναι 1 ακόμη και όταν η λέξη δε βρίσκεται στο block. Αυτό ονομάζεται false drop. Το πιο ενδιαφέρον μέρος στα αρχεία υπογραφών είναι μα μειωθεί στο ελάχιστο η πιθανότητα να έχουμε false drop. Ανάκτηση Πληροφορίας

46 Παράδειγμα This is a text. A text has many words. Words are made from letters 000101 110101 100100 101101 H(text) = H(many) = H(words) = H(made) = H(letters) = Η συνάρτηση κατακερματισμού επιλέγεται έτσι ώστε να υπάρχουν τουλάχιστον Κ bits ενεργά στην υπογραφή κάθε λέξης. Ανάκτηση Πληροφορίας

47 Σειριακή Αναζήτηση Υπάρχουν περιπτώσεις που δεν υπάρχουν βοηθητικές δομές δεδομένων για την αναζήτηση. Αν δίνεται ένα pattern P με m χαρακτήρες και ένα κείμενο Κ με n χαρακτήρες, πρέπει να βρεθούν οι εμφανίσεις του P στο Κ. Έχουν προταθεί πολλές μέθοδοι για την επίλυση του προβλήματος. Στη συνέχεια θα εξετάσουμε μερικές από αυτές. Ανάκτηση Πληροφορίας

48 Σειριακή Αναζήτηση Προφανής μέθοδος (brute-force)
Μέθοδος των Knuth, Morris και Pratt (KMP) Μέθοδος Boyer-Moore Μέθοδος Shift-or Μέθοδος Suffix Automaton Ανάκτηση Πληροφορίας

49 Brute-Force Είναι η πιο απλή μέθοδος αναζήτησης.
Δοκιμάζονται σειριακά όλες οι θέσεις του κειμένου και ελέγχεται εάν το pattern ταιριάζει με τους χαρακτήρες του κειμένου. Η διαδικασία ακολουθείται έως ότου φτάσουμε στο τέλος του κειμένου Κ. Ανάκτηση Πληροφορίας

50 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
Ανάκτηση Πληροφορίας

51 Brute-Force Υπάρχουν O(n) θέσεις στο κείμενο και Ο(m) θέσεις στο pattern. Εφόσον εξετάζονται όλες οι δυνατές θέσεις για το pattern, η πολυπλοκότητα χειρότερης περίπτωσης για τη μέθοδο είναι O(n*m). Ωστόσο η πολυπλοκότητα μέσης περίπτωσης είναι O(n), διότι σε τυχαίο κείμενο θα έχουμε αποτυχία μετά από O(1) συγκρίσεις χαρακτήρων. Ανάκτηση Πληροφορίας

52 Knuth-Morris-Pratt Είναι ο πρώτος αλγόριθμος με γραμμική πολυπλοκότητα χειρότερης περίπτωσης που προτάθηκε (Ο(n)). Ωστόσο στη μέση περίπτωση έχει παρόμοια απόδοση με τον brute-force. Η βασική τεχνική που χρησιμοποιείται είναι ότι αποφεύγεται η εξέταση θέσεων στις οποίες είναι σίγουρο ότι δε θα βρεθεί το pattern. Έτσι, δεν εξετάζονται όλες οι δυνατές θέσεις. Ανάκτηση Πληροφορίας

53 Knuth-Morris-Pratt Απαιτείται προεπεξεργασία του pattern.
Κατασκευάζεται ένας πίνακας next, ο οποίος δηλώνει πόσες θέσεις μπορούμε να προχωρήσουμε. Κάθε θέση j του πίνακα δείχνει πιο είναι το μεγαλύτερο κανονικό πρόθεμα του P1..j-1 το οποίο είναι επίσης και επίθεμα και οι χαρακτήρες που ακολουθούν είναι διαφορετικοί. Επομένως, μπορούμε με ασφάλεια να παρακάμψουμε j - next[j] - 1 χαρακτήρες. Ανάκτηση Πληροφορίας

54 Knuth-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
Ανάκτηση Πληροφορίας

55 Knuth-Morris-Pratt Η μέθοδος χρησιμοποιεί ένα «παράθυρο» το οποίο σε κάθε βήμα βρίσκεται σε μία θέση του κειμένου. Υπάρχει ένας δείκτης (pointer) μέσα στο παράθυρο. Κάθε φορά που ένας χαρακτήρας του pattern ταιριάζει, ο δείκτης μετακινείται μία θέση παρακάτω. Κάθε φορά που δεν υπάρχει ταίριασμα, το παράθυρο μετακινείται ενώ ο δείκτης παραμένει σταθερός. Εφόσον κάθε φορά είτε το παράθυρο είτε ο δείκτης μετακινούνται κατά μία θέση, η μέθοδος πραγματοποιεί το πολύ 2*n συγκρίσεις. Ανάκτηση Πληροφορίας

56 Boyer-Moore Το pattern συγκρίνεται με χαρακτήρες του κειμένου από το τέλος του pattern προς την αρχή. Όπως και η μέθοδος KMP χρησιμοποιεί το match heuristic. Εκτός από το match heuristic, χρησιμοποιείται και το occurrence heuristic: ο χαρακτήρας του κειμένου που προκάλεσε το πρόβλημα πρέπει να «ευθυγραμμιστεί» με το pattern μετά τη μετακίνηση του παραθύρου. Ανάκτηση Πληροφορίας

57 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 ΕΠΙΛΕΓΕΤΑΙ Η ΜΕΓΑΛΥΤΕΡΗ ΜΕΤΑΚΙΝΗΣΗ Ανάκτηση Πληροφορίας

58 Boyer-Moore Κόστος προεπεξεργασίας pattern Ο(m+σ).
Κόστος αναζήτησης μέσης περίπτωσης: Ο(n*logm/m) Κόστος αναζήτησης χειρότερης περίπτωσης Ο(m*n). Παραλλαγές: ΒΜ-απλοποιημένος, BM-Horspool, BM-Sunday, Commentz-Walter (επέκταση για αναζήτηση πολλών patterns). Ανάκτηση Πληροφορίας

59 Shift-OR Στηρίζεται στην τεχνική bit-parallelism.
Λειτουργίες που αφορούν στα bits μίας λέξης του επεξεργαστή που αποτελείται από w bits. Οι σημερινοί επεξεργαστές στηρίζονται σε αρχιτεκτονικές 32 ή 64 bits. Η βελτίωση που προσφέρει η μέθοδος στο χρόνο αναζήτησης του pattern είναι αρκετά καλή. Ανάκτηση Πληροφορίας

60 Shift-OR Η μέθοδος εξομοιώνει τη λειτουργία ενός μη-ντετερμινιστικού αυτομάτου το οποίο αναζητά το pattern στο κείμενο. Το αυτόματο εξομοιώνεται σε χρόνο O(n*m). Η πολυπλοκότητα χρόνου χειρότερης περίπτωσης είναι O(n*m/w) (optimal speedup). Ανάκτηση Πληροφορίας

61 Shift-OR a b r a c a d a b r a B[a] 0 1 1 0 1 0 1 0 1 1 0 B[b]
B[b] B[c] B[d] B[r] B[*] Ανάκτηση Πληροφορίας

62 Shift-OR Η κατάσταση της αναζήτησης καταχωρείται σε μία λέξη μηχανής D=dm … d1, όπου το bit di = 0 όταν η κατάσταση i του αυτομάτου είναι ενεργή. Επομένως έχουμε ταύτιση όταν dm == 0. bOR = bitwise OR bAND = bitwise AND Ανάκτηση Πληροφορίας

63 Shift-OR Αρχικά όλα τα bits της λέξης D είναι 1.
Για κάθε νέο χαρακτήρα κειμένου Tj που εξετάζεται, η λέξη D ενημερώνεται ως εξής: D’ = ( D << 1) bOR B[Tj]. Το σύμβολο << σημαίνει ότι τα bits μετακινούνται μία θέση αριστερά (shift-left) και το πιο δεξί bit γίνεται 1. Ανάκτηση Πληροφορίας

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

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

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

67 Approximate Matching Δίνεται ένα pattern P μεγέθους m, κείμενο Τ μεγέθους n, και ένας ακέραιος αριθμός k ο οποίος δηλώνει το μέγιστο αριθμό λαθών που επιτρέπονται στο ταίριασμα. Το πρόβλημα είναι πιο πρόσφατο σε σχέση με την ακριβή (exact) αναζήτηση. Υπάρχουν αρκετές λύσεις. Εδώ θα συζητήσουμε δύο: Δυναμικός προγραμματισμός Αυτόματα Ανάκτηση Πληροφορίας

68 Δυναμικός Προγραμματισμός
Οι περισσότεροι από τους αλγορίθμους που σχετίζονται με επεξεργασία ομιλίας και γλωσσών ανήκουν στην οικογένεια του Δυναμικού Προγραμματισμού. Μεταξύ αυτών βρίσκεται και ο αλγόριθμος που βασίζεται στην ελάχιστη απόσταση (minimum edit distance). Ο Δυναμικός Προγραμματισμός βασίζεται στην αρχή ότι το αρχικό πρόβλημα μπορεί να επιλυθεί, με κατάλληλο συνδυασμό των λύσεων μικρότερων υποπροβλημάτων. Ανάκτηση Πληροφορίας

69 Δυναμικός Προγραμματισμός
Έστω πίνακας C[0…m, 0…n]. Το στοιχείο C[i,j] δηλώνει τον ελάχιστο αριθμό λαθών που υπάρχουν κατά το ταίριασμα του P1…i με κάποιο suffix του T1…j. Ο υπολογισμός γίνεται ως εξής: Έχουμε ταίριασμα όταν για κάποια θέση j ισχύει C[m,j] <= k Ανάκτηση Πληροφορίας

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

71 Δυναμικός Προγραμματισμός
Ανάκτηση Πληροφορίας

72 Αυτόματα Ανάκτηση Πληροφορίας


Κατέβασμα ppt "Δεικτοδότηση και Αναζήτηση (Indexing & Searching)"

Παρόμοιες παρουσιάσεις


Διαφημίσεις Google