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

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

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

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

Γλωσσικη τεχνολογια. Προεπεξεργασία Κειμένου

ΔΙΑΧΕΙΡΙΣΗ ΠΕΡΙΕΧΟΜΕΝΟΥ ΠΑΓΚΟΣΜΙΟΥ ΙΣΤΟΥ ΚΑΙ ΓΛΩΣΣΙΚΑ ΕΡΓΑΛΕΙΑ. Προεπεξεργασία Κειμένου

ΓΛΩΣΣΙΚΗ ΤΕΧΝΟΛΟΓΙΑ. Μάθημα 7 ο : Ανάκτηση πληροφορίας. Γεώργιος Πετάσης. Ακαδημαϊκό Έτος:

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

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

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

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

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

Διαχείριση εγγράφων. Αποθήκες και Εξόρυξη Δεδομένων Διδάσκων: Μ. Χαλκίδη

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

Επεξεργασία & Οργάνωση Δεδομένων Κειμένου

ΤΙΤΛΟΣ ΙΠΛΩΜΑΤΙΚΗΣ ΕΡΓΑΣΙΑΣ: GoNToggle: ΕΞΥΠΝΗ ΜΗΧΑΝΗ ΑΝΑΖΗΤΗΣΗΣ ΜΕ ΧΡΗΣΗ ΟΝΤΟΛΟΓΙΩΝ ΠΕΡΙΟΧΗ ΕΡΕΥΝΑΣ: ΣΥΓΓΡΑΦΕΑΣ:

Δομές Δεδομένων. Ενότητα 11: Τεχνικές Κατακερματισμού. Καθηγήτρια Μαρία Σατρατζέμη. Τμήμα Εφαρμοσμένης Πληροφορικής.

ΠΑΝΕΠΙΣΤΗΜΙΟ AΙΓΑIΟΥ & ΑΕΙ ΠΕΙΡΑΙΑ Τ.Τ. Τμήματα Ναυτιλίας και Επιχειρηματικών Υπηρεσιών & Μηχ. Αυτοματισμού ΤΕ. Εισαγωγή στη Python

Προγραμματισμός ΙI (Θ)

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

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

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

Συστήματα Παράλληλης και Κατανεμημένης Επεξεργασίας

Κατανεμημένα Συστήματα

Εργαστήριο Λειτουργικών Συστημάτων 8o εξάμηνο, Ροή Υ, ΗΜΜΥ

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

ΔΙΑΧΕΙΡΙΣΗ ΠΕΡΙΕΧΟΜΕΝΟΥ ΠΑΓΚΟΣΜΙΟΥ ΙΣΤΟΥ ΚΑΙ ΓΛΩΣΣΙΚΑ ΕΡΓΑΛΕΙΑ. Τεχνικές NLP Σχεδιαστικά Θέματα

1. Financial New Times Year MAXk {FREQij} D D D D

Προγραμματισμός Υπολογιστών με C++

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

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

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

Software Production Company

Τεχνολογία Διοίκησης Επιχειρησιακών Διαδικασιών

ΟΜΟΣΠΟΝΔΙΑ ΕΚΠΑΙΔΕΥΤΙΚΩΝ ΦΡΟΝΤΙΣΤΩΝ ΕΛΛΑΔΟΣ (Ο.Ε.Φ.Ε.) ΕΠΑΝΑΛΗΠΤΙΚΑ ΘΕΜΑΤΑ ΕΠΑΝΑΛΗΠΤΙΚΑ ΘΕΜΑΤΑ 2019 Β ΦΑΣΗ

53 Χρόνια ΦΡΟΝΤΙΣΤΗΡΙΑ ΜΕΣΗΣ ΕΚΠΑΙΔΕΥΣΗΣ Σ Α Β Β Α Ϊ Δ Η Μ Α Ν Ω Λ Α Ρ Α Κ Η

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

GoNToggle: ΕΞΥΠΝΗ ΜΗΧΑΝΗ ΑΝΑΖΗΤΗΣΗΣ ΜΕ ΧΡΗΣΗ ΟΝΤΟΛΟΓΙΩΝ

Μοντελοποίηση Συστημάτων

ΓΛΩΣΣΙΚΗ ΤΕΧΝΟΛΟΓΙΑ. Μάθημα 10 ο : Αποσαφήνιση εννοιών λέξεων. Γεώργιος Πετάσης. Ακαδημαϊκό Έτος:

Πανεπιστήμιο Θεσσαλίας Τμήμα Μηχανικών Η/Υ, Τηλεπικοινωνιών και Δικτύων

Εργαστήρια Αριθμητικής Ανάλυσης Ι. 7 ο Εργαστήριο. Διανύσματα-Πίνακες 2 ο Μέρος

Μοντελοποίηση Συστημάτων

Σημειώσεις του εργαστηριακού μαθήματος Πληροφορική ΙΙ. Εισαγωγή στην γλώσσα προγραμματισμού

Εξωτερική Αναζήτηση. Ιεραρχία Μνήμης Υπολογιστή. Εξωτερική Μνήμη. Εσωτερική Μνήμη. Κρυφή Μνήμη (Cache) Καταχωρητές (Registers) μεγαλύτερη ταχύτητα

Ασκήσεις στα υποπρογράμματα

Λειτουργικά Συστήματα Κεφάλαιο 2 Οργάνωση Συστήματος Αρχείων 2.1 Διαχείριση Αρχείων και Σύστημα Αρχείων(File System)

Ερώτημα 1. Μας δίνεται μια συλλογή από k ακολοθίες, k >=2 και αναζητούμε το πρότυπο Ρ, μεγέθους n.

Αναφορά εργασιών για το τρίμηνο Δεκέμβριος 2012 Φεβρουάριος 2013 Όνομα : Μπελούλη Αγάθη

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

ΕΡΓΑΣΤΗΡΙΑΚΕΣ ΑΣΚΗΣΕΙΣ C ΣΕΙΡΑ 1 η

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

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

ΕΡΓΑΣΤΗΡΙΑΚΕΣ ΑΣΚΗΣΕΙΣ C ΣΕΙΡΑ 1 η

ΛΥΣΕΙΣ ΤΩΝ ΑΣΚΗΣΕΩΝ ΕΠΑΝΑΛΗΨΗΣ ΓΙΑ ΤΙΣ ΓΙΟΡΤΕΣ (ΑΡΙΘΜΗΤΙΚΗ)

Άνοιγμα (και κλείσιμο) της εφαρμογής Εγγράφου Κειμένου

1 Συστήματα Αυτοματισμού Βιβλιοθηκών

Διαδικασιακός Προγραμματισμός

Πληροφορική 2. Δομές δεδομένων και αρχείων

ΙΑΤΡΟΛΕΞΗ. Neurosoft A.E. --- ΕΑΙΤΥ. ΓΓΕΤ, ΚτΠ, Πρόγραµµα «ΕΠΕΞΕΡΓΑΣΙΑ ΕΙΚΟΝΩΝ, ΗΧΟΥ ΚΑΙ ΓΛΩΣΣΑΣ»

Ασκηση 1 [ ] Παράδοση : Τετάρτη , 13:00

Συνοπτικό εγχειρίδιο χρήσης του Microsoft Visual Studio 2010

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

ΔΙΑΧΕΙΡΙΣΗ ΠΕΡΙΕΧΟΜΕΝΟΥ ΠΑΓΚΟΣΜΙΟΥ ΙΣΤΟΥ ΚΑΙ ΓΛΩΣΣΙΚΑ ΕΡΓΑΛΕΙΑ. Data Mining - Classification

Συστήματα Παράλληλης και Κατανεμημένης Επεξεργασίας

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

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

3 ο Εργαστήριο Μεταβλητές, Τελεστές

6. Βαθμολόγηση, Στάθμιση Όρων, και το Μοντέλο Διανυσματικού Χώρου

Λειτουργικό Σύστημα: διαχείριση πόρων. Τι είναι ένα αρχείο ; Διαχείριση αρχείων. Λειτουργικά Συστήματα (ΙΙ) (διαχείριση αρχείων)

Περιληπτικά, τα βήματα που ακολουθούμε γενικά είναι τα εξής:

Α2. Να γράψετε στο τετράδιο σας τον αριθμό 1-4 κάθε πρότασης και δίπλα το γράμμα που δίνει τη σωστή επιλογή.

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

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

ΗΥ240: οµές εδοµένων Χειµερινό Εξάµηνο Ακαδηµαϊκό Έτος Παναγιώτα Φατούρου. Προγραµµατιστική Εργασία 3 ο Μέρος

Εργασία «Διαχείριση Δικτύων» Ιούνιος 2014, Θεσ/νίκη

Θεωρία Υπολογισμού και Πολυπλοκότητα Ασυμφραστικές Γλώσσες (3)

Συστήματα Παράλληλης και Κατανεμημένης Επεξεργασίας

Τα συγκεντρωτικά ερωτήματα αφορούν στην ομαδοποίηση των δεδομένων και στη. χρήση συναρτήσεων ομαδοποίησης κατά την εκτέλεση ενός ερωτήματος προβολής

Πιθανοκρατικό μοντέλο

Φάσμα προπαρασκευή για Α.Ε.Ι. & Τ.Ε.Ι.

Η αρχική οθόνη της Ηλεκτρονικής Βιβλιοθήκης περιλαμβάνει τις εξής βασικές ενότητες όπως φαίνονται στην Εικόνα 1:

Αναγνώριση Προτύπων Ι

Ασκήσεις μελέτης της 4 ης διάλεξης. ), για οποιοδήποτε μονοπάτι n 1

Λειτουργικά Συστήματα (ΙΙ) (διαχείριση αρχείων)

Λειτουργικά Συστήματα 7ο εξάμηνο, Ακαδημαϊκή περίοδος

Η ΜΕΘΟΔΟΣ PCA (Principle Component Analysis)

Εργαστήριο Δομημένος Προγραμματισμός (C#) Τμήμα Μηχανολογίας Νικόλαος Ζ. Ζάχαρης Καθηγητής Εφαρμογών

./mydiz {-c -a -x -m -d -p -j} <archive-file> <list-of-files/dirs>

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

Προγραμματισμός Η/Υ (ΤΛ2007 )

ΟΜΟΣΠΟΝΔΙΑ ΕΚΠΑΙΔΕΥΤΙΚΩΝ ΦΡΟΝΤΙΣΤΩΝ ΕΛΛΑΔΟΣ (Ο.Ε.Φ.Ε.) ΕΠΑΝΑΛΗΠΤΙΚΑ ΘΕΜΑΤΑ ΕΠΑΝΑΛΗΠΤΙΚΑ ΘΕΜΑΤΑ 2018 Β ΦΑΣΗ

1. Δεν μπορεί να γίνει κλήση μίας διαδικασίας μέσα από μία συνάρτηση.

ΟΝΤΟΚΕΝΤΡΙΚΟΣ ΠΡΟΓΡ/ΣΜΟΣ C++

Εργαστήριο 6 ο 7 ο / Ερωτήματα Ι

Οι πράξεις της συνένωσης. Μ.Χατζόπουλος 1

«Μηχανή Αναζήτησης Αρχείων» Ημερομηνία Παράδοσης: 30/04/2015, 09:00 π.μ.


ΚΕΦΑΛΑΙΟ 6 ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ. 03/01/09 Χαράλαμπος Τζόκας 1

Transcript:

Γλωσσική Τεχνολογία Ακαδημαϊκό Έτος 2011-2012 Ημερομηνία Παράδοσης: Στην εξέταση του μαθήματος ΑΣΚΗΣΗ Δημιουργία Ευρετηρίων Συλλογής Κειμένων Σκοπός της άσκησης είναι η υλοποίηση ενός συστήματος επεξεργασίας μιας συλλογής κειμένων με στόχο τη δημιουργία ευρετηρίων για τη διαχείρισή της. Το σύστημα θα αποτελείται από ένα υποσύστημα προεπεξεργασίας των δεδομένων και κατασκευής των ζητούμενων ευρετηρίων καθώς και από υποσυστήματα τα οποία θα είναι σε θέση να χρησιμοποιούν τα ήδη δημιουργημένα ευρετήρια για να υλοποιήσουν τη ζητούμενη λειτουργικότητα. Προκειμένου να αξιολογηθεί η απόδοση του κάθε ευρετηρίου θα υλοποιηθεί μηχανισμός υποβολής ερωτημάτων στα δεικτοδοτημένα κείμενα της συλλογής, μέσω του οποίου θα υποβάλετε ερωτήματα προς τα ευρετήρια και θα ανακτάτε τα κείμενα της συλλογής που σχετίζονται με αυτά. Η υλοποίησή σας θα αξιολογηθεί με βάση το κατά πόσο ανταποκρίνεται στις ανάγκες πραγματικών συστημάτων δεικτοδότησης. Η απόδοση των σχεδιαστικών επιλογών που θα κάνετε πρέπει να είναι τέτοια ώστε να δίνεται έμφαση στην ταχύτερη εκτέλεση των ζητούμενων εργασιών. Επίσης η δημιουργία των ζητούμενων ευρετηρίων θα πρέπει να συνοδεύεται από μηχανισμούς αποθήκευσης και επαναφόρτωσής τους έτσι ώστε η προεπεξεργασία να γίνεται μία μόνο φορά. Θα χρησιμοποιήσετε τη συλλογή κειμένων της wikipedia που δίνεται στη σελίδα του μαθήματος και για τις μετρήσεις που ζητούνται θα χρησιμοποιήσετε το αρχείο με τη λίστα ερωτημάτων που δίνεται. Διαβάσετε προσεχτικά την εκφώνηση και απαντήσετε με σαφήνεια στα ερωτήματα. Συνιστάται η χρήση Python, καθώς αρκετά από τα εργαλεία που θα χρειαστείτε είναι ήδη υλοποιημένα στο NLTK. Σχεδιασμός των ευρετηρίων Η απόδοση του συστήματος που θα υλοποιήσετε εξαρτάται σε μεγάλο βαθμό από την επιλογή της κατάλληλης δομής δεδομένων για την φόρτωση των ζητούμενων ευρετηρίων στη μνήμη. Η δομή δεδομένων που θα χρησιμοποιήσετε πρέπει να ελαχιστοποιεί σε κάθε περίπτωση το χρόνο αναζήτησης και κατασκευής των ευρετηρίων. Στα πλαίσια της άσκησης θα κατασκευάσετε δύο τύπους ευρετηρίων, ένα κανονικό και ένα ανεστραμμένο, στα οποία θα αποθηκεύσετε τα διανύσματα των κειμένων της συλλογής που σας δίνεται, όπως αυτά κατασκευάζονται με βάση τη θεωρία του vector space model. Αρχικά σε κάθε κείμενο που ανήκει στη συλλογή θα πρέπει να δίνεται ένα id. Το id ενός κειμένου είναι ένα μοναδικό αναγνωριστικό του. Μπορείτε να δώσετε δικό σας id σε κάθε κείμενο για να το χρησιμοποιείτε εσωτερικά ή να χρησιμοποιήσετε το path που έχει αποθηκευτεί τοπικά,

δικαιολογώντας την επιλογή σας. Σε κάθε περίπτωση θα πρέπει με δεδομένο το id να μπορείτε να ανακτήσετε το full path. Το ανεστραμμένο ευρετήριο είναι μια συλλογή εγγραφών της μορφής: <λήμμα, {<id_κειμένου1, βάρος1>, <id_κειμένου2, βάρος2>, }> Για κάθε μοναδικό λήμμα που συναντάται στη συλλογή κειμένων δημιουργείται μια εγγραφή στο ανεστραμμένο ευρετήριο. Η εγγραφή περιέχει το λήμμα καθώς και το σύνολο των κειμένων στις οποίες εμφανίζεται. Για κάθε κείμενο όπου εμφανίζεται αποθηκεύεται επίσης το βάρος του λήμματος σε αυτό. Το κανονικό ευρετήριο είναι μια συλλογή εγγραφών της μορφής: <id_κειμένου, {<λήμμα1, βάρος1>, <λήμμα2, βάρος2>, }> Για κάθε κείμενο στη συλλογή δημιουργείται μια εγγραφή. Η εγγραφή περιέχει το id του κειμένου καθώς και το σύνολο των λημμάτων τα οποία εμφανίζονται σε αυτό. Για κάθε λήμμα αποθηκεύεται και το βάρος του για το συγκεκριμένο κείμενο. Μέρη του Συστήματος Προεπεξεργασία της συλλογής Η προεπεξεργασία της συλλογής κειμένων είναι η ολοκληρωμένη διαδικασία επεξεργασίας των αρχείων, δημιουργίας των ευρετηρίων και αποθήκευσής τους σε κατάλληλη μορφή ώστε να μπορούν να «φορτωθούν» χωρίς να επαναλαμβάνεται η κατασκευή τους. Μπορείτε να οργανώσετε την υλοποίηση των επιμέρους εργασιών (tokenization, tagging, δημιουργία ευρετηρίων, υπολογισμό βαρών κλπ) με οποιοδήποτε τρόπο θέλετε έτσι ώστε να επιτύχετε την ορθότερη λειτουργία του συστήματος και τη μεγαλύτερη δυνατή ταχύτητα κατασκευής. Ακολούθως περιγράφονται οι βασικές απαιτήσεις για τις επιμέρους εργασίες κατά την κατασκευή των ευρετηρίων. Tokenization Στα πλαίσια του tokenization καλείστε να προετοιμάσετε τα κείμενα που σας δίνονται ώστε να δοθούν στον μορφοσυντακτικό αναλυτή ως είσοδος. Θα προετοιμάσετε την είσοδο αφαιρώντας μεταδεδομένα αν υπάρχουν (xml tags, html markup κλπ), χωρίζοντας το κείμενο σε μια λέξη ανά γραμμή αν χρειάζεται και πραγματοποιώντας όποια άλλη τροποποίηση κρίνετε απαραίτητη. Οι επιλογές σας στο tokenization θα πρέπει να στοχεύουν στην μεγαλύτερη δυνατή απόδοση του μορφοσυντακτικού αναλυτή (tagger). Ανάλογα με τον μορφοσυντακτικό αναλυτή που θα χρησιμοποιήσετε καλείστε να υλοποιήσετε και τον αντίστοιχο κώδικα ώστε να διαμορφώσετε σωστά την είσοδο που πρέπει να του δώσετε. Σε περιπτώσεις όπου δεν είναι προφανής ο τρόπος που πρέπει να χωριστεί μια πρόταση ή μια λέξη (πχ Teacher s), θα δοκιμάζετε τον tagger και θα επιλέγετε την λύση που τον οδηγεί σε σωστό αποτέλεσμα. Μορφοσυντακτική Ανάλυση Σχολιάστε μορφοσυντακτικά τις λέξεις του κάθε tokenized κειμένου. Για το μορφοσυντακτικό σχολιασμό χρησιμοποιήστε κάποιον από τους προτεινόμενους PoS-Taggers (ανάλογα με το περιβάλλον υλοποίησης που έχετε επιλέξει) που θα κατεβάσετε από το site του μαθήματος.

Επιλογή Όρων Οι μορφοσυντακτικοί αναλυτές που σας δίνονται πραγατοποιούν και αναγωγή στον πρώτο κλιτικό τύπο (lemmatization). Για κάθε λέξη επιστρέφουν το μέρος του λόγου αλλά και το λήμμα στο οποίο αντιστοιχεί. Οι όροι που θα χρησιμοποιήσετε για την δεικτοδότηση των κειμένων είναι τα λήμματα που έχουν προκύψει και όχι οι αρχικές λέξεις. Στο σύνολο των όρων που θα δεικτοδοτήσετε δεν θα πρέπει να λάβετε υπόψη τους τερματικούς όρους (stop words). Οι τερματικοί όροι είναι λέξεις που δεν έχουν σημασιολογικό περιεχόμενο και εμφανίζονται σε όλα τα κείμενα, με αποτέλεσμα να μην αποτελούν χρήσιμους όρους δεικτοδότησης. Στο link: http://www.infogistics.com/tagset.html θα βρείτε δύο πίνακες, έναν με τα PoS tags για open class categories και έναν με τα PoS tags για closed class categories. Τα open class categories είναι γραμματικές κατηγορίες των λέξεων που έχουν σημασιολογικό περιεχόμενο και άρα τις χρειαζόμαστε. Αντίθετα, τα closed class categories είναι γραμματικές κατηγορίες για λέξεις άνευ σημασιολογικού περιεχομένου, δηλ., stop-words. Συνεπώς, για να εξαλείψετε τους τερματικούς όρους από κάθε μορφοσυντακτικά σχολιασμένο κείμενο της συλλογής θα πρέπει να αφαιρέσετε τις λέξεις στις οποίες έχει ανατεθεί ένα closed class category tag. Υπολογισμός Βαρών Το βάρος του κάθε λήμματος για ένα κείμενο αντιπροσωπεύει το βαθμό σπουδαιότητας του λήμματος για το συγκεκριμένο κείμενο και θα το υπολογίσετε χρησιμοποιώντας τη μετρική TF- IDF. Ο παρακάτω τύπος δίνει το βάρος του λήμματος i για ένα συγκεκριμένο κείμενο: tf i idf i weight i = k vector(tf k idf k ) 2 όπου tf (term frequency) είναι η συχνότητα εμφάνισης ενός όρου σε ένα κείμενο, idf (inverse document frequency) η αντίστροφη συχνότητα κειμένου στη συλλογή και παρονομαστής (παράγοντας κανονικοποίησης) το ευκλείδιο μήκος του διανύσματος για κάθε κείμενο, το οποίο υπολογίζεται με τη χρήση των παραγόντων tf idf. Η idf για έναν όρο i υπολογίζεται από τον τύπο: idf ι = log N n i όπου N είναι ο συνολικός αριθμός κειμένων της συλλογής και n i ο αριθμός των κειμένων της συλλογής στα οποία εμφανίζεται ο όρος i. Αποθήκευση και επαναφόρτωση των ευρετηρίων Για κάθε ευρετήριο θα υλοποιήσετε τις απαραίτητες λειτουργίες έτσι ώστε να είναι δυνατή η αποθήκευση της αντίστοιχης δομής δεδομένων σε xml αρχείο και η επαναφόρτωση του xml αρχείου στην δομή δεδομένων. Ο σχεδιασμός της xml δομής για κάθε ευρετήριο πρέπει να είναι τέτοιος ώστε να διεκολύνει τη γρήγορη αποθήκευση και επαναφόρτωση. Επίσης τα XML αρχεία που θα προκύψουν πρέπει να είναι ορθά δομημένα (well-formed).

Στόχος είναι να μην επαναλαμβάνεται κάθε φορά η κατασκευή των ευρετηρίων, αλλά να είναι δυνατή η απευθείας φόρτωσή τους για να μπορούν να εκτελεστούν λειτουργίες πάνω σε αυτά. Αξιολόγηση και σύγκριση των ευρετηρίων Για την αξιολόγηση των ευρετηρίων θα υπολοποιηθεί μηχανισμός υποβολής ερωτημάτων στα δύο ευρετήρια που θα προκύψουν. Θα πρέπει να υλοποιήσετε τη διαδικασία αναζήτησης στο ανεστραμμένο και στο κανονικό ευρετήριο και πειραματικά να χρονομετρήσετε τα δύο ευρετήρια για να συγκρίνετε την απόδοσή τους κατά την αναζήτηση. Ακολουθεί η περιγραφή των βασικών σημείων της πειραματικής διαδικασίας. Προδιαγραφές αναζήτησης Η αναζήτηση θα πρέπει να είναι υλοποιημένη έτσι ώστε να δέχεται άγνωστο αριθμό όρων για κάθε ερώτημα. Υποθέτουμε για τη διευκόλυνσή σας ότι οι όροι του κάθε ερωτήματος είναι σε πρώτο κλιτικό τύπο. Επίσης η αναζήτηση θα πρέπει να μπορεί να γίνει ανεξάρτητα από την κατασκευή του ευρετηρίου. Θα «φορτώνονται» δηλαδή τα ευρετήρια από αρχεία στις αντίστοιχες δομές δεδομένων και μετά θα πραγματοποιείται η αναζήτηση. Για κάθε ερώτημα ο μηχανισμός αναζήτησης θα ψάχνει στο ευρετήριο και θα εντοπίζει τα σχετικά κείμενα. Έπειτα θα τα ταξινομεί με βάση την ομοιότητα του διανύσματος του κάθε κειμένου με το διάνυσμα του ερωτήματος (cosine similarity ή εσωτερικό γινόμενο). Σημειώνεται ότι για το διάνυσμα του ερωτήματος η τιμή συντεταγμένης όταν ο όρος υπάρχει είναι 1 και όταν δεν υπάρχει 0. Τα αποτελέσματα θα επιστρέφονται όχι με id αρχείου αλλά με full path στο δίσκο. Ο τρόπος αναζήτησης σε κάθε περίπτωση εξαρτάται προφανώς από το ευρετήριο στο οποίο ψάχνουμε, επομένως θα υλοποιήσετε διαφορετική αναζήτηση για κάθε τύπο ευρετήριου (ανεστραμμένο και κανονικό). Σκοπός είναι για κάθε τύπο ευρετηρίου να έχετε υλοποιήσει τον αποδοτικότερο τρόπο αναζήτησης. Θα πρέπει να υποστηρίζεται υποβολή ερωτημάτων από χρήστη και παρουσίαση των αποτελεσμάτων, αλλά και υποβολή πολλαπλών ερωτημάτων από αρχείο. Πειραματική μέτρηση Για κάθε ευρετήριο θα μετρήσετε το μέσο χρόνο απόκρισης, υποβάλλοντας τα ερωτήματα που περιέχονται στο αρχείο queries.txt (ένα ερώτημα ανά γραμμή). Θα μετρήσετε το συνολικό χρόνο και θα διαιρέσετε με τον αριθμό των ερωτημάτων για να υπολογίσετε το μέσο χρόνο απόκρισης. Αν οι χρόνοι είναι πολύ μικροί για να μετρηθούν, επαναλάβατε πολλές φορές πριν υπολογίσετε το μέσο χρόνο και διαιρέστε το συνολικό χρόνο με τις φορές επανάληψης του πειράματος επί τον αριθμό των ερωτημάτων. Προσοχή, δεν πρέπει να συμπεριλάβετε στους χρόνους που μετράτε την ανάγνωση από αρχείο και την εκτύπωση αποτελεσμάτων στην οθόνη.

Μετρήσεις Χρόνων Κατά την κατασκευή αλλά και την πειραματική εφαρμογή του συστήματος που θα υλοποιήσετε θα μετρήσετε τους αντίστοιχους χρόνους. Θα πρέπει να προσέξετε κατά τη μέτρηση των χρόνων που ζητούνται να συμπεριλάβετε μόνο τις διαδικασίες που πρέπει να χρονομετρηθούν και όχι χρονοβόρες λειτουργίες όπως I/O, κλήσεις εξωτερικών διεργασιών ή εκτύπωση στο standard output. Τα μεγέθη που καλείστε να μετρήσετε στα πλαίσια της άσκησης είναι τα ακόλουθα: 1. Χρόνος κατασκευής ευρετηρίων: Στο συγκεκριμένο χρόνο δεν συμπεριλαμβάνεται το tokenization και το tagging, καθώς είναι κλήση εξωτερικής διεργασίας και πολύ χρονοβόρο. Θεωρούμε σαν διαδικασία κατασκευής τη διαδικασία που αρχίζει μετά το tagging. 2. Μέγεθος ευρετηρίων: Αρκεί να μετρήσετε και να συγκρίνετε το τελικό μέγεθος των xml αρχείων στα οποία αποθηκεύονται τα ευρετήρια. Σχολιάστε τη διαφορά αν υπάρχει. 3. Μέσος χρόνος απόκρισης ευρετηρίων: Μετρήστε όπως περιγράφεται στην πειραματική εφαρμογή και σχολιάστε τη διαφορά αν υπάρχει. Παραδοτέα 1. Ο πηγαίος κώδικας όλων των παραπάνω υποσυστημάτων. Ο σχολιασμός του κώδικα να γίνει απαραίτητα σε επίπεδο συναρτήσεων (λειτουργία, ορίσματα, έξοδος) αλλά και εσωτερικά των συναρτήσεων όπου κρίνεται αναγκαίο για να γίνει κατανοητός. 2. Μια σύντομη αναφορά που θα περιέχει τα αποτελεσματα των μετρήσεων που απαιτούνται από την άσκηση καθώς και ο σχολιασμός που ζητάται.