1 / 61

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

Ανάκτηση Πληροφορίας. Φροντιστήριο 3. Οκτώβριος 2013. Περιεχόμενα. Ανεστραμμένα Αρχεία Εισαγωγή Δημιουργία (1/2) Indexing Compression. Ανεστραμμένα Αρχεία. Εισαγωγή. Με ποιους τρόπους μπορούμε να αναζητήσουμε πληροφορία από μία συλλογή κειμένων;

ham
Download Presentation

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

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

  2. Περιεχόμενα • Ανεστραμμένα Αρχεία • Εισαγωγή • Δημιουργία (1/2) • Indexing • Compression

  3. Ανεστραμμένα Αρχεία

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

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

  6. Εισαγωγή • Ένα ανεστραμμένο αρχείο περιέχει, • για κάθε όρο στο λεξικό, • μια ανεστραμμένη λίστα που φυλάει • μια λίστα από δείκτες σε όλες τις εμφανίσεις ενός όρου στο κείμενο, όπου κάθε δείκτης είναι ο αριθμός του κειμένου στο οποίο υπάρχει ο όρος. • Ένα ευρετήριο εδώ απαιτεί ένα λεξικό, δηλαδή μια λίστα με όλους τους όρους που υπάρχουν στη βάση δεδομένων.

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

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

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

  10. Έχουμε την πρόταση That house has a garden. The garden has many flowers. The flowers are beautiful Ανεστραμμένο αρχείο Inverted file indexing :Παράδειγμα 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 Οι κλασικές μέθοδοι που χρησιμοποιούν δείκτες σε θέσεις χαρακτήρων καλούνται fullinvertedindices.

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

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

  13. Default English stopwords list http://www.ranks.nl/resources/stopwords.html

  14. Ανεστραμμένα Αρχεία • Για τη μείωση του απαιτούμενου χώρου χρησιμοποιείται η τεχνική της διευθυνσιοδότησηςblock (blockaddressing). • Το κείμενο χωρίζεται σε τμήματα (blocks) και οι εμφανίσεις δείχνουν στα αντίστοιχα block και όχι σε χαρακτήρες.

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

  16. Ανεστραμμένα Αρχεία Κείμενο block1 block2 block3 block4 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 Ανεστραμμένο Αρχείο λεξικό εμφανίσεις beautiful flowers garden house 4 3 2 1 Γιατί θέλουν λιγότερο χώρο από τους χαρακτήρες?

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

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

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

  20. Αναζήτηση σε Αν. Αρχείο • Για να απαντήσουμε σύνθετες ερωτήσεις πολλών όρων η δομή του κατακερματισμού δεν είναι κατάλληλη. • Για την περίπτωση αυτή μπορούμε να χρησιμοποιήσουμε δυαδικά δένδρα αναζήτησης, TRIES ή Β-δένδρα.

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

  22. Παράδειγμα Age basket cat cube cluster creature … creative damage …

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

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

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

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

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

  28. Κατασκευή Αν. Αρχείου

  29. Κατασκευή Αν. Αρχείου • Γενικά είναι καλό να χωρίζουμε το ευρετήριο σε δύο αρχεία • Στο πρώτο η λίστα των occurrences αποθηκεύονται συνεχόμενα (posting file). • Στο δεύτερο το λεξικό αποθηκεύεται λεξικογραφικά, και για κάθε λέξη υπάρχει και ένας δείκτης στην αντίστοιχη ανεστραμμένη λίστα. • Αυτό επιτρέπει στο λεξικό να φυλάσσεται στη μνήμη κατά την αναζήτηση στις περισσότερες περιπτώσεις

  30. Inverted file indexing – Inverted file compression

  31. Indexing • Σκοπός • Σχεδιασμός δομών δεδομένων που επιτρέπουν τηναποδοτική υλοποίηση της γλώσσας επερώτησης • Απλοϊκή προσέγγιση: σειριακή αναζήτηση (online sequential search) • Ικανοποιητική μόνο αν η συλλογή των κειμένων είναι μικρή • Είναι η μόνη επιλογή αν η συλλογή κειμένων είναι ευμετάβλητη

  32. Indexing • Ένα index είναι ένας μηχανισμός για τον εντοπισμό ενός όρου σε ένα κείμενο • Π.χ.index σε βιβλίο • Εύρεση πληροφορίας χωρίς φυλλομέτρηση • Σε μεγάλες συλλογές κειμένων (gigabytes) η αναζήτηση σελίδα προς σελίδα είναι μέχρι και αδύνατη.

  33. Granularity of index • Κοκκοποίησητου index = η ανάλυσημε την οποία οι θέσεις των όρων καταγράφονται μέσα σε κάθε έγγραφο. • Π.χ. 1 κεφάλαιο = 1 έγγραφο, αλλά το index δύναται να υπολογίσει μια πιο ακριβή τοποθεσία μέσα στο έγγραφο για κάθε όρο. • Π.χ. Ερωτήσεις όπωςποια έγγραφα περιέχουντους όρους ’tax’ και ’avoidance’ στην ίδια πρόταση;

  34. Granularity • Έναcoarse-grained(χονδρόκοκκος)indexδύναται να αναγνωρίσειμόνοblockκειμένου, όπου κάθε block αποθηκεύει ορισμένα έγγραφα. • Έναmoderate-grained indexαποθηκεύει θέσειςμε την έννοια του αριθμού εγγράφου. • Έναfine-grained(λεπτόκοκκος)indexεπιστρέφει μία πρόταση ή αριθμό λέξης.

  35. Granularity • Coarse indexes • απαιτούν λιγότερο χώρο, αλλά κατά την ανάκτηση,πρέπει να σαρώσουμε το μεγαλύτερο μέρος του κειμένου για την εύρεση όρων. • Ερωτήματα με πολλούς όρους είναι πιθανό να οδηγήσουν σε λάθη, όπου καθένας από τους επιθυμητούς όρους εμφανίζεται κάπου στο block, αλλά όχι όλοι στο ίδιο έγγραφο.

  36. Granularity • Word-level indexing (ευρετήριοσε επίπεδο λέξης- λεξική ευρετηριοποίηση) • Καθιστά ερωτήματα ικανά να απαντηθούν γρήγορα καθώς η επιθυμητή σχέση μπορεί να ελεγχθεί πριν την ανάκτηση του κειμένου. • Η πρόσθεση πληροφορίας ακριβούς θέσης επεκτείνει το index • περισσότεροι pointers στο index • κάθε pointer απαιτεί περισσότερα bits αποθήκευσης • Επομένως το index ενδέχεται να καταλάβει περισσότερο χώρο από το αρχικό κείμενο.

  37. Inverted file indexing • Ανεστραμμένο αρχείο = ένας μηχανισμός βασισμένος σε λέξεις για την ευρετηριοποίηση μίας συλλογής κειμένων έτσι ώστε να γίνεται πιο γρήγορα μια διαδικασία αναζήτησης • Ένα τέτοιο αρχείο αποτελείται από: • Λεξικό: σύνολο λέξεων σε ένα κείμενο • Περιστατικά: λίστα με πληροφορίες για κάθε λέξη του λεξικού (κείμενα που υπάρχει η λέξη, συχνότητα εμφάνισης, θέση κ.τ.λ.)

  38. Inverted file indexing • a lexicon: ένας κατάλογος όλων των όρων που επιλέχτηκαν για να περιληφθούν στο index • έναinverted fileπεριέχει, για κάθε όρο στο λεξικό, μίαinverted listπου αποθηκεύει μία λίστααπό pointers προς όλες τις εμφανίσεις του όρου στο κείμενο • Π.χ., κάθε δείκτης είναι ο αριθμός του εγγράφου στο οποίο εκείνος ο όρος εμφανίζεται • To inverted file απαιτεί ένα λεξικό • Το λεξικό υποστηρίζειτην αντιστοίχιση όρων με την ανάλογη inverted list.

  39. Έχουμε την πρόταση That house has a garden. The garden has many flowers. The flowers are beautiful Ανεστραμμένο αρχείο Inverted file indexing :Παράδειγμα 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

  40. Terms Documents --------------------------- cold <2; 1, 4> days <2; 3, 6> hot <2; 1, 4> in <2; 2, 5> it <2; 4, 5> like <2; 4, 5> nine <2; 3, 6> old <2; 3, 6> pease <2; 1, 2> Porridge <2; 1, 2> Pot <2; 2, 5> some <2; 4, 5> the <2; 2, 5> Inverted File Index: Παράδειγμα Notation: N: number of documents; (=6) n: number of distinct terms; (=13) f: number of index pointers; (=26) Doc Text 1 Pease porridge hot, pease porridge cold, 2 Pease porridge in the pot, 3 Nine days old. 4 Some like it hot, some like it cold, 5 Some like it in the pot, 6 Nine days old.

  41. Word-level Inverted File Index Terms Documents --------------------------- cold <2; (1;6), (4;8)> days <2; (3;2), (6;2)> hot <2; (1;3), (4;4)> in <2; (2;3), (5;4)> it <2; (4;3,7), (5;3)> like <2; (4;2,6), (5;2)> nine <2; (3;1), (6;1)> old <2; (3;3), (6;3)> pease <2; (1;1,4), (2;1)> porridge <2; (1;2,5), (2;2)> pot <2; (2;5), (5;6)> some <2; (4;1,5), (5;1)> the <2; (2;4), (5;5)> Doc Text 1 Pease porridge hot, pease porridge cold, 2 Pease porridge in the pot, 3 Nine days old. 4 Some like it hot, some like it cold, 5 Some like it in the pot, 6 Nine days old. Notation: N: number of documents; (=6) n: number of distinct terms; (=13) f: number of index pointers; (=31)

  42. Inverted file compression

  43. Inverted file compression • Τα ασυμπίεστα αρχεία μπορούν να καταναλώσουν σημαντικό χώρο • 50-100% του χώρου του αρχικού κειμένου • το μέγεθος ενός Invertedfile μπορεί να μειωθεί αρκετά με τη συμπίεση του • κλειδίγιατησυμπίεση: • Κάθε invertedlist μπορεί χωρίς οποιαδήποτε απώλεια γενίκευσης να αποθηκευτεί ως αύξουσα ακολουθία ακέραιων αριθμών (όσο το δυνατόν λιγότεροι σε πλήθος bit) • f: pointer • N: documents space pointers: f*logN bits

  44. Inverted file compression Το μέγεθος ενός αντεστραμμένου αρχείου μπορεί να περιοριστεί αν συμπιέσουμε τις λίστες. Εφόσον τα IDs των κειμένων είναι σε αύξουσα σειρά, η σειρά μπορεί να χαρακτηριστεί σαν ακολουθία από κενά μεταξύ των κειμένων. Βασικό χαρακτηριστικό: για συχνά εμφανιζόμενες λέξεις τα κενά είναι μικρά, ενώ για σπάνιες λέξεις τα κενά είναι μεγάλα.

  45. Inverted File Compression • π.χ. Έχουμε έναν όρο που παρουσιάζεται σε 8 κείμενα (3,5,20,21,23,76,77,78) • Η ανεστραμμένη λίστα είναι η: <8:3,5,20,21,23,76,77,78> • Η ανεστραμμένη λίστα με χρήση d-gaps είναι η: • <8:3,2,15,1,2,53,1,1> • Αφού η επεξεργασία συνήθως ξεκινάει από την αρχή και γίνεται σειριακά, οι αρχικοί αριθμοί μπορούν να υπολογιστούν αθροίζοντας τα κενά.

  46. Εναλλακτικά Κάθε διαφορά ονομάζεταιd-gap. Κάθε δείκτης θέλει λιγότερο από bits. Inverted File Compression Κάθε inverted list έχει τη μορφή Αν

  47. Methods for Inverted File Compression • Οι μέθοδοι για τη συμπίεση d-gap sizes χωρίζονται σε • global: κάθε list συμπιέζεται χρησιμοποιώντας το ίδιο πρότυπο • local: το μοντέλο συμπίεσηςγια ένα inverted list ρυθμίζεται σύμφωνα με κάποια παράμετρο, όπως τη συχνότητα του όρου • Οι Global methods χωρίζονται σε • non-parameterized: η κατανομή πιθανότητας για τα d-gap sizesπροκαθορίζεται . • parameterized: η κατανομή πιθανότητας ρυθμίζεται σύμφωνα με ορισμένες παραμέτρους της συλλογής . • Εξ ορισμού, οι τοπικές μέθοδοι είναι parameterized .

  48. Non-parameterized models

  49. Για μικρούς ακέραιους, οι δ codes είναι μεγαλύτεροι από τους γ codes, αλλά για μεγάλους ακεραίους η κατάσταση αντιστρέφεται. Non-parameterized models

  50. γ code: Number x is coded as a unary code for followed by a code of in binary. bits that represents δ code: Number of bits in unary is represented using γ code. Non-parameterized models Unary code: An integer x > 0, is coded as (x-1) ‘1’ bits followed by a ‘0’ bit.

More Related