Φροντιστήριο 4. Άσκηση 1. Λύση. Πανεπιστήµιο Κρήτης, Τµήµα Επιστήµης Υπολογιστών HY463 - Συστήµατα Ανάκτησης Πληροφοριών Εαρινό Εξάµηνο

Σχετικά έγγραφα
Λύση α) Αν θεωρήσουµε ότι δεν περνάµε το παραπάνω κείµενο από stoplist και stemming, το ανεστραµµένο ευρετήριο θα έχει ως εξής:

Λύση (από: Τσιαλιαμάνης Αναγνωστόπουλος Πέτρος) (α) Το trie του λεξιλογίου είναι

Συστήματα Ανάκτησης Πληροφοριών ΗΥ-463

Posting File. D i. tf key1 [position1 position2 ] D j tf key2... D l.. tf keyl

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

Οργάνωση αρχείων: πως είναι τοποθετηµένες οι εγγραφές ενός αρχείου όταν αποθηκεύονται στο δίσκο

Τα δεδοµένα συνήθως αποθηκεύονται σε αρχεία στο δίσκο Για να επεξεργαστούµε τα δεδοµένα θα πρέπει αυτά να βρίσκονται στη

Φροντιστήριο 5. Το πρώτο πράγµα λοιπόν που πρέπει να κάνουµε είναι να βρούµε τις πιθανότητες εµφάνισης των συµβόλων. Έτσι έχουµε:

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΤΜΗΜΑ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΛΥΣΗ ΣΤΗΝ ΕΥΤΕΡΗ ΑΣΚΗΣΗ

Πανεπιστήμιο Κρήτης, Τμήμα Επιστήμης Υπολογιστών HY463 - Συστήματα Ανάκτησης Πληροφοριών Εαρινό Εξάμηνο. Φροντιστήριο 3.

Περίληψη ιπλωµατικής Εργασίας

Παλαιότερες ασκήσεις

ΟΙΚΟΝΟΜΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ. Δοµές Δεδοµένων

Ευρετήρια. Ευρετήρια. Βάσεις Δεδομένων : Ευρετήρια 1

Ευρετήρια. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

Τα δεδομένα (περιεχόμενο) μιας βάσης δεδομένων αποθηκεύεται στο δίσκο

Λύσεις 1 ης Σειράς Ασκήσεων (Αξιολόγηση της Αποτελεσµατικότητας της Ανάκτησης)

Κεφάλαιο 14. οµές Ευρετηρίων για Αρχεία. ιαφάνεια 14-1

Ασκήσεις Φροντιστηρίου «Υπολογιστική Νοηµοσύνη Ι» 7ο Φροντιστήριο 15/1/2008

Εισαγωγή στην Πληροφορική. Α σ κ ή σ ε ι ς σ τ η ν ι α χ ε ί ρ ι σ η Μ ν ή µ η ς. Αντώνης Σταµατάκης

ΜΥΕ003: Ανάκτηση Πληροφορίας. Διδάσκουσα: Ευαγγελία Πιτουρά Κεφάλαιο 5: Στατιστικά Συλλογής. Συμπίεση.

Εργασία Μαθήματος Αξία: 40% του τελικού σας βαθμού Ανάθεση: Παράδοση:

Ευρετήρια. Ευρετήρια. Βάσεις Δεδομένων : Ευρετήρια 1

Κεφάλαιο 14. Δομές Ευρετηρίων για Αρχεία. Copyright 2007 Ramez Elmasri and Shamkant B. Navathe Ελληνική Έκδοση,

Η ακρίβεια ορίζεται σαν το πηλίκο των ευρεθέντων συναφών εγγράφων προς τα ευρεθέντα έγγραφα. Άρα για τα τρία συστήµατα έχουµε τις εξής τιµές:

Επεξεργασία Ερωτήσεων

ΗΥ460 Συστήµατα Διαχείρισης Βάσεων Δεδοµένων Χειµερινό Εξάµηνο 2016 Διδάσκοντες: Βασίλης Χριστοφίδης

ΘΕΜΑ 2. (2,5 µονάδες) Θεωρήστε τρεις κρυφές µνήµες των 512 πλαισίων µε 8 λέξεις ανά πλαίσιο και οργανώσεις αντίστοιχα:

Κεφ.11: Ευρετήρια και Κατακερματισμός

ΑΣΚΗΣΗ. Συγκομιδή και δεικτοδότηση ιστοσελίδων

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

ΛΥΣΗ ΤΗΣ ΔΕΥΤΕΡΗΣ ΑΣΚΗΣΗΣ Όλγα Γκουντούνα

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΤΜΗΜΑ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΑΣΚΗΣΗ ΔΕΥΤΕΡΗ

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ

0 The quick brown fox leaped over the lazy lazy dog 1 Quick brown foxes leaped over lazy dogs for fun

ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ. Εξωτερική Αναζήτηση και Β-δέντρα Κεφάλαιο 16. Ε. Μαρκάκης Επίκουρος Καθηγητής

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ

ΛΥΣΕΙΣ 2 ης ΣΕΙΡΑΣ ΑΣΚΗΣΕΩΝ

Λύσεις Παλιών Θεµάτων. Συστήµατα Παράλληλης Επεξεργασίας, 9ο εξάµηνο Υπεύθ. Καθ. Νεκτάριος Κοζύρης

Μελετάμε την περίπτωση όπου αποθηκεύουμε ένα (δυναμικό) σύνολο στοιχειών. Ένα στοιχείο γράφεται ως, όπου κάθε.

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΙΙ - UNIX. Συστήματα Αρχείων. Διδάσκoντες: Καθ. Κ. Λαμπρινουδάκης Δρ. Α. Γαλάνη

µπιτ Λύση: Κάθε οµάδα των τεσσάρων µπιτ µεταφράζεται σε ένα δεκαεξαδικό ψηφίο 1100 C 1110 E Άρα το δεκαεξαδικό ισοδύναµο είναι CE2

/ / 38

Κατακερματισμός. 4/3/2009 Μ.Χατζόπουλος 1

Το εσωτερικό ενός Σ Β

Εισαγωγή στην Επεξεργασία Ερωτήσεων. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

ΠΑΝΕΠΙΣΤΗΜΙΟ ΜΑΚΕ ΟΝΙΑΣ ΟΙΚΟΝΟΜΙΚΩΝ ΚΑΙ ΚΟΙΝΩΝΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΠΜΣΕ ΣΤΗΝ ΕΦΑΡΜΟΣΜΕΝΗ ΠΛΗΡΟΦΟΡΙΚΗ ΝΕΥΡΩΝΙΚΑ ΙΚΤΥΑ ΚΑΙ ΕΞΕΛΙΚΤΙΚΟΙ ΑΛΓΟΡΙΘΜΟΙ

Ο ΑΤΔ Λεξικό. Σύνολο στοιχείων με βασικές πράξεις: Δημιουργία Εισαγωγή Διαγραφή Μέλος. Υλοποιήσεις

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

Επεξεργασία Ερωτήσεων

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ Τµήµα Επιστήµης Υπολογιστών. HY-217: Πιθανότητες - Χειµερινό Εξάµηνο 2015 ιδάσκων : Π. Τσακαλίδης

Επεξεργασία Ερωτήσεων

Δυναμικός Κατακερματισμός. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

Εισαγωγή. Γενική Εικόνα του Μαθήµατος. Το εσωτερικό ενός Σ Β. Εισαγωγή. Εισαγωγή Σ Β Σ Β. Αρχεία ευρετηρίου Κατάλογος συστήµατος Αρχεία δεδοµένων

Εύρεση & ιαχείριση Πληροφορίας στον Παγκόσµιο Ιστό

Ανάκληση Πληποφοπίαρ. Information Retrieval. Διδάζκων Δημήηριος Καηζαρός

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ

Επεξεργασία Ερωτήσεων

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ

Πανεπιστήµιο Κρήτης Τµήµα Επιστήµης Υπολογιστών. ΗΥ-460 Συστήµατα ιαχείρισης Βάσεων εδοµένων ηµήτρης Πλεξουσάκης Βασίλης Χριστοφίδης

Τεχνικές ταξινόµησης αποτελεσµάτων µηχανών αναζήτησης µε βάση την ιστορία του χρήστη

ΒΑΣΕΙΣ Ε ΟΜΕΝΩΝ. Επίπεδα Αφαίρεσης Σ Β. Αποθήκευση Εγγραφών - Ευρετήρια. ρ. Βαγγελιώ Καβακλή ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑΙΟΥ, Επίπεδο Όψεων.

ΑΣΚΗΣΗ. Δημιουργία Ευρετηρίων Συλλογής Κειμένων

Εισαγωγή στην Επεξεργασία Ερωτήσεων. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

Ανάκτηση Πληροφορίας. Φροντιστήριο 2

Linear Hashing. Linear vs other Hashing

Copyright 2007 Ramez Elmasri and Shamkant B. Navathe, Ελληνική Έκδοση, Δίαβλος, Επιμέλεια Μ.Χατζόπουλος Διαφάνεια 14-1

ΠΛΗΡΟΦΟΡΙΑΚΑ & ΤΗΛΕΠΙΚΟΙΝΩΝΙΑΚΑ ΣΥΣΤΗΜΑΤΑ

Αλγόριθμοι Ταξινόμησης Μέρος 4

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ. Συστήματα Αρχείων. Διδάσκoντες: Καθ. Κ. Λαμπρινουδάκης Δρ. Α. Γαλάνη

Εύρεση & ιαχείριση Πληροφορίας στον Παγκόσµιο Ιστό. Ζητήµατα Μεγάλης-Κλίµακας Υλοποίησης του PageRank. Αρχιτεκτονική Μηχανής Αναζήτησης

ΦΥΛΛΟ ΠΛΗΡΟΦΟΡΙΩΝ. Μονάδες μέτρησης χωρητικότητας μνήμης - Η περιφερειακή μνήμη

Προτεινόμενες Λύσεις 1 ης Σειράς Ασκήσεων (Αξιολόγηση της Αποτελεσματικότητας της Ανάκτησης & Μοντέλα Ανάκτησης)

Κατακερματισμός (Hashing)

Δυναμική Διατήρηση Γραμμικής Διάταξης

Τμήμα Ηλεκτρολόγων Μηχανικών και Μηχανικών H/Y Department of Electrical and Computer Engineering. Εργαστήριο 8. Χειμερινό Εξάμηνο

2η Οµάδα Ασκήσεων. 250 km db/km. 45 km 0.22 db/km 1:2. T 75 km 0.22 db/km 1:2. 75 km db/km. 1:2 225 km 0.22 db/km

ΣΕΤ ΑΣΚΗΣΕΩΝ 4. Προθεσµία: 8/1/12, 22:00

Εισαγωγή στους Η/Υ & Εφαρμογές

Δυναμικά Πολυεπίπεδα Ευρετήρια (Β-δένδρα) Μ.Χατζόπουλος 1

Εισαγωγή στην. Εισαγωγή Σ Β. Αρχεία ευρετηρίου Κατάλογος. συστήματος. Αρχεία δεδομένων

HY118- ιακριτά Μαθηµατικά. Μαθηµατική επαγωγή. 11 Επαγωγή

Οικονοµικό Πανεπιστήµιο Αθηνών. Τµήµα Πληροφορικής. Φθινοπωρινό Εξάµηνο Δοµές Δεδοµένων - Εργασία 2. Διδάσκων: E. Μαρκάκης

Φροντιστήριο Αποθήκευση σε δίσκο, βασικές οργανώσεις αρχείων κατακερματισμός και δομές ευρετηρίων για αρχεία

Ανάκληση Πληποφοπίαρ. Information Retrieval. Διδάζκων Δημήηριος Καηζαρός

3 Αναδροµή και Επαγωγή

Σε αυτό το µάθηµα θα ασχοληθούµε µε τη βελτίωση της εµφάνισης ενός ιστοτόπου, αλλά και τον εύκολο χειρισµό όλων των αλλαγών στην εµφάνιση της σελίδας

ΗΥ-460 Συστήµατα ιαχείρισης Βάσεων εδοµένων ηµήτρης Πλεξουσάκης Βασίλης Χριστοφίδης

Ν. Μ. Μισυρλής. Τµήµα Πληροφορικής και Τηλεπικοινωνιών, Πανεπιστήµιο Αθηνών. Καθηγητής: Ν. Μ. Μισυρλής 29 Μαΐου / 18

3.1 εκαδικό και υαδικό

Εισαγωγή στην Πληροφορική

Πανεπιστήµιο Θεσσαλίας

Α. ΜΕΣΗ ΤΙΜΗ - ΙΑΜΕΣΟΣ

ΑΣΚΗΣΗ 1. Structural Programming

4 η Σειρά ασκήσεων (Συμπίεση, Ομαδοποίηση, Ευρετηρίαση Πολυμέσων, Κατανεμημένη Ανάκτηση)

ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Κεφάλαιο 8 : H γλώσσα προγραµµατισµού Pascal 1 ο Μέρος σηµειώσεων (Ενότητες 8.1 & 8.2 σχολικού βιβλίου)

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ

Δημιουργία Ευρετηρίων Συλλογής Κειμένων

Οργάνωση και Σχεδίαση Υπολογιστών Η ιασύνδεση Υλικού και Λογισµικού, 4 η έκδοση. Κεφάλαιο 5. Μεγάλη και γρήγορη: Αξιοποίηση της ιεραρχίας της µνήµης

Δυναμικός Κατακερματισμός. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

Transcript:

Πανεπιστήµιο Κρήτης, Τµήµα Επιστήµης Υπολογιστών HY463 - Συστήµατα Ανάκτησης Πληροφοριών 2007-2008 Εαρινό Εξάµηνο Άσκηση 1 Φροντιστήριο 4 Θεωρείστε ένα έγγραφο με περιεχόμενο «αυτό είναι ένα κείμενο και ένα κείμενο κανονικά έχει αρκετές λέξεις». Αγνοώντας τους τόνους, σχεδιάστε: (α) το trie του λεξιλογίου του παραπάνω εγγράφου, (β) το δένδρο καταλήξεων του παραπάνω εγγράφου θεωρώντας ως σημεία ευρετηρίου (index points) τις αρχές των λέξεων, και (γ) συμπτύξτε το παραπάνω δένδρο καταλήξεων στη μορφή ενός Patricia tree. Λύση 5 10 15 20 25 30 35 40 45 50 55 60 65 αυτό είναι ένα κείμενο και ένα κείμενο κανονικά έχει αρκετές λέξεις (α) Το trie του λεξιλογίου είναι

(β) Οι καταλήξεις του κειμένου είναι αυτό είναι ένα κείμενο και ένα κείμενο κανονικά έχει αρκετές λέξεις είναι ένα κείμενο και ένα κείμενο κανονικά έχει αρκετές λέξεις ένα κείμενο και ένα κείμενο κανονικά έχει αρκετές λέξεις κείμενο και ένα κείμενο κανονικά έχει αρκετές λέξεις και ένα κείμενο κανονικά έχει αρκετές λέξεις ένα κείμενο κανονικά έχει αρκετές λέξεις κείμενο κανονικά έχει αρκετές λέξεις κανονικά έχει αρκετές λέξεις έχει αρκετές λέξεις αρκετές λέξεις λέξεις Ταξινομώντας τις παραπάνω καταλήξεις λεξικογραφικά έχουμε: αρκετές λέξεις αυτό είναι ένα κείμενο και ένα κείμενο κανονικά έχει αρκετές λέξεις είναι ένα κείμενο και ένα κείμενο κανονικά έχει αρκετές λέξεις ένα κείμενο και ένα κείμενο κανονικά έχει αρκετές λέξεις ένα κείμενο κανονικά έχει αρκετές λέξεις έχει αρκετές λέξεις και ένα κείμενο κανονικά έχει αρκετές λέξεις κανονικά έχει αρκετές λέξεις κείμενο και ένα κείμενο κανονικά έχει αρκετές λέξεις κείμενο κανονικά έχει αρκετές λέξεις λέξεις Το δένδρο καταλήξεων που προκύπτει από τις ταξινομημένες καταλήξεις θεωρώντας ως σημεία ευρετηρίου (index points) τις αρχές των λέξεων είναι:

(γ) Το Patricia tree που προκύπτει από το παραπάνω δένδρο καταλήξεων είναι,

Άσκηση 2 Προσπαθήστε μέσω διαδικτύου να βρείτε όσο το δυνατόν περισσότερα στοιχεία σχετικά με το μέγεθος του ελληνικού παγκόσμιου ιστού (αριθμός σελίδων, μέσο μέγεθος σελίδων, πλήθος συνδέσμων, συνολικός όγκος, και όποια άλλη χρήσιμη και αξιόπιστη μέτρηση βρείτε). Σκοπός μας είναι η σχεδίαση του ευρετηρίου μιας μηχανής αναζήτησης για τον ελληνικό ιστό, το οποίο να μπορεί να φιλοξενηθεί στο μηχάνημα που έχουμε στη διάθεση μας αυτή τη στιγμή (κύρια μνήμη: 2GBytes, σκληρός δίσκος: 150GB). Βάσει αυτών που έχουμε δει στο μάθημα, εκτιμήστε το μέγεθος που θα έχει το λεξιλόγιο και οι λίστες εμφάνισης αν αποφασίζαμε να χρησιμοποιήσουμε μια δομή ανεστραμμένου αρχείου. Περιγράψτε όποια άλλη εναλλακτική ή συμπληρωματική δομή ευρετηρίου κρίνετε ότι μπορεί να επιταχύνει τη λειτουργία της μηχανής αναζήτησης. Λύση Στο [Crawling a Country: Better Strategies than BreadthFirst for Web Page Ordering] αναφέρεται ότι το μέγεθος των σελίδων στο.gr domain το 2004 ήταν περίπου 3.5 εκατομμύρια σελίδες. Επίσης, στο [http://www.optimizationweek.com/reviews/average-web-page/] αναφέρουν ότι το μέσο μέγεθος μίας ιστοσελίδας στο web (μόνο κείμενο, χωρίς εικόνες, scripts κλπ) είναι 25 KB. Τέλος, υποθέτουμε ότι ο μέσος αριθμός εξερχόμενων συνδέσμων που υπάρχουν ανά site είναι 20, το μέσο μέγεθος μιας λέξης είναι 10 χαρακτήρες και ότι υπάρχουν περίπου 150000 λέξεις στο ελληνικό λεξιλόγιο. Ένα ανεστραμμένο ευρετήριο αποτελείται από το λεξιλόγιο και τις λίστες εμφάνισης κάθε λέξης που ανήκει στο λεξιλόγιο. Εφόσον πρόκειται να ευρετηριάσουμε όλο το ελληνικό domain, το λεξιλόγιο θα περιέχει όλες τις ελληνικές λέξεις και αρκετές αγγλικές, επομένως το μέγεθός του θα είναι περίπου (150000 + 40000) 10bytes = 1.81MB, έχοντας υποθέσει ότι θα υπάρχουν 40000 αγγλικές λέξεις επιπρόσθετα. Λόγω του μικρού του μεγέθους, το λεξιλόγιο θα μπορούσε για λόγους απόδοσης να βρίσκεται μόνιμα φορτωμένο στην κύρια μνήμη. Γνωρίζοντας ότι κάθε σελίδα έχει μέγεθος 25 ΚΒ κατά μέσον όρο, θα περιέχει περίπου 25KB 10 B = 2560 λέξεις, όπου 10B είναι το μέσο μέγεθος μιας λέξης. Συνολικά, όλη η συλλογή των εγγράφων θα περιέχει περίπου 3500000 2560 = 8960000000 λέξεις. Οπότε το μέγεθος των λιστών εμφάνισης, αν για την αποθήκευση μιας εμφάνισης απαιτούνται 4 bytes, θα είναι 8960000000 4bytes = 33.37GB. Αθροίζοντας το μέγεθος του λεξιλογίου και των λιστών εμφάνισης, το μέγεθος του ανεστραμμένου ευρετηρίου θα είναι περίπου 33.37GB + 1.81MB = 33.371GB.

Άσκηση 3 Θέλετε να σχεδιάσετε ένα ΣΑΠ που να βασίζεται στο διανυσµατικό µοντέλο για µια συλλογή κειµένων συνολικού µεγέθους στο δίσκο 1 Gigabyte. Έστω ότι το µέσο µέγεθος των λέξεων που εµφανίζονται στα κείµενα είναι 10 χαραχτήρες και ότι το πλήθος των διαφορετικών λέξεων της συλλογής είναι 10.000. (α) Ποιο το αναµενόµενο (µέγιστο) µέγεθος του ανεστραµµένου ευρετηρίου για τη συλλογή αυτή; (β) Ποιο το αναµενόµενο (µέγιστο) µέγεθος του ανεστραµµένου ευρετηρίου αν χρησιµοποιήσετε block addressing µε µέγεθος block ίσο µε 200 λέξεις; Τι ποσοστό µείωσης έχουµε, σε σχέση µε το (α); (γ) Αν έπρεπε το ευρετήριο να καταλαµβάνει το πολύ 1 MB (π.χ. για να χωράει στην κύρια µνήµη ενός κινητού τηλεφώνου) πως θα σχεδιάζατε το ανεστραµµένο ευρετήριο; (δ) Αν έπρεπε να καταλαµβάνει το πολύ 100 Κ τι θα κάνατε; (ε) Αν έπρεπε να καταλαµβάνει το πολύ 10 Κ τι θα κάνατε; Λύση Κατ αρχήν θεωρούµε, είτε ότι στη γλώσσα µας δεν µας ενδιαφέρουν τα stopwords, είτε ότι ήδη στην συλλογή του 1Gbyte έχουµε ήδη αφαιρέσει τα stopwords. Ακόµα θα κάνουµε τις εξής θεωρήσεις : Σαν οccurencies στους κόµβους των inverted lists θα κρατάµε σε ποιο document βρίσκεται ο όρος, σε ποιες θέσεις µέσα στο κέιµενο εµφανίζεται και το tf-idf βάρος του όρου στο έγγραφο. Έτσι στην παρακάτω ανάλυση µας θεωρούµε ότι η συλλογή µας καθώς και το vocabulary αποτελούνται από µη-stopword λέξεις που γίνονται όλες indexing. Η συλλογή µας αποτελείται από 1 GByte = 1.000.000.000 bytes και µε µέσο όρο 10bytes/λέξη η συλλογή µας περιέχει 100.000.000 λέξεις. Γνωρίζουµε ότι η συλλογή µας περιέχει 10.000 διαφορετικές λέξεις και συνεπώς κάθε λέξη εµφανίζεται κατά µέσο όρο 100.000.000 / 10.000 = 10.000 φορές. Τέλος αγνοούµε το µέγεθος των pointers (θα µπορούσαµε να λάβουµε υπ όψιν 4Bytes επιβάρυνση για κάθε pointer µε συνακόλουθες µικρές αλλαγές στα νούµερα παρακάτω). α) Για το vocabulary του ευρετηρίου θέλουµε να αποθηκεύσουµε τις 10.000 διαφορετικές λέξεις των 10byte και άρα θέλουµε χώρο 100.000 bytes = 100 KB. Αν για κάθε vocabulary entry κρατήσουµε και 4 bytes για το document frequency, το vocabulary θα καταλαµβάνει µόνο του χώρο 140Κ. Για κάθε µια entry από τις 10.000 θα αποθηκεύσουµε τόσα occurencies σε όλα τα κείµενα όσες φορές εµφανίζεται η λέξη και ήδη αναφέραµε ότι κάθε λέξη εµφανίζεται κατά µέσο όρο 10.000 φορές και άρα θέλει 10.000 integers για να αποθηκευτούν όλα τα occurencies µιας λέξης. Συνεπώς για ένα entry του vocabulary θέλουµε 10.000 * 4 bytes = 40.000 bytes = 40 KB. Αυτό µόνο για τις θέσεις των εµφανίσεων της ίδιας λέξης. Εκτός από αυτό πρέπει να αποθηκεύσουµε σε ποια έγγραφα υπάρχουν αυτές οι εµφανίσεις καθώς και το tf-idf βάρος της (εµφάνισης της) λέξης στο κείµενο. Επειδή ψάχνουµε το µέγιστο µέγεθος ευρετηρίου που µπορεί να έχουµε θα κάνουµε την χειρότερη από άποψη χώρου υπόθεση, ότι κάθε εµφάνιση µιας λέξης βρίσκεται σε διαφορετικό κείµενο και άρα θέλουµε (για κάθε λέξη) 10.000 integers για να κρατάµε τα id του κειµένων που αυτή εµφανίζεται και άλλους 10.000 integers για τα tfidf βάρη. Συνεπώς για ένα entry του vocabulary θέλουµε (µιλάµε πάντα κατά µέσο όρο) 40Κ για τις θέσεις των εµφανίσεων στα κείµενα, 40Κ για τα id των documents και άλλα 40Κ για τα βάρη. Σύνολο 120Κ για κάθε µια από τις entries του vocabulary. Συνεπώς για όλες τις inverted lists θέλουµε χώρο 120K * 10.000 = 1.200.000.000 bytes = 1,2 G.

Εν κατακλείδι για το ανεστραµένο αρχείο θέλουµε 1,2G + 140Κ = 1200,14 Μbytes. β) To να χρησιµοποιήσουµε block addressing µε µέγεθος block = 200 λέξεις * 10 byte/λέξη = 2000 bytes δεν έχει σαν αποτέλεσµα καµία βελτίωση στο µέγεθος του ευρετηρίου σε σχέση µε το ερώτηµα (α). Αυτό συµβαίνει διότι µε µέγεθος block 2000 bytes, η 1G συλλογή µας χωρίζεται σε 500.000 blocks (περίπου), τα οποία είναι πάρα πολλά σε σχέση µε το πλήθος των διαφορετικών λέξεων της συλλογής µας. Με την υπόθεση ότι οι εµφανίσεις µιας λέξης κατανέµονται οµοιόµορφα µέσα στο κείµενο, µια λέξη εµφανίζεται κάθε 10.000 άλλες άρα µια λέξη εµφανίζεται κάθε 10.000 / 200 = 50blocks. Κατά συνέπεια τo πλήθος των occurencies κάθε λέξης θα παραµείνει το ίδιο αφού ναι µεν πλέον ένας integer occurence θα δηλώνει θέση µπλόκ και όχι θέση στο κείµενο αλλά επειδή µε µεγάλη πιθανότητα οι εµφανίσεις της ίδιας λέξης θα είναι σε διαφορετικά µπλοκ το πλήθος των µπλοκς που θα εµφανίζεται µια λέξη θα είναι 10.000 και θέλουµε τόσο χώρο όσο και στο (α). Κάνουµε πάλι την χείριστη υπόθεση ότι κάθε µπλοκ (και συνεπώς κάθε εµφάνιση λέξης) είναι σε διαφορετικό κείµενο, και άρα πάλι θέλουµε 3 ακέραιους (αριθµό µπλοκ, id εγγράφου, tf-idf βάρος) ανά κόµβο λίστας, έχοντας 10.000 κόµβους για κάθε µια από τις 10.000 λέξεις. Συνεπώς και πάλι για το ανεστραµµένο αρχείο θέλουµε 1200,14 Μbytes. γ) Σε αυτό το ερώτηµα θα χωρίσουµε τη συλλογή των εγγράφων µας σε µεγάλα µπλοκς, ώστε να χωρούν πολλές εµφανίσεις της ίδιας λέξης σε ένα block, και για κάθε λέξη στο ευρετήριο θα κρατάµε µόνο ακεραίους που θα είναι τα µπλοκ που βρέθηκε η λέξη. Το vocabulary του ευρετηρίου από µόνο του (και χωρίς document frequency πληροφορία) καταλαµβάνει 100Κ και άρα έχουµε ακόµα 900Κ στην διάθεσή µας. Αυτά τα 900Κ θα κατανεµηθούν σε 10000 εγγραφές (µια για κάθε λέξη) και έτσι κάθε inverted list θα έχει περίπου 90 bytes (µέσο όρο) χώρο για πληροφορίες σχετικές µε την λέξη. Σε αυτά τα 90 bytes πρέπει να περιγραφούν και οι (κατά µέσο όρο) 10.000 εµφανίσεις της λέξης. Αν θεωρήσουµε, όπως παραπάνω, ότι για κάθε µπλοκ θα κρατούµε 4 bytes, τότε θέλουµε 22,5 µπλοκς (90=22,5*4) που θα έχουν τις 10000 εµφανίσεις της λέξης. Άρα σε ένα µπλοκ θέλουµε να εµφανίζεται η λέξη 10.000/ 22,5 = 444,44 φορές κατά µέσο όρο. Όπως αναφέραµε και στο ερώτηµα (β) η ιδια λέξη εµφανίζεται κάθε 10.000 άλλες λέξεις και άρα για να περιέχει ένα µπλοκ 444,44 φορές την ίδια λέξη πρέπει να περιέχει συνολικά 10.000 * 444,44 λέξεις = 4.444.400 λέξεις. Η κάθε λέξη είναι 10 bytes και άρα ένα µπλοκ πρέπει να έχει µέγεθος 44.444.000 bytes = 44,44 Mbyte. Συνεπώς µε µπλοκ των 44,44 Mbyte, το ευρετήριο (κρατώντας πληροφορία µόνο 4 byte/block) έχει µέγεθος 90 bytes (ανά εγγραφή) * 10.000 διαφορετικές εγγραφές + 100Κ (το vocabulary) = 1Μbyte. Αν θέλαµε να κρατάµε πιο πολύ πληροφορία ανά µπλοκ, π.χ ένα ακόµη byte (έστω έναν pointer σε µια άλλη δοµή στο δίσκο η οποία θα κρατά βάρη ή/και άλλη πληροφορία), τότε για παράδειγµα θα έπρεπε να έχουµε τα µισά µπλοκ σε πλήθος (αφού θα κρατούσαµε την διπλάσια πληροφορία) και συνεπώς διπλάσιο µέγεθος µπλοκ. δ) Το να καταλαµβάνει το ευρετηρίο 100Κ σηµαίνει ότι το vocabulary ίσα που χωράει στη µνήµη αφού αυτό από µόνο του είναι 100Κ. εν έχουµε πολλές επιλογές παρά να κρατάµε στη µνήµη pointers για θέσεις στο δίσκο όπου βρίσκεται η υπόλοιπη πληροφορία του ευρετηρίου. Όµως το vocabulary καταλαµβάνει και τα 100Κ και δεν αφήνει χώρο για τίποτα άλλο. Μπορούµε να εφαρµόσουµε

stemming στο vocabulary ώστε το µέγεθος της µέσης λέξης να µετατραπεί από 10 σε 6 bytes. Έτσι θα περισσεύουν 4 bytes ανά λέξη που θα µπορούσε να µπει ο pointer και πάλι να έχουµε 100K χώρο. Ακόµα και εάν έχει εφαρµοστεί stemming ήδη, το µεγεθος της µέσης λέξης (10 bytes) µας αφήνει περιθώρια να την κόψουµε και να εφαρµόσουµε την ιδέα µας. Έχουµε βέβαια το πρόβληµα ότι για µια λέξη που έχει κοινό πρόθεµα µε κάποια του vocabulary µας πρέπει να φτάσουµε ώς το δίσκο για να καταλάβουµε ότι αποτύχαµε. ε) Όλες οι ιδέες που παρουσιάζονται (blocks,stemming και η παρούσα ιδέα) µπορούν βέβαια να εφαρµοστούν µόνες τους ή συνδυασµένες σε όλα τα ερωτήµατα. Αυτό που µπορούµε να κάνουµε όταν έχουµε τόσο µικρή µνήµη όσο 10Κ είναι να «σπάσουµε» το ευρετήριο του προηγούµενου ερωτήµατος σε δέκα κοµµάτια και να έχουµε 1 κοµµάτι κάθε φορά στη µνήµη. Αν δεν περιέχει τη λέξη που ψάχνουµε πάµε στο δίσκο και φορτώνουµε ένα άλλο κοµµάτι. Η παραπάνω διαδικασία είναι πάρα πολύ αργή και µια βελτιστοποίηση είναι να χωρέσουµε κάποιες από τις λέξεις (π.χ. 900) αλφαβητικά επιλέγοντάς τες όσο περισσότερο οµοιόµορφα µπορούµε από όλο το σύνολο του vocabulary. Ανάµεσα σε λέξεις (π.χ κάθε 10 λέξεις) θα κρατούµε έναν pointer σε ένα τµήµα του vocabulary που είναι 10Κ και αλφαβητικά ανάµεσα στην λέξη πριν από τον pointer και στην επόµενη. Αν ψάχνουµε µια λέξη λεξικογραφικά ανάµεσα σε «αστο» και «λαλα» ακολουθούµε τον pointer και φορτώνουµε εκείνο το κοµµάτι του vocabulary που βρίσκεται λεξικογραφικά ανάµεσα σε «αστο» και «λαλα» και περιέχει ίσως την λέξη που θέλουµε. Αν χρειάζεται µπορούµε να προσθέσουµε και άλλα επίπεδα indexing (δηλαδή αυτό το τµήµα που θα φορτώσουµε να έχει και αυτό pointers σε λεξικογραφικά εµπεριέχοντα τµήµατα). Όπως και να έχει το τελευταίο επίπεδο indexing του vocabulary πρεπει να περιέχει pointers στον δίσκο για περαιτέρω πληροφορία (pointers π.χ. σε inverted lists).