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

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

Φροντιστήριο 3 Οκτώβριος 2013.  Ανεστραμμένα Αρχεία • Εισαγωγή • Δημιουργία (1/2) • Indexing • Compression 2.

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


Παρουσίαση με θέμα: "Φροντιστήριο 3 Οκτώβριος 2013.  Ανεστραμμένα Αρχεία • Εισαγωγή • Δημιουργία (1/2) • Indexing • Compression 2."— Μεταγράφημα παρουσίασης:

1 Φροντιστήριο 3 Οκτώβριος 2013

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

3 3

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

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

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

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

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

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

10 ΛεξικόΠεριστατικάbeautiful70 flowers 45, 58 garden 18, 29 house6  Έχουμε την πρόταση • That house has a garden. The garden has many flowers. The flowers are beautiful  Ανεστραμμένο αρχείο That house has a garden. The garden has many flowers. The flowers are beautiful Οι κλασικές μέθοδοι που χρησιμοποιούν δείκτες σε θέσεις χαρακτήρων καλούνται full inverted indices.

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

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

13 13

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

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

16 That house has a garden. The garden has many flowers. The flowers are beautiful block1block2block4block3 λεξικό beautiful flowers garden house εμφανίσεις Κείμενο Ανεστραμμένο Αρχείο Γιατί θέλουν λιγότερο χώρο από τους χαρακτήρες ?

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

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

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

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

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

22 Age basket cat cube cluster creature … creative damage … 22

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

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

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

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

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

28 28

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

30 30

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

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

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

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

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

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

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

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

39 ΛεξικόΠεριστατικάbeautiful70 flowers 45, 58 garden 18, 29 house6  Έχουμε την πρόταση • That house has a garden. The garden has many flowers. The flowers are beautiful  Ανεστραμμένο αρχείο That house has a garden. The garden has many flowers. The flowers are beautiful

40 DocText 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. TermsDocuments cold days hot in it like nine old pease Porridge Pot some the Notation: N: number of documents; (=6) n: number of distinct terms; (=13) f: number of index pointers; (=26)

41 DocText 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. TermsDocuments cold cold days days hot hot in in it it like like nine nine old old pease pease porridge porridge pot pot some some the the Notation: N: number of documents; (=6) n: number of distinct terms; (=13) f: number of index pointers; (=31)

42 42

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

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

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

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

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

48 48

49 Gap x Coding Method UnaryGolomb b=3 b=6 b=3 b= Για μικρούς ακέραιους, οι δ codes είναι μεγαλύτεροι από τους γ codes, αλλά για μεγάλους ακεραίους η κατάσταση αντιστρέφεται. 49

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

51 Κάθε μέθοδος έχει μια κατανομή πιθανότητας, που προκύπτει από τη φόρμουλα του Shannon(l x : ιδανικό μήκος κώδικα, Pr[x]:πιθανότητα εμφάνισης του gap x). Η πιθανότητα που υποθέτουμε στο unary code είναι πολύ μικρή και η κατανομή εκθετική, ενώ στα άλλα πιο ομοιόμορφη. 51

52 k επιτυχιών n δοκιμές bernoulli  Η πιθανότητα k επιτυχιών σε n δοκιμές μιας bernoulli διαδικασίας δίνεται από τον ακόλουθο τύπο : 52

53 O συνολικός αριθμός των δεικτών είναι γνωστός. Πιθανότητα ότι ένα τυχαίο έγγραφο περιέχει έναν τυχαίο όρο, (n:index terms, N: documents) Υποθέτωντας Bernoulli διαδικασία(gap x),(γεωμετρική κατανομή) Πιθανότητες Αριθμητικής κωδικοποίησης: Πιο αποτελεσματική κωδικοποίηση, η Huffman-style κωδικοποίηση (Golomb κωδικοποίηση ): Για κάποια παράμετρο b, κάθε αριθμός x >0 κωδικοποιείται σε δυο μέρη: 1. Σε q+1 unary, με 2. Οι διαφορετικοί δείκτες του inverted file 53

54 Gap x Coding Method UnaryGolomb b=3 b=6 b=3 b= , 10,11 για r=0, 1, 2 00, 01,100, 101, 110, 111 για r=0, 1, 2, 3, 4, 5 54

55  Η κωδικοποίηση Golomb δίνει παρόμοια αποτελέσματα με το μοντέλο Bernoulli με αριθμητική κωδικοποίηση όταν p >1 ( κανονική περίπτωση )  Αν p>0.5 η κωδικοποίηση Golomb είναι πιο αποδοτική 55

56  Άλλος τρόπος να μοντελοποιήσουμε τα d-gap.  Κατασκευή κατανομής με βάση τις ακριβείς d-gap τιμές και τον αριθμό των φορών που εμφανίζονται, και στη συνέχεια χρησιμοποίηση Αριθμητικής ή Huffman κωδικοποίησης  Θεωρητικά θα ήταν πολύ καλύτερη λύση από τις προηγούμενες.  Όμως είναι μόνο ελαφρώς καλύτερη από γ ή δ code πράγμα που αποδεικνύει ότι οι προηγούμενοι κώδικες είναι αποτελεσματικοί.  Λόγος: οι δείκτες δεν είναι διεσπαρμένοι τυχαία στο αρχείο και γνωρίζοντας την θέση τους πετυχαίνουμε καλύτερες συνθήκες για τον υπολογισμό της πιθανότητας εμφάνισης κάθε gap. 56

57  Η συχνότητα του όρου t, f t, είναι γνωστή • Το Bernoulli model μπορεί να εφαρμοστεί σε κάθε inverted list  Συχνά εμφανιζόμενοι όροι, μικρές τιμές b  Αραιά εμφανιζόμενοι όροι, μεγάλες τιμές b  Πρέπει να αποθηκευθεί η παράμετρος f t, έτσι ώστε να μπορεί να χρησιμοποιηθεί το b στην αποκωδικοποίηση.  Bitmap: Συχνά εμφανιζόμενοι όροι κωδικοποιούνται με b=1. • Σαν να αποθηκεύουμε το inverted list σαν bitvector • Συνεπώς, το Huffman-coded Bernoulli model δεν μπορεί να είναι χειρότερο από το bitvector. 57

58  Γνωρίζουμε εκ των προτέρων το inverted file entry  Αναδρομικά υπολογίζουμε τις διαφορές και τις κωδικοποιούμε.  20 έγγραφα στο σύνολο, δεδομένου inverted file entry με 7 έγγραφα  κατόπιν τα gaps είναι  Ε άν ξέρουμε ο 4ος αριθμός είναι "11" και ο 6ος αριθμός είναι "13", υπάρχει μόνο μια πιθανή τιμή ("12") για τον 5 ο αριθμό 58

59 Context Sensitive Compression  Διχοτομούμε κατ ' επανάληψη την απόσταση και υπολογίζουμε τη χαμηλότερη πιθανή τιμή και υψηλότερη πιθανή τιμή για τον αριθμό στη μέση  Εξετάζουμε αρχικά τον 4 ο αριθμό "11", κατόπιν "8", ο οποίος είναι ο μέσος αριθμός στα αριστερά 3 έγγραφα, έπειτα "3"..9 ", έπειτα " 13 "( ο μέσος αριθμός στα 3 δεξιά έγγραφα ), και τελικά " 12 "..17"  Χρησιμοποιούμε την αναπαράσταση (x; lo; hi) για να δηλώσουμε πως το x βρίσκεται στο διάστημα [lo; hi].  Το Interpolative code μπορεί να επιτύχει την καλύτερη αναλογία συμπίεσης, αλλά έχει τον πιό μακροχρόνιο χρόνο αποκωδικοποίησης 59

60 Compression of inverted files in bits per pointer 60

61 61


Κατέβασμα ppt "Φροντιστήριο 3 Οκτώβριος 2013.  Ανεστραμμένα Αρχεία • Εισαγωγή • Δημιουργία (1/2) • Indexing • Compression 2."

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


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