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

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

Φροντιστήριο 1 Οκτώβριος 2013.  Ανάκτηση Πληροφορίας  Ανεστραμμένα Αρχεία  Β - Δέντρα  Perfect Hashing Structures.

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


Παρουσίαση με θέμα: "Φροντιστήριο 1 Οκτώβριος 2013.  Ανάκτηση Πληροφορίας  Ανεστραμμένα Αρχεία  Β - Δέντρα  Perfect Hashing Structures."— Μεταγράφημα παρουσίασης:

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

2  Ανάκτηση Πληροφορίας  Ανεστραμμένα Αρχεία  Β - Δέντρα  Perfect Hashing Structures

3

4 4  ΠΩΣ εκφράζουμε ανάγκες πληροφόρησης (queries)  ΠΩΣ εντοπίζουμε και ανακτούμε πληροφορίες που ικανοποιούν τις ανάγκες  ΠΩΣ αξιολογούμε τα αποτελέσματα της αναζήτησης

5 5 InputInput Document classification Processor Search strategy Documents queries Output feedback

6 6 Docs database DB manager Index User Interface Text Operations (tokenization, stopwords, stemming, etc.) Indexing Searching Ranking Query operations text user need query Retrieved docs user feedback ranked docs

7 7 IR = D: documents Q: queries F: πλαίσιο αναπαράστασης κειμένων R: συνάφεια query q i με κείμενο d j αριθμός  0-1

8 8  Δομημένα (structured) • εγγραφές, πεδία ( Βάσεις Δεδομένων )  Πλήρως αδόμητα • ελεύθερο κείμενο  Προεπεξεργασία (pre-processing) • Metadata • Stemming

9 9  Λεξιλόγιο V, ελεγχόμενο (controlled) ή όχι  όροι w i,  document α  συχνότητα όρου w i στο α

10

11  Τα ανεστραμμένα αρχεία (inverted files) αποτελούν μια διαφορετική λύση για δεικτοδότηση πεδίων τύπου συνόλου ( σύνολα κειμένων ).  Παίρνουν το όνομά τους από το γεγονός ότι για κάθε αντικείμενο του λεξιλογίου δημιουργείται μια λίστα ( ανεστραμμένη λίστα ) στην οποία περιέχεται πληροφορία για τις θέσεις όπου εμφανίζεται το αντικείμενο ( όρος ) αυτός στη βάση ( κείμενο ή έγγραφο ). 11

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

13 διακριτικά  Αρχεία κειμένων σαρώνονται και εξάγονται διακριτικά (tokens). κωδικό κειμένου  Τα tokens καταχωρούνται με ένα κωδικό κειμένου (Document ID) 13 Now is the time for all good men to come to the aid of their country It was a dark and stormy night in the country manor. The time was past midnight Κείμενο ΑΚείμενο Β Φάση 1

14  Όταν όλα τα κείμενα σαρωθούν τότε το ανεστραμμένο αρχείο ταξινομείται. 14 Φάση 2

15  Οι πολλαπλοί όροι για κάθε κείμενο συνενώνονται και προστίθεται η συχνότητα εμφάνισης 15 Φάση 3

16  Το αρχείο χωρίζεται σε : λεξικό  λεξικό ( για διευκόλυνση του ψαξίματος ) και  εμφανίσεις  εμφανίσεις. 16 Το αρχείο χωρίζεται Λεξικό Εμφανίσεις Φάση 4

17 ακρίβεια θέση  Η ακρίβεια με την οποία προσδιορίζεται η θέση αναφέρεται σαν υφή (grain) του ευρετηρίου.  Για ευρετήρια ανεστραμμένου αρχείου, μπορούμε να διακρίνουμε δύο κατηγορίες σχετικές με την υφή τους : • Ευρετήριο αδρής υφής (coarse grain index) • Ευρετήριο λεπτής υφής (fine grain index) 17

18 μικρής  Ευρετήριο αδρής υφής (coarse grain index): Σε ευρετήρια αδρής υφής, κρατείται πληροφορία μικρής λεπτομέρειας. Κάθε ανεστραμμένη λίστα κρατά μόνο τους αύξοντες αριθμούς των κειμένων στις οποίες εμφανίζεται ο αντίστοιχος όρος. 18

19 μεγαλύτερη  Ευρετήριο λεπτής υφής (fine grain index): Σε τέτοια ευρετήρια, η θέση του κάθε όρου προσδιορίζεται με μεγαλύτερη ακρίβεια. Στο προηγούμενο παράδειγμα, ένα ευρετήριο λεπτής υφής θα μπορούσε να περιλαμβάνει, εκτός από το αναγνωριστικό του κειμένου, ένα δεύτερο αριθμό που να προσδιορίζει σε ποια θέση μέσα στο κείμενο υπάρχει ο όρος. 19

20  Μεγαλύτερο  Μεγαλύτερο το μέγεθός του ανεστραμμένου αρχείου • μεγαλύτερη ακρίβεια στον προσδιορισμό της θέσης κάθε όρου ΑΡΑ κρατείται περισσότερη πληροφορία • Οι πολλαπλές εμφανίσεις ενός όρου σε ένα κείμενο άμεσης απόρριψης λανθασμένων υποψήφιων απαντήσεων  Δυνατότητα άμεσης απόρριψης λανθασμένων υποψήφιων απαντήσεων ( π. χ. όταν ψάχνουμε φράσεις ) χωρίς να είναι απαραίτητη η πρόσβαση στο περιεχόμενο των απαντήσεων αυτών ( να ανακτήσουμε το κείμενο ). 20

21 Ερώτημα(Query) με ένα όρο •Επιστρέφεται η ανεστραμμένη λίστα του όρου που ψάχνουμε. Ερώτημα(Query) με ένα 2 όρους •Επιστρέφεται η τομή ανάμεσα στις δυο ανεστραμμένες λίστες των όρων που ψάχνουμε. 21

22 •1 ος όρος ▫some •2 ος όρος ▫hot •Τομή ▫some AND hot → Παραδείγματα : • 1 ος όρος : the 2 ος όρος : country • 1 ος όρος : a 2 ος όρος : country • 1 ος όρος : now 2 ος όρος : dark 22

23 23

24  Μέχρι τώρα έχουμε υποθέσει ότι μπορούμε να αποθηκεύσουμε μια ολόκληρη δομή δεδομένων στην κύρια μνήμη.  Τι κάνουμε σε περίπτωση που τα δεδομένα δε χωράνε στη μνήμη ;  Χρησιμοποιούμε το δίσκο αλλά σε αυτή την περίπτωση η πολυπλοκότητα αποτυγχάνει. 24

25  Υποθέτουμε ότι όλες οι διαδικασίες παίρνουν κατά προσέγγιση ίσο χρόνο.  Αυτό δε συμβαίνει όταν παρεμβάλλεται πρόσβαση στο δίσκο.  Με άλλα λόγια, μια πρόσβαση στο δίσκο παίρνει σχεδόν ίδιο χρόνο με εντολές.  Αξίζει να εκτελούμε πολλές εντολές για να αποφύγουμε μία πρόσβαση στο δίσκο. 25

26  Σε περιπτώσεις μεγάλου όγκου δεδομένων, καταλήγουμε σε ένα πολύ βαθύ δέντρο με πολλές διαφορετικές προσβάσεις στο δίσκο.  Γνωρίζουμε πως δεν μπορούμε να βελτιώσουμε το log n για ένα binary tree  Μια λύση είναι να χρησιμοποιηθούν περισσότεροι κλάδοι και έτσι λιγότερο ύψος !  Όσο αυξάνονται οι διακλαδώσεις το βάθος μειώνεται 26

27  Ένα B-tree τάξης m είναι ένα m- tree ( ένα δέντρο όπου κάθε κόμβος μπορεί να έχει μέχρι m παιδιά ) όπου : 1. Ο αριθμός κλειδιών στα μη φύλλα είναι ένα λιγότερο από τον αριθμό των παιδιών τους και αυτά τα κλειδιά ορίζουν τη διαμέριση των κλειδιών των παιδιών όπως σε ένα κλασσικό search tree 2. όλα τα φύλλα είναι στο ίδιο επίπεδο. τουλάχιστον 3. όλα τα μη φύλλα εκτός της ρίζας έχουν τουλάχιστον  m / 2  παιδιά (  m / 2  στοιχεία ). 4. Η ρίζα είναι φύλλο, ή έχει από 2 έως m παιδιά 5. Ένα φύλλο περιέχει μέχρι m – 1 κλειδιά  m πάντα περιττός 27

28 Ένα B-tree τάξης 5 με 26 στοιχεία 3 κλειδιά ο π ότε α π αραίτητα το ελάχιστο 4 π αιδιά Τουλάχιστον  m / 2  (3) π αιδιά Η ρίζα έχει α π ό 2 έως m π αιδιά Όλα τα φύλλα στο ίδιο ε π ί π εδο και τα φύλλα π εριέχουν μέχρι m-1(4) κλειδιά

29  Προσπάθεια να προστεθεί το νέο κλειδί σε ένα φύλλο  Εάν υπερφορτωθεί το φύλλο, σπάμε το φύλλο στα δύο, και ανεβάζουμε το μεσαίο κλειδί στον πατέρα του.  Εάν υπερφορτωθεί ο πατέρας επαναλαμβάνουμε την ίδια διαδικασία.  Αυτή η στρατηγική να πρέπει να επαναληφθεί μέχρι την κορυφή. Εάν κριθεί απαραίτητο, η ρίζα σπάει στα δύο και το μεσαίο κλειδί ανεβαίνει στη νέα ρίζα. 29

30  τα κλειδιά φθάνουν στην ακόλουθη σειρά :  Θέλουμε να κατασκευάσουμε ένα B-tree τάξης 5  Τα 4 πρώτα στοιχεία πάνε στη ρίζα :  Εάν βάλουμε το 5 ο στοιχείο στη ρίζα παραβιάζουμε τη συνθήκη 5  Επομένως, όταν το 25 έρχεται, επιλέγουμε το μεσαίο κλειδί και φτιάχνουμε μία νέα ρίζα

31 , 14, 28 προστίθενται στα φύλλα :

32  Προσθέτοντας το 17 στο δεξί φύλλο το υπερφορτώνουμε, και έτσι παίρνουμε το μεσαίο κλειδί, το ανεβάζουμε στη ρίζα και σπάμε το φύλλο • 7, 52, 16, 48 προστίθενται στα φύλλα

33  Προσθέτοντας το 68 σπάμε το δεξιότερο φύλλο, ανεβάζουμε το 48 στη ρίζα, και προσθέτοντας το 3 σπάμε το αριστερότερο φύλλο, ανεβάζοντας το 3 στη ρίζα ; 26, 29, 53, 55 πάνε στα φύλλα Η πρόσθεση του 45 σπάει το Και ανεβάζοντας το 28 στη ρίζα, σπάμε τη ρίζα

34

35  Κατά τη διάρκεια της εισαγωγής, το κλειδί πηγαίνει πάντα σε ένα φύλλο. Για τη διαγραφή επιθυμούμε να αφαιρέσουμε από ένα φύλλο. Οι πιθανοί τρόποι που μπορούμε να κάνουμε αυτό είναι : 1. Εάν το κλειδί είναι σε φύλλο, και η αφαίρεσή του δεν οδηγεί σε πολύ λίγα παιδιά, τότε απλά το διαγράφουμε. 2. Εάν το κλειδί δεν είναι σε φύλλο και ο πρόγονος ή απόγονός του είναι σε φύλλο. Τότε διαγράφουμε το κλειδί και μεταφέρουμε το κλειδί του απόγονου / πρόγονου στη θέση του διαγραμμένου κλειδιού. 35

36 Delete 2:Δεδομένου ότι υπάρχουν αρκετά κλειδιά στον κόμβο, το διαγράφουμε

37 Delete 52 56

38  Εάν οι 1 και 2 οδηγήσουν σε έναν κόμβο φύλλων που περιέχει λιγότερο από τον ελάχιστο αριθμό κλειδιών, έπειτα πρέπει να εξετάσουμε τα γειτονικά αδέρφια του εν λόγω φύλλου : 3. εάν ένας από αυτούς έχει περισσότερα από τον ελάχιστο αριθμό κλειδιών τότε ανεβάζουμε ένα κλειδί στον πατέρα και παίρνουμε το κλειδί του πατέρα στο φύλλο που το χρειάζεται. 4. εάν κανένας από αυτούς δεν έχει περισσότερα από τον ελάχιστο αριθμό κλειδιών, τότε το φύλλο και ένας από τους γείτονες μπορούν να συνδυαστούν με τον κοινό πατέρα τους και το νέο φύλλο θα έχει το σωστό αριθμό φύλλων ; εάν αυτό το βήμα αφήνει το γονέα με πολύ λίγα κλειδιά έπειτα επαναλαμβάνουμε τη διαδικασία μέχρι τη ρίζα, αν είναι απαραίτητο 38

39 Delete 22

40

41 Delete 72 Πολύ λίγα κλειδιά ! Τα συνενώνουμε

42

43  Ο μέγιστος αριθμός στοιχείων σε ένα B-tree τάξης m και ύψους h: rootm – 1 level 1m(m – 1) level 2m 2 (m – 1)... level hm h (m – 1) m h+1 – 1  Έτσι, ο συνολικός αριθμός στοιχείων είναι (1 + m + m 2 + m 3 + … + m h )(m – 1) = [(m h+1 – 1)/ (m – 1)] (m – 1) = m h+1 – 1 43

44 ο αριθμός των στοιχείων στο μονοπάτι από τον κόμβο στη ρίζα.  Search/Insert/Delete παίρνουν όσο ο αριθμός των στοιχείων στο μονοπάτι από τον κόμβο στη ρίζα. λιγότερος  Ο συνολικός αριθμός πράξεων είναι λιγότερος από το ύψος του δέντρου. log(n)  Το ύψος ενός δέντρου είναι λιγότερο από log(n) όπου n είναι ο αριθμός στοιχείων σε ένα B- δέντρο. 44

45 45

46  Μία από τις βασικότερες δομές ευρετηριοποίησης σε συλλογές εγγράφων είναι τα ανεστραμμένα αρχεία (inverted files).  Υπάρχουν πολλοί τρόποι για να αποθηκεύσει κανείς το λεξικό, ένας από αυτούς είναι το Perfect hashing: • Οι όροι αποθηκεύονται με χρησιμοποίηση μίας συνάρτησης τέλειου κατακερματισμού (perfect hashing), αυτή η επιλογή προτιμάται για λεξικά σταθερού μεγέθους που δεν ανανεώνονται 46

47  Μηχανισμός ταιριάσματος ενός συνόλου L με n στοιχεία X j με ένα σύνολο από ακεραίους αριθμούς h(x j ) που ικανοποιούν τη σχέση 0≤h(x j )≤m-1, με διπλά ταιριάσματα να επιτρέπονται.  Καθιερωμένος τρόπος για την υλοποίηση ενός πίνακα αναζήτησης με καλά αποτελέσματα. 47

48  Χρησιμοποιούνται στην πράξη σε μικρούς πίνακες της κύριας μνήμης για ειδικές εφαρμογές όπως για παράδειγμα, σε μεταφραστές για αποθήκευση δεσμευμένων λέξεων, σε επεξεργασία φυσικής γλώσσας για φιλτράρισμα λέξεων υψηλής συχνότητας κτλ. εκ των προτέρων τα κλειδιά πού θα μετασχηματίσουμε. • Αυτού του είδους ο κατακερματισμός είναι εφικτός μόνο όταν ξέρουμε εκ των προτέρων τα κλειδιά πού θα μετασχηματίσουμε.  Αν μια τέλεια συνάρτηση δεσμεύει τον ελάχιστο δυνατό χώρο, τότε λέγεται ελάχιστη (minimal). 48

49 Παράδειγμα :  Έχουμε n κλειδιά  Μια κοινή hash function είναι η εξής : • H(x) = x*modm, m > n/a, a ένα βάρος ( αναλογία εγγραφών σε διαθέσιμες διευθύνσεις ) και m ένας αρχικά καθορισμένος αριθμός διαθέσιμων θέσεων 49

50 Παράδειγμα :  Έχουμε 1000 κλειδιά  Προτείνεται η συνάρτηση • h(x) = x*mod1.399 ( τοποθεσίες )  Δίνει βάρος a=0.7 αφού 50

51  Πρέπει να κάνουμε map n στοιχεία σε m slots  Η πιθανότητα να εισάγουμε τα n στοιχεία χωρίς επικαλύψεις είναι : 51

52 Παράδειγμα :  Έχουμε για κλειδιά τις 365 ημέρες  Πόσοι άνθρωποι μπορούν να συλλεχθούν μαζί πριν να συμβεί 2 από αυτούς να έχουν την ίδια μέρα γενέθλια με πιθανότητα 0.5;  Η απάντηση είναι 23 άνθρωποι • Όταν m=365 και n=22, Π =0.524 • Όταν m=365 και n=23, Π =

53  Το βάρος a προσδιορίζει πόσα κλειδιά μπορούν να αντιστοιχούν σε κάθε θέση του πίνακα.  Όσο πιο μικρό είναι το a τόσο απίθανο είναι 2 κλειδιά να δείχνουν στην ίδια hash τιμή.  Η αποφυγή επικαλύψεων είναι σχεδόν αδύνατη στην πραγματικότητα. 53

54  Όταν η hash function έχει την επιπλέον ιδιότητα για x i και x j στο L, h(x i )=h(x j ) αν και μόνο αν i=j τότε η συνάρτηση λέγεται perfect hash function • Εδώ δεν υπάρχουν συγκρούσεις  Όταν η hash function είναι και perfect και ταιριάζει το m με το n (m=n) καθένα από τα n κλειδιά ταιριάζει σε ένα μοναδικό ακέραιο μεταξύ 1 και n και a=1. Τότε η συνάρτηση λέγεται minimal perfect function (MPHF) • Επιτυγχάνει μια πρόσβαση • Δεν υπάρχουν κενά slots  Όταν η hash function έχει ιδιότητα όταν x i

55 55 m=15 n=12  Έχουμε 2 hash functions h 1 (t), h 2 (t)  Κάνουν map σε ακέραιους στο διάστημα 0....m-1 για κάποιες τιμές m≥n με επικαλύψεις επιτρεπτές.

56  1 ος τρόπος : να λάβουμε κάθε χαρακτήρα σαν συμβολοσειρά radix-36 και να υπολογίσουμε τα βάρη w j, • t[i] είναι το radix-36 του i χαρακτήρα του όρου t • |t| είναι το μήκος σε χαρακτήρες του όρου t 56

57  Έχοντας δυο διαφορετικά σύνολα από βάρη w 1 [i] και w 2 [i] για 1≤i ≤|t| έχουμε και δυο διαφορετικές hash functions h 1 (t), h 2 (t)  Χρειαζόμαστε ένα πίνακα g που να κάνει map τους αριθμούς 0...m-1 στα κλειδιά 0…..n-1 ( πίνακας b) • h(t) = g(h 1 (t))+ n g(h 2 (t)) για ένα string t ( το h(t) δείχνει την τελική θέση στη λίστα ) 57

58  Έχοντας ένα σύνολο από όρους Δεν χρειάζεται να αποθηκεύουμε το αλφαριθμητικό ( όρο t) Χρειαζόμαστε να αποθηκεύουμε στην h(t) θέση του πίνακα • Το ft • Την διεύθυνση του όρου στο ανεστραμμένο αρχείο  Χώρος • 1.44n bits (~ or 4-20 bits per key) για MPHF • nlogn bits για OPMPHF Ολοκληρωμένο παράδειγμα 58

59  Το μυστικό του σχεδιασμού είναι ο ορθός σχεδιασμός του πίνακα g.  Δημιουργούμε τις h 1 (t) και h 2 (t) βάζοντας τυχαίες τιμές στους πίνακες w 1 και w 2.  Δημιουργούμε γράφημα με m κόμβους και ακμές με ετικέτες την hash function (h(t)) για κάθε όρο t.  Κάθε όρος t του λεξικού ανταποκρίνεται σε μια ακμή του γραφήματος και οι δυο hash functions ορίζουν σε ποιους κόμβους συνδέεται η κάθε ακμή.  Ξεκινάμε έχοντας μόνο τους όρους και την h(t). 59

60 60

61  Αναφορές • Managing Gigabytes, Compressing and Indexing Documents and Images, Witten, Moffat, Bell • Χρήστος Παπαθεοδώρου, Τμήμα Αρχειονομίας – Βιβλιοθηκονομίας, Ιόνιο Πανεπιστήμιο 61


Κατέβασμα ppt "Φροντιστήριο 1 Οκτώβριος 2013.  Ανάκτηση Πληροφορίας  Ανεστραμμένα Αρχεία  Β - Δέντρα  Perfect Hashing Structures."

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


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