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

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

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

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

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

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

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

Μπορείτε τα δείτε βιντεάκι με τη διαδικασία εδώ:

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

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

Software Production Company

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

Π17: Μορφοσυντακτικός και Σηµασιολογικός Σχολιαστής (λογισµικό)

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

ΗΛΕΚΤΡΟΝΙΚΟ ΣΥΣΤΗΜΑ ΟΡΓΑΝΩΣΗΣ ΓΡΑΦΕΙΟΥ. Helpdesk

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

Βασίλης Πλαχούρας. Χρυσόστομος Καπέτης Μιχάλης Βαζιργιάννης. Οικονομικό Πανεπιστήμιο Αθηνών 3/11/2003

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

Κεφάλαιο 16 Εφαρμογές Αυτοματισμού Γραφείου

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

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

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

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

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

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

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

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

Javascript. του project /software/web_tools/webapps/search_engine/.

Περιγραφή των Δεδομένων

ΕΠΛ 003: ΕΠΙΣΤΗΜΗ ΤΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΠΛΗΡΟΦΟΡΙΑΚΑ ΣΥΣΤΗΜΑΤΑ. Μηχανές αναζήτησης

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

Δυναμικές Ιστοσελίδες Εισαγωγή στην Javascript για προγραμματισμό στην πλευρά του client

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

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

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

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

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

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

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

Ημερομηνία Παράδοσης: 4/4/2013

ΕΠΛ 002: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ. Μηχανές αναζήτησης

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

ΟΔΗΓΙΕΣ ΓΙΑ ΤΟ ΠΑΙΧΝΙΔΙ.

Διαχείριση Πολιτισμικών Δεδομένων

Οδηγίες αρθρογράφησης στην ιστοσελίδα του 2ου ΓΕΛ Καματερού

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

2, µε τίτλο: «Υλοποίηση Εργαλείων Ανάπτυξης ιαχείρισης Σώµατος Κειµένων και Αυτόµατης Εξαγωγής Ορολογίας».

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα. Βιομηχανικοί Ελεγκτές. Ενότητα: ΕΡΓΑΣΤΗΡΙΟ 1 ΕΛΕΓΧΟΣ ΣΥΣΤΗΜΑΤΟΣ ΜΕΤΑΦΟΡΑΣ

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

Δομές Δεδομένων και Αλγόριθμοι

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

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

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

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

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

Σύνοψη Προηγούμενου. Πίνακες (Arrays) Πίνακες (Arrays): Βασικές Λειτουργίες. Πίνακες (Arrays) Ορέστης Τελέλης

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

ΘΕΜΑ 1 Τεχνικές Εξαγωγής Συµφράσεων από εδοµένα Κειµένου και Πειραµατική Αξιολόγηση

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

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

Εισαγωγή στην PHP. ΕΣΔ 516 Τεχνολογίες Διαδικτύου. Περιεχόμενα. Περιεχόμενα. ΕΣ 516: Τεχνολογίες ιαδικτύου. ΕΣ 516: Τεχνολογίες ιαδικτύου

Εργαστήριο Επεξεργασίας Πληροφορίας και Υπολογισμών Τομέας Ηλεκτρονικής και Υπολογιστών ΤΗΜΜΥ Α.Π.Θ ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ.

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

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

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ Ακαδημαϊκό έτος ΤΕΤΡΑΔΙΟ ΕΡΓΑΣΤΗΡΙΟΥ #4

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

Εργαλεία ανάπτυξης εφαρμογών internet Ι

Εισαγωγή Κεφάλαιο 1: Εγκατάσταση της Access Κεφάλαιο 2: Βάσεις δεδομένων και δομικά στοιχεία της Access

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

ΕΓΧΕΙΡΙΔΙΟ ΜΑΘΗΤΗ. της Πλατφόρμας Τηλεκατάρτισης

ΠΕΡΙΕΧΟΜΕΝΑ. Πρόλογος Κεφάλαιο 1 ο Αρχές Διαχείρισης πληροφορίας στον Παγκόσμιο Ιστό... 15

Εργαστήριο Επεξεργασίας Πληροφορίας και Υπολογισμών Τομέας Ηλεκτρονικής και Υπολογιστών ΤΗΜΜΥ Α.Π.Θ ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ. DS Gomoku.

Ακρότατα πίνακα, χωρίς min, max, μόνο με pos

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

Διδάσκων: Κωνσταντίνος Κώστα Διαφάνειες: Δημήτρης Ζεϊναλιπούρ

Εργαστήριο 5 ο. Α. Τεχνικές επεξεργασίας δεδομένων Α1. Ταξινόμηση Δεδομένων, Α2. Φιλτράρισμα Εγγραφών. Β. Ερωτήματα. Β1. Ερωτήματα Επιλογής

ΦΡΟΝΤΙΣΤΗΡΙΟ ΦΑΣΜΑ 21/4/2013

Πληροφορική & Τηλεπικοινωνίες. K18 - Υλοποίηση Συστημάτων Βάσεων Δεδομένων Εαρινό Εξάμηνο

ΗΜΥ 213. Εργαστήριο Οργάνωσης Η.Y. και Μικροεπεξεργαστών. Ασκήσεις: week3 και week4. Διδάσκων: Δρ. Γιώργος Ζάγγουλος

Χρήστος Στασινός. ουλεύοντας με τη. Microsoft Access ΑΘΗΝΑ

Ηλεκτρονικοί Υπολογιστές ΙI. Βάσεις Δεδομένων. Ακαδημαϊκό Έτος Εργαστήριο 5. Διαφάνεια 1. Κάπαρης Αναστάσιος


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

Δίκτυα Υπολογιστών I Εργαστήρια

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

Εφαρμογή Διαχείρισης Ψηφιακής Πληροφορίας ΟΔΗΓΟΣ ΧΡΗΣΗΣ System Συμβουλευτική Α.Ε

Σχεδιασμός και Ανάπτυξη Ιστοσελίδων ΙΙ ΙΕΚ ΤΡΙΑΝΔΡΙΑΣ ΓΡΑΦΙΣΤΑΣ ΕΝΤΥΠΟΥ ΚΑΙ ΗΛΕΚΤΡΟΝΙΚΩΝ ΜΕΣΩΝ. CSS - Cascading Style Sheets

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

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

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

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

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

Οδηγός γρήγορης εκκίνησης

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

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

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

$./jms console -w <jms in> -r <jms out> -o <operations file> namedpipe. (standard input).

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

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

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

Transcript:

Γλωσσική Τεχνολογία Ακαδημαϊκό Έτος 2010-2011 ΑΣΚΗΣΗ Συγκομιδή και δεικτοδότηση ιστοσελίδων Σκοπός της άσκησης είναι η υλοποίηση ενός ολοκληρωμένου συστήματος συγκομιδής και δεικτοδότησης ιστοσελίδων. Η αρχιτεκτονική του συστήματος θα αποτελείται από έναν προσκομιστή ιστοσελίδων ο οποίος θα διατρέχει το δίκτυο και θα κατεβάζει τα περιεχόμενα των νέων σελίδων που συναντά, καθώς και από ένα υποσύστημα επεξεργασίας του περιεχομένου των ιστοσελίδων το οποίο στόχο έχει την δεικτοδότηση σε ανεστραμμένο ευρετήριο που θα σχεδιάσετε. Προκειμένου να αξιολογήσετε την απόδοση του ευρετηρίου σας θα υλοποιήσετε έναν μηχανισμό υποβολής ερωτημάτων στα δεικτοδοτημένα κείμενα της συλλογής, μέσω του οποίου θα υποβάλετε ερωτήματα προς το ευρετήριο και θα ανακτάτε τα κείμενα της συλλογής που σχετίζονται με αυτά (δηλ. περιέχουν τους όρους των ερωτημάτων). Η υλοποίησή σας θα αξιολογηθεί με βάση το κατά πόσο ανταποκρίνεται στις ανάγκες πραγματικών συστημάτων δεικτοδότησης. Η απόδοση των σχεδιαστικών επιλογών που θα κάνετε πρέπει να είναι τέτοια ώστε να επιτρέπεται η όσο το δυνατόν ταχύτερη συγκομιδή και δεικτοδότηση των ιστοσελίδων. Επίσης θα υλοποιήσετε μηχανισμό αποθήκευσης και επαναφόρτωσης του ευρετηρίου έτσι ώστε να μην υπάρχει ανάγκη ανακατασκευής του κάθε φορά που υποβάλλονται ερωτήματα σε αυτό. Διαβάσετε προσεχτικά την εκφώνηση και απαντήσετε με σαφήνεια στα ερωτήματα. Συνιστάται η χρήση Python, καθώς αρκετά από τα εργαλεία που θα χρειαστείτε είναι ήδη υλοποιημένα στο NLTK. Σχεδιασμός Ανεστραμμένου Ευρετηρίου Η απόδοση του συστήματος που θα υλοποιήσετε εξαρτάται σε μεγάλο βαθμό από την επιλογή της κατάλληλης δομής δεδομένων για την φόρτωση του ανεστραμμένου ευρετηρίου στη μνήμη. Η δομή δεδομένων που θα χρησιμοποιήσετε πρέπει να ελαχιστοποιεί το χρόνο αναζήτησης στο ευρετήριο, αλλά και να εξασφαλίζει ικανοποιητικό χρόνο κατασκευής του. Το ανεστραμμένο ευρετήριο είναι μια συλλογή εγγραφών της μορφής: <λήμμα, {<id_σελίδας1, βάρος1>, <id_σελίδας2, βάρος2>, }> Για κάθε μοναδικό λήμμα που συναντάται στη συλλογή ιστοσελίδων δημιουργείται μια εγγραφή στο ανεστραμμένο ευρετήριο. Η εγγραφή περιέχει το λήμμα καθώς και το σύνολο των ιστοσελίδων στις οποίες εμφανίζεται. Για κάθε ιστοσελίδα όπου εμφανίζεται αποθηκεύεται επίσης το βάρος του λήμματος σε αυτή. Σε κάθε ιστοσελίδα που ανήκει στη συλλογή θα πρέπει να δίνεται ένα id. Το id μιας ιστοσελίδας είναι ένα μοναδικό αναγνωριστικό της. Μπορείτε να δώσετε δικό σας id σε κάθε σελίδα για να το χρησιμοποιείτε εσωτερικά, να χρησιμοποιήσετε το path που έχει αποθηκευτεί τοπικά η ιστοσελίδα ή το url της. Σε κάθε περίπτωση θα πρέπει με δεδομένο το id να μπορείτε να ανακτήσετε το path και το url.

Υποσυστήματα που θα υλοποιήσετε 1 ο Προσκομιστής Ιστοσελίδων. Ο προσκομιστής ιστοσελίδων (crawler) που θα υλοποιήσετε θα πρέπει να ξεκινά από μια σελίδα, να κατεβάζει το περιεχόμενό της, το οποίο έχει html μορφοποίηση, και να ακολουθεί τα links που περιέχει η ιστοσελίδα για να συνεχίσει τη συγκομιδή. Θα αποθηκεύει τα περιεχόμενα που κατέβασε σε τοπικά αντίγραφα που θα χρησιμοποιηθούν για τη δημιουργία του ευρετηρίου. Για την πειραματική εφαρμογή της συγκεκριμένης άσκησης θα πρέπει να κατεβάσετε τουλάχιστον 1000 σελίδες μεγέθους μεγαλύτερου των 40.000 χαρακτήρων. Το μέγεθος που αναφέρεται αφορά στον αριθμό των χαρακτήρων που κατεβάζει ο προσκομιστής από το περιεχόμενο της html και δεν θα κατεβάσετε ή θα συμπεριλάβετε εικόνες. Επίσης δεν είναι μέγεθος καθαρού κειμένου, αλλά μέγεθος συνολικά, μαζί με την html σήμανση. Οποιαδήποτε σελίδα κατεβαίνει και είναι μικρότερη από το παραπάνω όριο δεν θα αποθηκεύεται και δεν συμπεριλαμβάνεται στη συλλογή. Τα σημεία που πρέπει να προσεχθούν είναι τα εξής: Ο προσκομιστής δεν πρέπει να επισκέπτεται δύο φορές την ίδια ιστοσελίδα, καθώς αυτό μπορεί να τον οδηγήσει σε ατέρμονο βρόγχο. Θα πρέπει να κατεβάζετε σελίδες html και όχι άλλου τύπου, όπως pdf, doc, xls, php, js κλπ, καθώς απαιτείται παραπάνω επεξεργασία για την εξαγωγή καθαρού κειμένου από αυτές. Ο προσκομιστής θα ξεκινά έχοντας πέντε σελίδες στη διάθεσή του για να αρχίσει να κατεβάζει. Τις πέντε σελίδες εκκίνησης θα τις επιλέξετε εσείς, φροντίζοντας να περιέχουν κείμενο και να είναι στα αγγλικά. Όταν ο προσκομιστής επιχειρεί να κατεβάσει το περιεχόμενο ενός url, θα κάνει timeout σε 2 δευτερόλεπτα αν ο server δεν ανταποκρίνεται. Αν συμβεί το timeout θα συνεχίζει σε επόμενο url. Μην τρέξετε τον προσκομιστή με timeout περισσότερο από 2 δευτερόλεπτα! Για τις σελίδες εκκίνησης και τις σελίδες που κατεβάζει ο προσκομιστής ισχύουν οι εξής περιορισμοί: o Όλες οι σελίδες πρέπει να ανήκουν σε domain που είναι.com. o Απαγορεύεται να κάνετε crawling σε σελίδες του domain acm.org. o Απαγορεύεται να κάνετε crawling σε σελίδες που ανήκουν σε domain.gov. o Απαγορεύεται να κάνετε crawling σε σελίδες της Wikipedia. o Αγνοείστε εντελώς σελίδες σε domains.gr, καθώς οι σελίδες εκεί είναι ως επί το πλείστον ελληνικές. Μην ακολουθείτε link από αυτές τις σελίδες ακόμα και αν είναι.com, γιατί θα σας οδηγήσουν πιθανότατα στο ελληνικό web. Αν θέλετε να συμπεριλάβετε επιπλέον περιορισμούς στον προσκομιστή σας έτσι ώστε να περιοριστεί σε domains που έχουν σελίδες αγγλικές και με μεγαλύτερα κείμενα, μπορείτε, αρκεί να αναφέρετε τις επιλογές σας στην αναφορά. Προσοχή! Μην τρέξετε τον προσκομιστή για πολύ ώρα και πολλά downloads αν δεν είστε σίγουροι ότι έχετε υλοποιήσει όλα τα παραπάνω, καθώς μπορούν να προκύψουν νομικά προβλήματα που εμπλέκουν όλο το πανεπιστήμιο και επίσης κινδυνεύετε να κατεβάσετε ιό!

2 ο Προεπεξεργασία Το συγκεκριμένο υποσύστημα εξάγει το καθαρό κείμενο από τις ιστοσελίδες που συγκεντρώσατε και εφαρμόζει tokenization ώστε στο tokenized κείμενο που προκύπτει να εμφανίζεται μια λέξη ανά γραμμή ή ένα σημείο στίξης ανά γραμμή. Οι επιλογές σας στο tokenization θα πρέπει να στοχεύουν στην μεγαλύτερη δυνατή απόδοση του μορφοσυντακτικού αναλυτή. 3 ο Μορφοσυντακτική Ανάλυση. Σχολιάστε μορφοσυντακτικά τις λέξεις του κάθε tokenized κειμένου. Για το μορφοσυντακτικό σχολιασμό χρησιμοποιήστε κάποιον από τους προτεινόμενους PoS-Taggers (ανάλογα με το περιβάλλον υλοποίησης που έχετε επιλέξει) που θα κατεβάσετε από το site του μαθήματος. Στο τέλος της μορφοσυντακτικής ανάλυσης κάθε κείμενο της συλλογής ιστοσελίδων θα διαθέτει μορφοσυντακτικό σχολιασμό (PoS-tags) για κάθε λέξη που περιέχει. Τα μορφοσυντακτικά σχολιασμένα κείμενα της συλλογής θα πρέπει να αποθηκευτούν σε βοηθητικό-ενδιάμεσο αρχείο για μελλοντική χρήση. 4 ο Αναπαράσταση ιστοσελίδων στο Μοντέλο Διανυσματικού Χώρου. Για να αναπαραστήσετε το περιεχόμενο κάθε κειμένου ως διάνυσμα θα χρησιμοποιήσετε τα μορφοσυντακτικά σχολιασμένα κείμενα (που θα προκύψουν από την έξοδο της μορφοσυντακτικής ανάλυσης) και αρχικά θα αφαιρέσετε τους τερματικούς όρους (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. Αφού αφαιρέσετε τους τερματικούς όρους από κάθε κείμενο της συλλογής, στη συνέχεια για κάθε μοναδικό λήμμα του κειμένου θα μετρήσετε τη συχνότητα εμφάνισής του στο κείμενο (πόσες φορές εμφανίζεται το λήμμα και όχι η λέξη). 5 ο Δημιουργία του ευρετηρίου. Στην φάση αυτή της υλοποίησης θα ολοκληρώνεται η κατασκευή του ανεστραμμένου ευρετηρίου. Για ολόκληρη τη συλλογή ιστοσελίδων που έχετε συγκεντρώσει, θα εντοπίζονται τα μοναδικά λήμματα, καθώς και τα κείμενα στα οποία εμφανίζεται το κάθε λήμμα. Θα δημιουργείται η αντίστοιχη εγγραφή στο ανεστραμμένο ευρετήριο και θα υπολογίζονται τα αντίστοιχα βάρη. Το βάρος του κάθε λήμματος για ένα κείμενο αντιπροσωπεύει το βαθμό σπουδαιότητας του λήμματος για το συγκεκριμένο κείμενο και θα το υπολογίσετε χρησιμοποιώντας τη μετρική TD-IDF. 6 ο Αποθήκευση και επαναφόρτωση ευρετηρίου. Θα υλοποιήσετε τις απαραίτητες συναρτήσεις έτσι ώστε να είναι δυνατή η αποθήκευση και η επαναφόρτωση του ανεστραμμένου ευρετηρίου.

Το ευρετήριό σας θα αποθηκεύεται στην ακόλουθη XML μορφή: <inverted_index> <lemma name= orange > </lemma> <document id= weight= 0.4 /> <document id= weight= 0.34 /> <lemma name= apple > </lemma> </inverted_index> <document id= weight= 0.65 /> <document id= weight= 0.87 /> <document id= weight= 0.45 /> Επίσης θα υπάρχει δυνατότητα ανάγνωσης ενός αρχείου με τη συγκεκριμένη μορφή και φόρτωσης των περιεχομένων στη δομή του ανεστραμμένου ευρετηρίου. Στόχος είναι να μην επαναλαμβάνεται κάθε φορά η κατασκευή του ευρετηρίου, αλλά να είναι δυνατή η απευθείας φόρτωσή του κατά τη φάση της αξιολόγησης. 7 ο Αξιολόγηση ευρετηρίου. Υλοποιήστε έναν απλό μηχανισμό υποβολής ερωτημάτων στο ευρετήριο σας. Ο μηχανισμός θα δέχεται input από τον χρήστη ένα ερώτημα (που θα αποτελείται από ένα ή περισσότερα λήμματα), το οποίο θα ταυτοποιεί (με χρήση string matching) στα λήμματα του ευρετηρίου και θα επιστρέφει στο χρήστη τα urls των ιστοσελίδων τα οποία περιέχουν το λήμμα ή τα λήμματα του ερωτήματος. Η λίστα των ιστοσελίδων που θα επιστρέφεται θα πρέπει να είναι ταξινομημένη σε φθίνουσα σειρά με βάση το TF-IDF βάρος που έχει το λήμμα του ερωτήματος για το κάθε κείμενο. Αν το ερώτημα έχει περισσότερα από ένα λήμματα, η ταξινόμηση θα γίνεται με βάση το άθροισμα των βαρών των λημμάτων που εντοπίστηκαν στο κείμενο. Θα μετρήσετε το μέσο χρόνο απόκρισης του ευρετηρίου σας, υποβάλλοντας 10 ερωτήματα της μιας λέξης, 4 ερωτήματα των δύο λέξεων και 1 των τριών λέξεων σε αυτό. Θα μετρήσετε το συνολικό χρόνο και θα διαιρέσετε με τον αριθμό των ερωτημάτων για να υπολογίσετε το μέσο χρόνο απόκρισης. Αν οι χρόνοι είναι πολύ μικροί για να μετρηθούν, επαναλάβατε πολλές φορές πριν υπολογίσετε το μέσο χρόνο και διαιρέστε το συνολικό χρόνο με τις φορές επανάληψης του πειράματος επί τον αριθμό των ερωτημάτων.

Παραδοτέα 1. Ο πηγαίος κώδικας όλων των παραπάνω υποσυστημάτων. Ο σχολιασμός του κώδικα να γίνει απαραίτητα σε επίπεδο συναρτήσεων (λειτουργία, ορίσματα, έξοδος) αλλά και εσωτερικά των συναρτήσεων όπου κρίνεται αναγκαίο για να γίνει κατανοητός. 2. Μια σύντομη αναφορά που θα περιέχει τα αποτελεσματα των μετρήσεων που απαιτούνται από την άσκηση. Επίσης για κάθε ένα από τα υποσυστήματα που περιγράφονται, θα συμπεριλάβετε για τη βασική λειτουργία ένα σχόλιο για το κατά πόσον χρησιμοποιήσατε έτοιμη υλοποίηση (πχ από το NLTK) ή υλοποιήσατε τη μέθοδο εσείς. 3. Μετρήστε και καταγράψτε στην αναφορά τα ακόλουθα στοιχεία για τη συλλογή που συγκεντρώσατε: a. Αριθμός ιστοσελίδων b. Μέσο μέγεθος (σε χαρακτήρες) της συλλογής c. Μέσο μέγεθος καθαρού κειμένου (σε χαρακτήρες) της συλλογής 4. Μετρήστε και καταγράψτε στην αναφορά το συνολικό χρόνο κατασκευής του ανεστραμμένου ευρετηρίου, από τη στιγμή που ολοκληρώνεται η μορφοσυντακτική ανάλυση μέχρι τη στιγμή που είναι έτοιμο για αποθήκευση. 5. Καταγράψτε στην αναφορά το μέσο χρόνο απόκρισης του ευρετηρίου, όπως τον μετρήσατε στην πειραματική αξιολόγησή του που περιγράφεται παραπάνω. 6. Το αρχείο XML που θα περιέχει το ανεστραμμένο ευρετήριο. 7. Ένα αρχείο με μια λίστα από τα urls που αποτελούν τη συλλογή σας.