Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Ανάκτηση Πληροφορίας Διδάσκων: Φοίβος Μυλωνάς fmylonas@ionio.gr Διάλεξη #10 εικτοδότηση και Αναζήτηση Φοίβος Μυλωνάς fmylonas@ionio.gr Ανάκτηση Πληροφορίας 1
Άδεια χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άλλου τύπου άδειας χρήσης, η άδεια χρήσης αναφέρεται ρητώς. Φοίβος Μυλωνάς fmylonas@ionio.gr Ανάκτηση Πληροφορίας 2
Χρηματοδότηση Το παρόν εκπαιδευτικό υλικό έχει αναπτυχθεί στα πλαίσια του εκπαιδευτικού έργου του διδάσκοντα. Το έργο «Ανοικτά Ακαδημαϊκά Μαθήματα Ιονίου Πανεπιστημίου» έχει χρηματοδοτήσει μόνο τη αναδιαμόρφωση του εκπαιδευτικού υλικού. Το έργο υλοποιείται στο πλαίσιο του Επιχειρησιακού Προγράμματος «Εκπαίδευση και Δια Βίου Μάθηση» και συγχρηματοδοτείται από την Ευρωπαϊκή Ένωση (Ευρωπαϊκό Κοινωνικό Ταμείο) και από εθνικούς πόρους. Φοίβος Μυλωνάς fmylonas@ionio.gr Ανάκτηση Πληροφορίας 3
Αρχιτεκτονική Συστήµατος IR User Need User Interface Text Operations Text User Feedback Query Operations Indexing Database Manager Query Ranked Docs Searching Ranking Index Retrieved Docs Text Database
Εισαγωγή Με ποιους τρόπους µπορούµε να αναζητήσουµε πληροφορία από µία συλλογή κειµένων; Ο πιο απλός και εύκολα υλοποιήσιµος τρόπος είναι να ψάξουµε σειριακά όλα τα κείµενα της συλλογής (online searching) Κατάλληλος για µικρές και ευµετάβλητες συλλογές Ένας άλλος τρόπος είναι να δηµιουργήσουµε ειδικές δοµές δεικτοδότησης (index structures) ώστε να επιταχύνουµε τη διαδικασία αναζήτησης Κατάλληλος για µεγάλες ή ηµι-στατικές συλλογές (που ενηµερώνονται ανά διαστήµατα) οµές εδοµένων υαδικά δέντρα αναζήτησης Β-trees Hash tables Tries
1. υαδικά ένδρα Αναζήτησης Κάθε κόµβος έχει το πολύ δύο θυγατρικούς κόµβους Η τιµή του αριστερού κόµβου είναι µικρότερη ή ίση µε τον γονικό Η τιµή του κόµβου είναι µεγαλύτερη ή ίση µε τον γονικό 10 4 19 1 7 13 22 2.Β-trees 5 3 11 1 2 4 8 9 14 16 Τα δεδοµένα διατηρούνται σε διάταξη Οι κόµβοι έχουν µεταβλητό αριθµό θυγατρικών κόµβων εντός κάποιου προκαθορισµένου εύρους
3.Hash Tables Keys Hash Values John Smith Lisa Smith Sam Doe 0 1 872 873 998 999 +5043309249 +6504360886 +6658349001 Συνδέει κλειδιά µε τιµές Το κλειδί µετασχηµατίζεται σε έναν αριθµό (hash) που χρησιµοποιείται για να βρεθεί η επιθυµητή τιµή Retrieval Αποθηκεύουν strings Κάθε κόµβος µπορεί να έχει πολλαπλούς θυγατρικούς κόµβους Κάθε ακµή του δέντρου έχει µία ετικέτα (χαρακτήρα) 4.Tries
εικτοδότηση Κειµένων Στην περίπτωση των κειµένων οι µηχανισµοί δεικτοδότησης διαφέρουν από τους αντίστοιχους για αριθµητικά δεδοµένα εικτοδότηση για κείµενα: Ανεστραµµένα Αρχεία (inverted files) έντρα και πίνακες επιθεµάτων (suffix trees, suffix arrays) Αρχεία Υπογραφών (signature files) Ανεστραµµένα Αρχεία Ορισµοί: n: συνολικό µέγεθος κειµένου συλλογής m: µήκος του προτύπου αναζήτησης v: µέγεθος λεξιλογίου M: το µέγεθος της διαθέσιµης κύριας µνήµης
Ανεστραµµένα Αρχεία Είναι ένας µηχανισµός δεικτοδότησης στηριζόµενες σε λέξεις (word-based) ο οποίος χρησιµοποιείται για αποδοτικότερη αναζήτηση οµή αντεστραµµένου αρχείου: Λεξιλόγιο (vocabulary) Λίστες εµφάνισης (occurrence lists) Παράδειγµα Κείµενο 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
Ανεστραµµένα Αρχεία Οι απαιτήσεις χώρου για την αποθήκευση του λεξιλογίου είναι αρκετά µικρές Σύµφωνα µε το νόµο του Heaps το µέγεθος του λεξιλογίου αυξάνεται ανάλογα του O(n β ) όπου β είναι µία σταθερά µεταξύ 0 και 1. => [V ~ sqrt(n)] Στην πράξη το β παίρνει τιµές µεταξύ 0.4 και 0.6 Για παράδειγµα για κείµενα συνολικού µεγέθους 1Gb από τη συλλογή TREC-2 το λεξιλόγιο καταλαµβάνει µόλις 5Mb Ανεστραµµένα Αρχεία Το τµήµα της λίστας εµφανίσεων καταλαµβάνει πολύ περισσότερο χώρο Εφόσον κάθε λέξη εµφανίζεται τουλάχιστον µία φορά στο κείµενο, ο επιπλέον απαιτούµενος χώρος είναι της τάξης του O(n) Ακόµη και µετά την αποµάκρυνση των stopwords, το επιπλέον κόστος σε χώρο κυµαίνεται µεταξύ 30% και 40% του µεγέθους του κειµένου
Ανεστραµµένα Αρχεία Οι µέθοδοι που χρησιµοποιούν δείκτες σε θέσεις χαρακτήρων καλούνται full inverted indices Εναλλακτικά οι δείκτες µπορεί να αναφέρονται σε θέσεις λέξεων Κατάλληλο για queries φράσεων Για τη µείωση του απαιτούµενου χώρου χρησιµοποιείται η τεχνική block addressing Το κείµενο χωρίζεται σε τµήµατα (blocks) και οι εµφανίσεις δείχνουν στα αντίστοιχα block και όχι σε χαρακτήρες ή λέξεις Ανεστραµµένα Αρχεία Χρησιµοποιώντας block addressing απαιτούνται pointers µικρότερου µεγέθους διότι τα blocks είναι πολύ λιγότερα από τους χαρακτήρες του κειµένου Επίσης, εµφανίσεις που αναφέρονται σε λέξεις του ίδιου block εµφανίζονται µε την ίδια αναφορά Συνήθως το επιπλέον κόστος σε χώρο που απαιτείται µε την τεχνική αυτή είναι περίπου 5% του µεγέθους του κειµένου
Παράδειγµα Κείµενο Block 1 Block 2 Block 3 Block 4 That house has a garden. The garden has many flowers. The flowers are beautiful Ανεστραµµένο Αρχείο Vocabulary beautiful flowers garden house 4 3 2 1 Occurrences Μία εµφάνιση στη λίστα για τη λέξη flowers Σύγκριση Small collection Medium collection Large collection Index (1Mb) (200Mb) (2Gb) Addressing words 45% 73% 36% 64% 35% 63% Addressing documents 19% 26% 18% 32% 26% 47% Addressing 64K blocks 27% 41% 18% 32% 5% 9% Addressing 256K blocks 18% 25% 1.7% 2.4% 0.5% 0.7% Stopwords are not indexed All words are indexed
Αναζήτηση σε Αν. Αρχείο Μία τυπική µέθοδος αναζήτησης σε ανεστραµµένο αρχείο συνήθως ακολουθεί τα παρακάτω βήµατα: 1. Αναζήτηση Λεξιλογίου: οι όροι που προσδιορίζονται στο query αποµονώνονται και αναζητούνται στο λεξιλόγιο 2. Ανάκτηση Εµφανίσεων: προσδιορίζονται οι εµφανίσεις του κάθε όρου 3. Επεξεργασία Εµφανίσεων: οι εµφανίσεις επεξεργάζονται για την επίλυση φράσεων, οµοιότητας ή λογικών τελεστών (boolean operators). Εάν χρησιµοποιείται block addressing µπορεί να απαιτηθεί απευθείας αναζήτηση στο κείµενο Αναζήτηση σε Αν. Αρχείο Εφόσον η αναζήτηση ξεκινά µε το λεξιλόγιο, µία καλή πρακτική είναι να αποθηκεύεται σε ξεχωριστό αρχείο Είναι πιθανόν, ακόµη και για µεγάλες συλλογές κειµένων, το λεξιλόγιο να χωράει στην κύρια µνήµη Σε διαφορετική περίπτωση µέρος του λεξιλογίου βρίσκεται στην κύρια µνήµη και το υπόλοιπο στη βοηθητική µνήµη (δίσκο, CD-ROM)
Single-word Queries Ερωτήσεις µίας µόνο λέξης µπορούν να απαντηθούν χρησιµοποιώντας κάποια βολική δοµή δεδοµένων για τη γρήγορη επεξεργασία του ερωτήµατος Hashing, χρόνος αναζήτησης O(m) Tries, χρόνος αναζήτησης O(m) Β-trees, χρόνος αναζήτησης O(m*log(n)) Λεξικογραφική λίστα, χρόνος αναζήτησης O(log(n)) Η αναζήτηση σταµατά όταν έχουµε προσδιορίσει τις εµφανίσεις της λέξης Ίσως χρειαστεί να ενωθούν κάποιες λίστες αν το πρότυπο αναζήτησης ταιριάζει µε πολλές λέξεις Ερωτήσεις ιαστήµατος Για να απαντήσουµε ερωτήσεις διαστήµατος το hashing δεν είναι κατάλληλο Για την περίπτωση αυτή µπορούµε να χρησιµοποιήσουµε δυαδικά δένδρα αναζήτησης, Tries ή Β-trees
Παράδειγµα Ερώτησης ιαστήµατος Να βρεθούν κείµενα που περιέχουν λέξεις οι οποίες λεξικογραφικά βρίσκονται µεταξύ της λέξης cluster και της λέξης damage Age basket cat cube cluster creature creative damage Context Queries Στις περιπτώσεις όπου έχουµε αναζήτηση ολόκληρων φράσεων (όχι µεµονωµένων λέξεων) ή ερωτήµατα προσέγγισης όρων, η επεξεργασία είναι δυσκολότερη Για κάθε λέξη δηµιουργείται µία λίστα εµφανίσεων Στη συνέχεια πραγµατοποιείται επεξεργασία των λιστών ώστε να προσδιοριστεί η τελική απάντηση στο ερώτηµα Αν οι δείκτες αντιστοιχούν σε θέσεις χαρακτήρων η προσέγγιση πρέπει να οριστεί µε απόσταση µεταξύ χαρακτήρων συµπεριλαµβανοµένου του κενού χαρακτήρα Αν χρησιµοποιείται block addressing πρέπει να προσπελαστούν τα αντίστοιχα blocks για να βρεθεί η πληροφορία θέσης
Κατασκευή Αν. Αρχείου Η κατασκευή και η ενηµέρωση ενός ανεστραµµένου αρχείου είναι σχετικά εύκολη διαδικασία Ένα ανεστραµµένο αρχείο για µέγεθος κειµένου n χαρακτήρων µπορεί να κατασκευαστεί σε χρόνο O(n) Κατασκευή Αν. Αρχείου Το λεξιλόγιο οργανώνεται µε τη βοήθεια µίας βολικής δοµής δεδοµένων (π.χ. Trie) Κάθε λέξη του κειµένου διαβάζεται και αναζητείται στο λεξιλόγιο Εάν η νέα λέξη δε βρεθεί στο λεξιλόγιο, τότε εισάγεται σε αυτό και ενηµερώνεται η λίστα εµφανίσεων για τη συγκεκριµένη λέξη Εάν η λέξη υπάρχει στο λεξιλόγιο, τότε απαιτείται µόνο ενηµέρωση της λίστας εµφανίσεων
Παράδειγµα: Trie Λεξιλογίου 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 letters: 60 a d made: 50 t w text: 11, 19 n many: 28 words: 33, 40 Κόστος Κατασκευής Εφόσον για την επεξεργασία κάθε χαρακτήρα του κειµένου απαιτείται χρόνος Ο(1), και για την ενηµέρωση µίας λίστας εµφανίσεων απαιτείται χρόνος Ο(1), η συνολική πολυπλοκότητα της προηγούµενης µεθόδου είναι Ο(n) Σε περίπτωση που η δοµή δεν µπορεί να χωρέσει στην κύρια µνήµη, η µέθοδος παρουσιάζει προβλήµατα, διότι απαιτούνται πολλές προσπελάσεις στο δίσκο, µε αποτέλεσµα να αυξάνεται δραµατικά ο χρόνος κατασκευής
Εναλλακτική Μέθοδος Κατασκευής Ακολουθείται η προηγούµενη διαδικασία µέχρι να γεµίσει η κύρια µνήµη Σχηµατίζεται ένα partial index I i το οποίο αποθηκεύεται στο δίσκο Με την ίδια διαδικασία σχηµατίζεται ένα σύνολο partial indices I i τα οποία αποθηκεύονται στο δίσκο Ακολουθούν διαδοχικές συγχωνεύσεις των partial indices ώστε να προκύψει το συνολικό index Παράδειγµα 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 1 2 4 5 level 1 I 1 I 2 I 3 I 4 I 5 I 6 I 7 I 8 initial dumps
Πολυπλοκότητα Εναλλακτικής Μεθόδου Ο χρόνος κατασκευής των I i είναι O(n) Αριθµός τµηµάτων O(n/M) Κάθε φάση συγχώνευσης απαιτεί χρόνο O(n) Για τη συγχώνευση των O(n/M) τµηµάτων απαιτούνται log(n/m) φάσεις συγχώνευσης Εποµένως το κόστος είναι Ο(n*log(n/M)) Μειονεκτήµατα Αν. Αρχείων Η µέθοδος των ανεστραµµένων αρχείων υποθέτει ότι το κείµενο µπορεί να θεωρηθεί σαν µία ακολουθία λέξεων Αυτό το χαρακτηριστικό περιορίζει αρκετά τον τύπο των ερωτηµάτων που µπορούν να επεξεργαστούν από το σύστηµα Ερωτήµατα όπως αναζήτηση φράσεων είναι ακριβά στην επεξεργασία τους Η έννοια της λέξης δεν υφίσταται σε κάποιες εφαρµογές (γενετικές βάσεις δεδοµένων)