SlideShare a Scribd company logo
1 of 57
Download to read offline
ΕΘΝΙΚΟ ΚΑΙ ΚΑΠΟΔΙΣΤΡΙΑΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ
ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ
ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΤΗΛΕΠΙΚΟΙΝΩΝΙΩΝ
ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ
Αυτόματη ανάκτηση παγκόσμιας ειδησεογραφίας και
κατηγοριοποίηση της με χρήση εξαγόμενων μέτα-δεδομένων
Ιάσων Γ. Παπαπαναγιωτάκης-Μπουσύ
Αριστοτέλης Χ. Κωτσομητόπουλος
Επιβλέπουσα: Ιζαμπώ Καράλη, Επίκουρη Καθηγήτρια
ΑΘΗΝΑ
ΙΟΥΛΙΟΣ 2015
ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ
Αυτόματη ανάκτηση παγκόσμιας ειδησεογραφίας και κατηγοριοποίηση της με χρήση
εξαγόμενων μέτα-δεδομένων
Ιάσων Γ. Παπαπαναγιωτάκης-Μπουσύ
Α.Μ.: 1115201000201
Αριστοτέλης Χ. Κωτσομητόπουλος
Α.Μ.: 1115201000048
Επιβλέπουσα: Ιζαμπώ Καράλη, Επίκουρη Καθηγήτρια
ΠΕΡΙΛΗΨΗ
Η εργασία αυτή ασχολείται με την κατασκευή ενός συστήματος για την αυτόματη
ανάκτηση άρθρων παγκόσμιας ειδησεογραφίας, την εξαγωγή πληροφοριών από αυτά και
την κατηγοριοποίηση τους σε θεματικές ενότητες με όσο το δυνατό μεγαλύτερη
σημασιολογική συνάφεια. Για την διεκπεραίωση αυτής της εργασίας ασχοληθήκαμε τόσο
με τεχνικά προβλήματα όπως αυτά που παρουσιάζονται για την αυτόματη ανάκτηση
άρθρων από το διαδίκτυο όσο και με την διερεύνηση των επιστημονικών πεδίων της
επεξεργασίας φυσικής γλώσσας και εξαγωγής μέτα-πληροφοριών.
Για την κατασκευή του συστήματος αξιολογήσαμε πολλές τεχνολογίες και εργαλεία
και το σύστημα πέρασε πολλά στάδια και κατευθύνσεις κάποιες από τις οποίες αργότερα
χρειάστηκε να αναθεωρήσουμε. Αυτό πιστεύουμε ότι μας οδήγησε στην δημιουργία ενός
ώριμου και λειτουργικού συστήματος.
Καταλήγουμε σε πολύ καλά αποτελέσματα ως προς την ποιότητα των θεματικών
ομάδων που δημιουργούνται. Στην περίπτωση μας θεωρούμε ότι μια θεματική ομάδα
είναι καλή όταν περιέχει όσο το δυνατόν περισσότερα άρθρα που πραγματεύονται το ίδιο
θέμα χωρίς την παρουσία άσχετων άρθρων καθώς επίσης και η θεματική ενότητα να
αντιπροσωπεύει ένα γεγονός. Τέλος το σύστημα μας παρουσιάζει μεγάλους χρόνους
εκτέλεσης κάτι το οποίο αιτιολογούμε αλλά και προτείνουμε μελλοντικές κατευθύνσεις για
την βελτίωση του.
ΘΕΜΑΤΙΚΗ ΠΕΡΙΟΧΗ: Ανάκτηση Πληροφορίας, Επεξεργασία Φυσικής Γλώσσας
ΛΕΞΕΙΣ ΚΛΕΙΔΙΑ: παγκόσμια ειδησεογραφία, εξόρυξη γνώσης, κατηγοριοποίηση,
μοντέλο διανυσματικού χώρου, διαδίκτυο
ABSTRACT
This work deals with the construction of a system for the automatic retrieval of
global news articles, extracting information from them and categorize them into thematic
sections with the greatest possible semantic similarity. For carrying out this task we dealt
both with technical problems such as the ones presented when automatically retrieving
articles from around the Web and exploring the scientific fields of natural language
processing and meta-information extraction.
To build the system we evaluated multiple technologies and tools and the system
went through several phases and directions some of which later on we had to review.
This we believe has led us to create a mature and well operating system.
We have very good results in terms of quality of thematic groups created. In our
case we consider a thematic group is good when it has as many articles as possible that
deal with the same theme without the presence of irrelevant articles as well as they are
all closely related to a single fact. Finally our system presents major execution times
which we justify and recommend future directions for improvement.
SUBJECT AREA: Information Extraction, Natural Language Processing
KEYWORDS: world news, knowledge mining, categorization, vector space model,
internet
Στις οικογένειες μας
ΕΥΧΑΡΙΣΤΙΕΣ
Θα θέλαμε να ευχαριστήσουμε πρωτίστως την κα. Ιζαμπώ Καράλη για την βοήθεια και
καθοδήγηση της που την πρόσφερε απλόχερα κατά την διάρκεια ανάπτυξης αυτής της
πτυχιακής εργασίας. Επίσης, θα θέλαμε να ευχαριστήσουμε τους φίλους μας που μας
ενθάρρυναν να συνεχίζουμε και να μην παραιτούμαστε στις δυσκολίες. Τέλος, θα θέλαμε
να ευχαριστήσουμε τις οικογένειες μας για την μόνιμη στήριξη, βοήθεια και αγάπη καθ'
ολη την διάρκεια των σπουδών μας.
ΠΕΡΙΕΧΟΜΕΝΑ
1.ΕΙΣΑΓΩΓΗ......................................................................................................................13
1.1 Αντικείμενο της εργασίας ........................................................................................13
1.2 Διάρθρωση της εργασίας........................................................................................14
2.ΘΕΩΡΗΤΙΚΟ ΥΠΟΒΑΘΡΟ............................................................................................15
2.1 Εξαγωγή πληροφοριών ..........................................................................................15
2.2 Επεξεργασία φυσικής γλώσσας .............................................................................16
2.2.1 Συντακτική ανάλυση.........................................................................................16
2.2.2 Σημασιολογική ανάλυση...................................................................................17
2.3 Μοντέλο διανυσματικού χώρου ..............................................................................17
2.3.1 TF-IDF ..............................................................................................................17
2.3.2 Cosine Similarity...............................................................................................18
2.4 Υπάρχουσα έρευνα στον τομέα των παγκόσμιων νέων........................................18
2.4.1 Αναπαράσταση Γνώσης...................................................................................18
2.4.2 Big Data............................................................................................................20
2.4.3 Social Engineering ...........................................................................................21
2.5 Σχετικές έρευνες......................................................................................................21
3. ΠΕΡΙΓΡΑΦΗ ΣΥΣΤΗΜΑΤΟΣ .......................................................................................22
3.1 Προδιαγραφές του συστήματος..............................................................................22
3.2 Αρχιτεκτονική του συστήματος ...............................................................................23
3.3 Υλοποίηση του συστήματος ...................................................................................25
3.3.1 Εργαλεία ...........................................................................................................26
3.3.2 Συλλογή άρθρων..............................................................................................27
3.3.3 Εξαγωγή μέτα-δεδομένων ...............................................................................29
3.3.4 Ομαδοποίηση άρθρων.....................................................................................32
4. ΠΕΙΡΑΜΑΤΙΚΑ ΑΠΟΤΕΛΕΣΜΑΤΑ...............................................................................36
4.1 Προδιαγραφές περιβάλλοντος δοκιμών .................................................................36
4.2 Συλλογή άρθρων από το διαδίκτυο ........................................................................36
4.3 Ομαδοποίηση άρθρων............................................................................................37
4.3.1 Γεωγραφική ομαδοποίηση...............................................................................38
4.3.2 Ομαδοποίηση με βάρος στα άτομα .................................................................39
4.3.3 Ομαδοποίηση με βάρος στο κείμενο ...............................................................41
5. ΟΔΗΓΟΣ ΧΡΗΣΗΣ........................................................................................................43
5.1 Εγκατάσταση...........................................................................................................43
5.2 Χρήση......................................................................................................................44
6. ΣΥΜΠΕΡΑΣΜΑΤΑ ........................................................................................................46
6.1 Σχόλια πάνω στο σύστημα .....................................................................................46
6.2 Μελλοντικές κατευθύνσεις ......................................................................................48
ΠΙΝΑΚΑΣ ΟΡΟΛΟΓΙΑΣ ....................................................................................................50
ΑΡΚΤΙΚΟΛΕΞΑ.................................................................................................................51
ΠΑΡΑΡΤΗΜΑ I..................................................................................................................52
ΠΑΡΑΡΤΗΜΑ II.................................................................................................................53
ΠΑΡΑΡΤΗΜΑ ΙΙΙ................................................................................................................54
ΒΙΒΛΙΟΓΡΑΦΙΑ .................................................................................................................55
ΚΑΤΑΛΟΓΟΣ ΕΙΚΟΝΩΝ
Εικόνα 1: Στάδια επεξεργασίας φυσικής γλώσσας………………………………………….16
Εικόνα 2: Σχηματική αναπαράσταση του συστήματος……………………………………..23
Εικόνα 3: Αναπαράσταση του συστήματος ως άθροισμα δύο προγραμμάτων…..….….23
Εικόνα 4: Ενδεικτικό input στο Java πρόγραμμα………………………...………………….27
Εικόνα 5: Κλάση Article………………………………………………………………………..27
Εικόνα 6: Κλάση Site…………………………………………………………………………..27
Εικόνα 7: Κλάση NewsArticle…………………………………………………………………29
Εικόνα 8: Κλάση NewsAggregator……………………………………………………………32
Εικόνα 9: Κλάση Classifier……………………………………………….……………………32
Εικόνα 10: Αλγόριθμος Add Article…………………………………………………………...33
Εικόνα 11: Αλγόριθμος Add Topic……………………………………………………………34
Εικόνα 12: Αλγόριθμος Classify Article………………………………………………………35
Εικόνα 13: Χρόνος ανάκτησης άρθρων…………………………………………….………..36
Εικόνα 14: Αποτελέσματα γεωγραφικής ομαδοποίησης με 35% ομοιότητα…………….38
Εικόνα 15: Αποτελέσματα γεωγραφικής ομαδοποίησης με 50% ομοιότητα……...……..38
Εικόνα 16: Αποτελέσματα ατομικής ομαδοποίησης με 35% ομοιότητα………...………..34
Εικόνα 17: Αποτελέσματα ατομικής ομαδοποίησης με 50% ομοιότητα………….………39
Εικόνα 18: Αποτελέσματα ομαδοποίησης κειμένου με 35% ομοιότητα………….……….41
Εικόνα 19: Αποτελέσματα ομαδοποίησης κειμένου με 50% ομοιότητα…………..………41
Εικόνα 20: Ενδεικτικό αρχείο RSS_feeds.txt………………………………………………..44
Εικόνα 21: Αρχείο properties.ini……………………………….………………….…………..44
Εικόνα 22: Αύξηση χρόνου κατηγοριοποίησης……………………………………………..46
Εικόνα 23: Κωδικοί λάθους GeoNames……………………………………………………..54
ΠΡΟΛΟΓΟΣ
Αυτή η πτυχιακή εργασία αποτελεί το τελευταίο πόνημα των συγγραφέων για την λήψη
των πτυχίων τους. Η συγγραφή της έλαβε χώρα στην Καλλιθέα και στον Άλιμο της Αθήνας
κατά την διάρκεια του ακαδημαϊκού έτους 2014-2015.
Για την παρούσα πτυχιακή εργασία επιλέξαμε ένα μη τετριμμένο θέμα, που η λύση του
θα αποτελούσε πρόκληση καθώς σε όλη την διάρκεια των σπουδών μας μας άρεσαν και
μας εξίταραν οι προκλήσεις και ιδιαίτερα στο να κατασκευάζουμε καινοτόμα έξυπνα
συστήματα και προγράμματα. Η ομαδικότητα μας βοήθησε στο να συνδυάσουμε τις
γνώσεις μας από διάφορους επιστημονικούς τομείς ώστε το αποτέλεσμα να είναι όσο το
δυνατόν καλύτερο και αποδοτικό.
Αυτόματη ανάκτηση παγκόσμιας ειδησεογραφίας και κατηγοριοποίηση της με χρήση εξαγόμενων μέτα-δεδομένων
13
Ι.Παπαπαναγιωτάκης-Μπουσύ, Α.Κωτσομητόπουλος
1.ΕΙΣΑΓΩΓΗ
1.1 Αντικείμενο της εργασίας
Με την εξάπλωση του διαδικτύου η διαθέσιμη πληροφορία που υπάρχει σε αυτό
αυξάνεται εκθετικά τα περασμένα χρόνια και προβλέπετε να συνεχίσει με ακόμα
ταχύτερους ρυθμούς. Ένας από τους τομείς που έχουν αλλάξει δραστικά λόγω της
μεταβολής αυτής είναι και ο τομέας της ειδησεογραφίας. Πλέον τα ειδησεογραφικά
πρακτορεία χρησιμοποιούν κατά κόρον το διαδίκτυο για να διαδώσουν τα νέα αφήνοντας
τους χρήστες να επισκεφτούν την ιστοσελίδα τους για να ενημερωθούν. Σε αυτό το
μοντέλο, ο χρήστης πρέπει να ψάξει για την πληροφορία που τον ενδιαφέρει διαδικασία
που μπορεί να απαιτήσει από αυτόν να επισκεφτεί πολλαπλές ιστοσελίδες και
ενδεχομένως να μη βρει αυτό που θέλει.
Στο πρόβλημα αυτό έχουν προτείνει λύσεις διάφορες εταιρίες με εφαρμογές που
συγκεντρώνουν άρθρα από πολλά RSS feeds, η λύση αυτή όμως αποφέρει πολύ γενικά
αποτελέσματα, δηλαδή οι κατηγορίες είναι πολύ ευρείες π.χ. κόσμος, αθλητικά,
ψυχαγωγία και η κατηγοριοποίηση δεν γίνεται με βάση το κείμενο των άρθρων αλλά με
τη διαθέσιμη γενική σήμανση (annotation) από το ειδησεογραφικό πρακτορείο. Μια άλλη
προσέγγιση είναι η χρήση ανθρώπων για την κατηγοριοποίηση των άρθρων.
Παρά την προσπάθεια διεθνών οργανισμών όπως το International Press
Telecommunications Council (IPTC) να εισάγουν πρότυπα για την σήμανση των
ειδησεογραφικών άρθρων με τέτοιο τρόπο ώστε να είναι ευκολότερη αναζήτηση σε αυτά
από αυτόματα συστήματα, δεν έχει επιτευχθεί κάποιος τρόπος «εξυπνότερης» σήμανσης
που να επιτρέπει ένα επίπεδο συλλογισμού και εξαγωγής μοναδικής πληροφορίας.
Στην εργασία μας προσπαθούμε να επιλύσουμε το πρόβλημα της αυτόματης
ομαδοποίησης άρθρων παγκόσμιας ειδησεογραφίας, προσφέροντας στον τελικό χρήστη
τα άρθρα από μεγάλο αριθμό ιστοσελίδων κατηγοριοποιημένα με βάση κάποια κριτήρια
ομοιότητας. Προσπαθούμε η κατηγοριοποίηση να είναι όσο το δυνατό καλύτερη έτσι ώστε
κάθε κατηγορία να αναπαριστά το ίδιο συμβάν. Τέλος, παρουσιάζουμε αυτές τις θεματικές
ενότητες σε φθίνουσα σειρά ως προς την δημοτικότητα τους.
Για την διεκπεραίωση της εργασίας ερευνήσαμε τους επιστημονικούς τομείς της
εξαγωγής πληροφοριών και επεξεργασίας φυσικής γλώσσας.
Οι προκλήσεις που αντιμετωπίσαμε χωρίζονται σε τρείς κυρίως άξονες, η ανάκτηση
των άρθρων από τις ειδησεογραφικές ιστοσελίδες, η εξαγωγή μέτα-δεδομένων από τα
άρθρα και τέλος η συσχέτιση των άρθρων μεταξύ τους.
 Αρχικά, υπάρχει η δυσκολία της ανάκτησης ολόκληρου του άρθρου και η αποφυγή
όλων των περεταίρω πληροφοριών στην ιστοσελίδα όπως διαφημίσεις και μενού.
Το πρόβλημα αυτό εντείνεται από την ανομοιογένεια των ιστοτόπων (websites)
και από την προστασία που έχουν για κακόβουλες επιθέσεις μέσω bots.
 Σχετικά με την εξαγωγή μέτα-δεδόμενων υπήρξε αρχικά ο προβληματισμός για το
ποια θα είναι τα μέτα-δεδομένα αυτά έτσι ώστε να αναπαριστούν όσο καλύτερα
γίνεται τα άρθρα παγκόσμιας ειδησεογραφίας και έπειτα πως θα γίνει η εξαγωγή
τους.
 Τέλος, όσον αφορά την συσχέτιση των άρθρων μεταξύ τους κληθήκαμε να
επιλέξουμε τον καλύτερο τρόπο για τον υπολογισμό του μέτρου της ομοιότητας
μεταξύ των μέτα-δεδομένων για κάθε ζευγάρι άρθρων.
Αυτόματη ανάκτηση παγκόσμιας ειδησεογραφίας και κατηγοριοποίηση της με χρήση εξαγόμενων μέτα-δεδομένων
14
Ι.Παπαπαναγιωτάκης-Μπουσύ, Α.Κωτσομητόπουλος
1.2 Διάρθρωση της εργασίας
Η εργασία ξεκινάει από το κεφάλαιο 2 το οποίο καλύπτει το απαραίτητο θεωρητικό
υπόβαθρο του ευρύτερου επιστημονικού πεδίου ανάκτησης πληροφορίας από κείμενο
και επεξεργασίας φυσικής γλώσσας, τα απαραίτητα εργαλεία για την σύγκριση άρθρων
καθώς και διερεύνηση της περιοχής της παγκόσμιας ειδησεογραφίας. Έπειτα, στο
κεφάλαιο 3, αναλύετε η δική μας προσέγγιση, παρουσιάζετε η αρχιτεκτονική του
συστήματος που φτιάξαμε και εξηγούνται οι επιμέρους λειτουργίες του. Στη συνέχεια, στο
4ο
κεφάλαιο, παρουσιάζονται αποτελέσματα του συστήματος μας για πραγματικά
δεδομένα και γίνεται σχολιασμός αυτών. Το κεφάλαιο 5 είναι οδηγός για την πλήρη
εγκατάσταση και χρήση του συστήματος και τέλος στο κεφάλαιο 6 αναφέρουμε τα
συμπεράσματα μας και τα σημεία που μπορούν να βελτιωθούν περεταίρω και
κατευθύνσεις που ίσως αποφέρουν καλύτερα αποτελέσματα τις οποίες δεν προλάβαμε
να εξερευνήσουμε.
Αυτόματη ανάκτηση παγκόσμιας ειδησεογραφίας και κατηγοριοποίηση της με χρήση εξαγόμενων μέτα-δεδομένων
15
Ι.Παπαπαναγιωτάκης-Μπουσύ, Α.Κωτσομητόπουλος
2.ΘΕΩΡΗΤΙΚΟ ΥΠΟΒΑΘΡΟ
2.1 Εξαγωγή πληροφοριών
Εξαγωγή πληροφοριών (Information Extraction) ονομάζεται η αυτοματοποιημένη
ανάκτηση πληροφοριών και γνώσης από ημιδομημένα (semi-structured) και μη δομημένα
(unstructured) δεδομένα όπως κείμενα γραμμένα σε φυσική γλώσσα [1]. Η διαδικασία
αυτή είναι βασισμένη στις τεχνολογίες της επεξεργασίας του φυσικού λόγου (Natural
Language Processing - NLP), της μηχανικής μάθησης (machine learning), των βάσεων
δεδομένων (databases) και του διαδικτύου. Η εξαγωγή πληροφοριών χρησιμοποιείται
συνήθως για την αναγνώριση και εξαγωγή εξειδικευμένης πληροφορίας από διαφόρων
ειδών ηλεκτρονικά αρχεία όπως ιστοσελίδες. Η σημαντικότητα της μπορεί να φανεί από
τη διαφοροποίηση της από την απλή ανάκτηση πληροφοριών (Information retrieval) που
στοχεύει μέσω της αναζήτησης με βάση λέξεις-κλειδιά στην εύρεση των αρχείων κειμένου
που ενδέχεται να περιέχουν την λέξη αυτή. Αντιθέτως, η εξαγωγή δεδομένων στοχεύει
στην αναγνώριση και εξαγωγή της χρήσιμης πληροφορίας που αναπαριστά το εκάστοτε
αρχείο ως αντικείμενο κάποιας οντολογίας (ontology). Σημειώνεται ότι εδώ ο όρος
οντολογία χρησιμοποιείται ελεύθερα για την αναπαράσταση γνώσης και μπορεί να είναι
πολύ απλή π.χ. ένα επίπεδο σχεσιακό σχήμα βάσης δεδομένων.
Ένα από τα κύρια “προβλήματα” του διαδικτύου είναι ο τεράστιος όγκος
πληροφορίας που διακινείται σήμερα και η αδυναμία διαχείρισης της πληροφορίας αυτής.
Με τις τεχνικές της εξαγωγής πληροφοριών μπορούμε πλέον να χρησιμοποιήσουμε τη
δύναμη και εκφραστικότητα μιας γλώσσας ερωτημάτων όπως η SQL για να κάνουμε
αναζητήσεις πάνω στα δεδομένα, ακόμα και αν αυτά αρχικά ήταν μη δομημένα ή
ημιδομημένα.
H σχετική έρευνα έχει γίνει πιο εντατική τα τελευταία χρόνια. Συνεχώς προτείνονται
νέες μέθοδοι κατασκευής ανάλογων αρχιτεκτονικών και συστημάτων οι οποίες στοχεύουν
σε καλύτερες επιδόσεις και στην απλοποίηση της επέκτασης της λειτουργίας υπαρχόντων
συστημάτων σε νέους τομείς και νέες γλώσσες. Ενώ αρχικά η εξαγωγή πληροφοριών
βασιζόταν σε χειροποίητους ευρεσιτεχνικούς κανόνες [2], στην συνέχεια
χρησιμοποιήθηκαν τεχνικές τεχνητής νοημοσύνης για την εύρεση καλύτερων κανόνων
[3]. Καθώς η χρήση της εξαγωγής πληροφοριών εξαπλώθηκε και τα δεδομένα έγιναν
ακόμα πιο αδόμητα, αναπτύχθηκαν παράλληλα δύο μέθοδοι στατιστικής μάθησης,
πρώτον η χρήση κρυφών μοντέλων Markov [4] (Hidden Markov Models) και δεύτερον
μοντέλα μέγιστης εντροπίας με περιορισμούς [5]. Τέλος, για καθολική προσέγγιση του
θέματος χρησιμοποιούνται πιο πρόσφατα τεχνικές της κατασκευής γραμματικών [6]. Από
όλες αυτές τις τεχνικές δεν υπάρχει ξεκάθαρος νικητής και πολλές φορές
χρησιμοποιούνται συμπληρωματικά [7].
Η βελτίωση στην ποιότητα των αποτελεσμάτων είναι ραγδαία τα τελευταία χρόνια
αλλά έχει ακόμα πολλά περιθώρια βελτίωσης.
Αυτόματη ανάκτηση παγκόσμιας ειδησεογραφίας και κατηγοριοποίηση της με χρήση εξαγόμενων μέτα-δεδομένων
16
Ι.Παπαπαναγιωτάκης-Μπουσύ, Α.Κωτσομητόπουλος
2.2 Επεξεργασία φυσικής γλώσσας
Η επεξεργασία φυσικής γλώσσας είναι ο κλάδος της επιστήμης της πληροφορικής
που ασχολείται με ανάπτυξη τεχνικών για την ομαλή αλληλεπίδραση μεταξύ των
υπολογιστών και των ανθρώπινων γλωσσών [8]. Στην ευρύτερη έννοια της η επεξεργασία
φυσικής γλώσσας περιλαμβάνει την επεξεργασία σήματος και την αναγνώριση ομιλίας,
έννοιες που δεν θα μας απασχολήσουν, αντιθέτως θα επικεντρωθούμε στην συντακτική
και σημασιολογική ανάλυση. Τέλος, το πεδίο αυτό μπορεί να χωριστεί σε δύο μέρη, την
κατανόηση φυσικών γλωσσών και την παραγωγή φυσικού λόγου, εμείς θα εστιάσουμε
στο πρώτο που συχνά αποκαλείται και κατανόηση φυσικής γλώσσας (Natural language
understanding) [9, 10].
Στον πυρήνα της, η επεξεργασία φυσικής γλώσσας αποτελείται από τρία στάδια,
την διάσπαση του κειμένου σε λεξιλογικές μονάδες (tokenization), την συντακτική
ανάλυση και την σημασιολογική ανάλυση. Το πρώτο στάδιο είναι προεπεξεργασία της
εισόδου κατά την οποία το κείμενο «σπάει» σε λέξεις (tokens).
Εικόνα 1: Στάδια επεξεργασίας φυσικής γλώσσας
2.2.1 Συντακτική ανάλυση
Η συντακτική ανάλυση είναι αρκετά περίπλοκη διαδικασία. Έχουμε την τάση να
υποθέτουμε ότι ένας υπολογιστής θα μπορούσε δοθέντος ενός λεξικού λέξεων, μαζί με
το είδος του λόγου για κάθε μία, και τους κανόνες της γραμματικής, και με τη χρήση αυτών
των πληροφοριών να επεξεργαστεί μία πρόταση φυσικής γλώσσας. Αλλά αυτό δεν τόσο
απλό, κυρίως λόγω του προβλήματος της ασάφειας σε πολλά επίπεδα. Για να ερμηνεύσει
σωστά φράσεις φυσικής γλώσσας, το σύστημα δεν πρέπει μόνο να αναλύσει τις φράσεις
γραμματικά, αλλά επίσης να συσχετίσει τις λέξεις με πράγματα του κόσμου και με το
γενικό πλαίσιο της εμφάνισης της φράσης. Μπορεί να απαιτεί ακόμη και διαλεύκανση
οποιουδήποτε σημασιολογικού ζητήματος που εμποδίζει μια σωστή συντακτική ανάλυση.
Ξεκινώντας με μια πρόταση σε φυσική γλώσσα, το αποτέλεσμα της συντακτικής
ανάλυσης θα αποφέρει μια συντακτική αναπαράσταση σε μια γραμματική. Πρόκειται για
μορφή που συχνά εμφανίζεται ως δεντρικό διάγραμμα. Αυτός ο τύπος συντακτικής
αναπαράστασης θα μπορούσε επίσης να ονομαστεί «δομικής περιγραφής» (structural
description). Η συντακτικές αναπαραστάσεις της γλώσσας χρησιμοποιούν γραμματικές
χωρίς συμφραζόμενα (context-free grammars), που παρουσιάζουν τις φράσεις ως μέρη
άλλων φράσεων σε κάτι που θα μπορούσε να θεωρηθεί μια μορφή χωρίς συμφραζόμενα
(context-free form).
Αυτόματη ανάκτηση παγκόσμιας ειδησεογραφίας και κατηγοριοποίηση της με χρήση εξαγόμενων μέτα-δεδομένων
17
Ι.Παπαπαναγιωτάκης-Μπουσύ, Α.Κωτσομητόπουλος
2.2.2 Σημασιολογική ανάλυση
Μετά την συντακτική ανάλυση, η σημασιολογική ανάλυση θα αποφέρει τη λογική
μορφή της φράσης. Η λογική μορφή χρησιμοποιείται για να συλλάβει τη σημασιολογική
σημασία και απεικονίζει την έννοια ανεξάρτητα από οποιοδήποτε πλαίσιο. Η διαδικασία
που ακολουθείται είναι πέραν του σκοπού αυτής της εργασίας και αποτελεί ανοικτό
ενεργό πεδίο έρευνας. Συνοπτικά, με την χρήση μια παραπλήσιας γλώσσας με την λογική
πρώτης τάξης (First order predicate calculus) εφαρμόζονται αυτές οι κανονικές εκφράσεις
που αναπαριστούν κάποια πρότυπα (templates). Τέλος, γίνεται συνδυασμός αυτών των
προτύπων σε μία συνολική αναπαράσταση, την λογική μορφή της πρότασης.
Αναφέρεται επίσης πως μερικοί επιστήμονες ξεχωρίζουν ένα ακόμα στάδιο που
αποκαλούν Pragmatics κατά το οποίο αποσαφηνίζονται σημασιολογικές ανακρίβειες με
βάση το πλαίσιο αναφοράς στο οποίο βρίσκονται. Συχνά αυτό καθιστά το τελευταίο
στάδιο της σημασιολογικής ανάλυσης.
2.3 Μοντέλο διανυσματικού χώρου
Το μοντέλο διανυσματικού χώρου (Vector space model) είναι ένας αλγεβρικός
τρόπος αναπαράστασης κειμένων που χρησιμοποιείται σε τομείς όπως η εξαγωγή
πληροφοριών και η ομοιότητα κειμένων (text similarity) [11]. Κατά το μοντέλο αυτό, κάθε
κείμενο αναπαρίσταται ως ένα διάνυσμα του οποίου κάθε διάσταση αντιστοιχεί σε έναν
όρο. Η τιμή (βάρος) που παίρνει κάθε διάσταση καθορίζεται από μία συνάρτηση, πιο
γνωστή απ’ όλες είναι η term frequency-inverse document frequency εν συντομία tf-idf.
Με αντίστοιχο τρόπο αναπαρίστανται και τα ερωτήματα σαν διανύσματα και έπειτα
υπάρχουν διάφοροι τρόποι εύρεσης της απόστασης ενός ερωτήματος από ένα κείμενο.
2.3.1 TF-IDF
Το term frequency – inverse document frequency είναι ένας στατιστικός τρόπος για
τον υπολογισμό της σημαντικότητας μίας λέξης σε ένα κείμενο [12] . Όπως φαίνεται και
από το όνομα του όρου χωρίζεται σε δύο κομμάτια.
1. Term frequency, υπολογίζει την συχνότητα εμφάνισης μίας λέξης σε ένα κείμενο.
Η χρήση αυτού βασίζεται στην υπόθεση του Hans Peter Luhn [13] κατά την οποία
το βάρος ενός όρου σε ένα κείμενο είναι ανάλογο της συχνότητας εμφάνισης του.
2. Inverse document frequency, υπολογίζει την συχνότητα εμφάνισης λέξεων σε δύο
κείμενα έτσι ώστε οι λέξεις που εμφανίζονται συχνά σε όλα τα κείμενα (π.χ. τα
άρθρα) να μην έχουν μεγάλο βάρος.
Ο συνδυασμός των δύο παραπάνω δίνει μία πολύ καλή μετρική για το βάρος μίας λέξης
μέσα σε ένα κείμενο.
Αυτόματη ανάκτηση παγκόσμιας ειδησεογραφίας και κατηγοριοποίηση της με χρήση εξαγόμενων μέτα-δεδομένων
18
Ι.Παπαπαναγιωτάκης-Μπουσύ, Α.Κωτσομητόπουλος
2.3.2 Cosine Similarity
Η απόσταση συνημίτονου (cosine similarity) είναι ένα μέτρο ομοιότητας δύο
διανυσμάτων. Υπολογίζει την γωνία μεταξύ τους. Δύο ίδια διανύσματα που άρα έχουν
μεταξύ τους γωνία ίση με το μηδέν έχουν απόσταση συνημίτονου ίση με 1. Κάθε άλλη
γωνία έχει τιμή ≤ |1|. Η μετρική αυτή χρησιμοποιείται πολύ συχνά σε συνδυασμό με το
tf-idf που περιγράφηκε στην προηγούμενη παράγραφο για τον υπολογισμό της
ομοιότητας μεταξύ δύο κειμένων. Συχνά συναντάται και ως αντίστροφη απόσταση
συνημίτονου (inverse cosine similarity) κατά την οποία η απόσταση ενός διανύσματος
από τον εαυτό του είναι μηδέν και η απόσταση κάθετων διανυσμάτων είναι 1.
2.4 Υπάρχουσα έρευνα στον τομέα των παγκόσμιων νέων
Η παγκόσμια ειδησεογραφία είναι πλούσιος τομέας με εκατοντάδες πρακτορεία
και εφημερίδες σε όλον τον κόσμο να συνεισφέρουν καθημερινά σε ένα τεράστιο ποσό
πληροφορίας η οποία είναι πλέον διαθέσιμη μέσω του διαδικτύου. Παρά τις προσπάθειες
που έχουν γίνει για δημιουργία προτύπων για την σήμανση των άρθρων, έτσι ώστε να
μπορούν να κατηγοριοποιηθούν αυτόματα τα αποτελέσματα δεν είναι ικανοποιητικά.
Περιορίζονται σε γενικές κατηγορίες π.χ. κόσμος, αθλητικά και ψυχαγωγία.
Το πρόβλημα αυτό υπάρχει για δύο σχετιζόμενους λόγους. Πρώτον, δεν
υπάρχουν τα κατάλληλα εργαλεία για την αυτοματοποίηση της σήμανσης ενός άρθρου
με μέτα-δεδομένα που να μπορούν να το αναπαραστήσουν ως αναφορά μοναδικού
γεγονότος. Σε ειδικές περιπτώσεις, η δουλειά αυτή ανατίθεται σε άνθρωπο, αλλά αυτό
δεν μπορεί να γενικευθεί στο συνόλων των άρθρων. Δεύτερον, επειδή ακριβώς η
διαδικασία αυτή είναι πολύπλοκή και η προσφορά εξειδικευμένων μέτα-δεδομένων δεν
αποφέρει σημαντικά κέρδη στις εταιρίες αυτές, είτε δεν ασχολούνται με αυτό είτε κρατάνε
τα αποτελέσματα ιδιωτικά ως ανταγωνιστικό πλεονέκτημα.
Αυτό έχει οδηγήσει επιστήμονες να προσεγγίσουν το πρόβλημα αυτό από διάφορα
πεδία, στη συνέχεια παρουσιάζουμε μερικές αξιόλογες προσπάθειες.
2.4.1 Αναπαράσταση Γνώσης
Ένας τρόπος που έχει χρησιμοποιηθεί κατά κόρον σε αρκετές εφαρμογές για την
σύγκριση κειμένων και συγκεκριμένα στο πεδίο της ειδησιογραφίας είναι η προσέγγιση
με οντολογίες. Πριν μερικά χρόνια η μέθοδος αυτή θεωρείτο ως η κύρια και η
καταλληλότερη για την επίλυση του παραπάνω προβλήματος. Η οντολογία χρησιμοποιεί
συσχετίσεις και έννοιες για να εκπροσωπήσει την γνώση (λ.χ. στην περίπτωση μας
δεδομένα από ειδησεογραφικά άρθρα) με έναν ιεραρχικό τρόπο επιτρέποντας επιπλέον
εξαγωγή πληροφοριών από τον συλλογισμό πάνω σε αυτήν. Στην συνέχεια
χρησιμοποιούνται τεχνικές για εκτέλεση ερωτημάτων πάνω στα δεδομένα με παρόμοιο
τρόπο με την χρήση των βάσεων δεδομένων. Σημαντική δουλειά σε αυτό τον τομέα έχει
γίνει από το IPTC [14] με τη δημιουργία του NewsML-G2 [15] για την διευκόλυνση της δια
λειτουργικότητας πληροφοριακών συστημάτων σχετικά με την ειδησεογραφία. Η
προσέγγιση αυτή απαιτεί την επιλογή ενός στενού πεδίου εφαρμογής και την πολύ καλή
γνώση αυτού για τον σχεδιασμό μιας καλής οντολογίας, πράγμα που μπορεί να είναι
πολύ δύσκολο, και αν το πεδίο είναι δυναμικό η οντολογία θα χρειάζεται διαρκώς
ενημέρωση. Μερικές αξιοσημείωτες ερευνητικές προσπάθειες:
Αυτόματη ανάκτηση παγκόσμιας ειδησεογραφίας και κατηγοριοποίηση της με χρήση εξαγόμενων μέτα-δεδομένων
19
Ι.Παπαπαναγιωτάκης-Μπουσύ, Α.Κωτσομητόπουλος
 Οι Kalfoglou et al. με το myPlanet [16] παρουσιάζουν μια οντολογία με γνώμονα
ειδικευμένα web-services με επιπρόσθετες έξυπνες λειτουργίες σχετικά με τις
ειδήσεις. Συγκεκριμένα παρέχουν ελαφριά μέσα με την βοήθεια από οντολογίες που
θα έχουν εύκολη πρόσβαση και συντήρηση στα αποθηκευμένα αντικείμενα ειδήσεων
τα οποία θα απαρτίζουν μια πλούσια πηγή για ανταλλαγή πληροφοριών. Αναλύουν
και επεξεργάζονται τρόπους που θα μπορέσει να διαμοιραστεί η πληροφορία στους
χρήστες με βάση τις προσωπικές τους προτιμήσεις και τα ενδιαφέροντα τους σε
συγκεκριμένους τομείς. Αντιστοιχίζει τα αντικείμενα των πληροφοριών με τα
προσωπικά ενδιαφέροντα των χρηστών με την χρήση ευρεστικών συναρτήσεων.
 Η αυτόματη συμπλήρωση οντολογιών είναι δύσκολη και έτσι αυτές χρησιμοποιούνται
κυρίως από αυτούς που είναι σε θέση να την συμπληρώσουν χειρωνακτικά όπως
σημειώνεται από τους Norberto Fernandez-Garcıa και Luis Sanchez-Fernandez [17]
οι οποίοι στην εργασία τους παρουσιάζουν εργαλεία που θα καταστήσουν δυνατή την
εισαγωγή της σημασιολογικής (Semantic) διαδικτυακής τεχνολογίας στον επίσημο
δημοσιογραφικό χώρο με ένα αυτόματο μοντέλο με ανθρώπινη επίβλεψη.
Αναπτύσσονται οντολογίες για ειδησεογραφικές εφαρμογές και αναλύονται οι
προηγούμενες τεχνικές και απόπειρες επίτευξης αυτής της προσέγγισης, καθώς και
επίσης τα προβλήματα που υπήρξαν και που θα υπάρξουν στο μέλλον. Επιπρόσθετα
παρατίθενται λύσεις στα αναφερθέντα προβλήματα.
 Η Lena Tenenboim et al. ασχολήθηκαν με την δημιουργία του ePaper [18] που
ταξινομεί, ομαδοποιεί και διαχωρίζει ειδησεογραφικά άρθρα σε προσωπικές
διαδικτυακές εφημερίδες κυρίως για έξυπνα κινητά τηλέφωνα (Smartphones). Το
ePaper σύστημα ομαδοποιεί διαφορετικά άρθρα από ένα μεγάλο σύνολο παρόχων
ειδήσεων αξιοποιώντας αρκετές μεθόδους φιλτραρίσματος, όπως με βάση το
περιεχόμενο των κειμένων αλλά και την μεταξύ τους διασύνδεση. Το paper αναλύει
τον αυτοματοποιημένο τρόπο κατηγοριοποίησης των εισερχόμενων ειδήσεων βάσει
της ιεραρχικής οντολογίας ειδήσεων, που καταφέρνει να αντιστοιχίσει τα κατάλληλα
νέα ανάλογα με τις προτιμήσεις του εκάστοτε χρήστη της εφαρμογής. Το σύστημα
αυτό βασίζεται αποκλειστικά στα μέτα-δεδομένα που παρέχουν τα ειδησεογραφικά
πρακτορεία και δεν ασχολείται με την δημιουργία καινούργιας μέτα-πληροφορίας.
Αυτόματη ανάκτηση παγκόσμιας ειδησεογραφίας και κατηγοριοποίηση της με χρήση εξαγόμενων μέτα-δεδομένων
20
Ι.Παπαπαναγιωτάκης-Μπουσύ, Α.Κωτσομητόπουλος
2.4.2 Big Data
Μια πιο πρόσφατη προσέγγιση είναι η ανάπτυξη μέσω Εξόρυξης Δεδομένων
(Data mining) σε συνδυασμό με την Συσταδοποίηση (Clustering). Είναι μία έννοια η οποία
συνήθως παραπέμπει σε κάθε είδος φόρμας με μεγάλη ποσότητα δεδομένων ή
επεξεργασία δεδομένων (συλλογή, εξαγωγή δεδομένων, warehouse, ανάλυση
δεδομένων και στατιστικής), αλλά επίσης γενικεύεται σε κάθε είδος συστήματος λήψης
αποφάσεων όπως στην τεχνητή νοημοσύνη και στην εκμάθηση μηχανής. Στόχος είναι η
αυτόματη ή ημιαυτόματη ανάλυση μεγάλων ποσοτήτων δεδομένων και ο διαχωρισμός
τους σε ένα σύνολο από λογικές ομάδες για την εξαγωγή τον κατάλληλων πληροφοριών.
Μπορεί να είναι λιγότερο έξυπνη προσέγγιση από την οντολογία, αλλά παρατηρούνται
καλύτερα αποτελέσματα, εξ ου και η εμφάνιση της σε μεγάλες εταιρίες και εφαρμογές
όπως το Google News.
 Ένα δημοφιλές σύστημα που χρησιμοποιεί αυτή την τεχνική είναι το Columbia
Νewsblaster [19] το οποίο μέσω της συσταδοποίησης και της σύνοψης
(summarization) καταφέρνει να αποθηκεύσει, να οργανώσει και να ταξινομήσει σε
κατηγορίες ειδησεογραφικά άρθρα ακόμα και από διαφορετικές γλώσσες
επιτρέποντας στους χρήστες να συγκρίνουν τις διαφορετικές απόψεις και
προοπτικές που υπάρχουν για το ίδιο άρθρο. Αξιοσημείωτη είναι και η χρήση
τεχνικών εξόρυξης κειμένου (Text Mining) η οποία είναι υποκατηγορία της
εξαγωγής δεδομένων.
 Στην εργασία τους [20] οι Najaf Ali Shah και ο Ehab M. El Bagesh αναφέρουν τη
δυσκολία που αντιμετωπίζουν στις μέρες μας οι μηχανές αναζητήσεις να
εντοπίσουν τα σωστά αποτελέσματα χωρίς αρκετή βοήθεια από τους χρήστες
εφόσον οι πιο πολλές χρησιμοποιούν απλώς λέξεις κλειδιά. Στη συνέχεια
παρουσιάζουν ένα σύστημα στο οποίο ομαδοποιούν ειδησεογραφικά άρθρα
βασιζόμενοι στο περιεχόμενο τους. Έχουν επικεντρωθεί στην εφαρμογή τεχνικών
εξόρυξης κειμένου, ώστε να επιλύσουν τα προβλήματα που δημιουργούνται στην
οργάνωση των ειδήσεων στα μέσα μαζικής ενημέρωσης αλλά και σε άλλους τομείς
όπως των δημόσιων σχέσεων.
Αυτόματη ανάκτηση παγκόσμιας ειδησεογραφίας και κατηγοριοποίηση της με χρήση εξαγόμενων μέτα-δεδομένων
21
Ι.Παπαπαναγιωτάκης-Μπουσύ, Α.Κωτσομητόπουλος
2.4.3 Social Engineering
Τα τελευταία χρόνια μια νέα τεχνική και ένας νέος τρόπος κατηγοριοποίησης
άρθρων έκανε την εμφάνιση του. Με την δημιουργία των κοινωνικών δικτύων (Social
Media π.χ. Facebook, Twitter, MySpace, Hi5) και την ραγδαία συμμετοχή εκατομμυρίων
χρηστών έγινε και γίνεται προσπάθεια για την ομαδοποίηση των ειδησεογραφικών
άρθρων με βάση τις δραστηριότητες του εκάστοτε χρήστη, με βάση την δημοτικότητα του
άρθρου και του αντικτύπου στα μέσα κοινωνικής δικτύωσης. Οι Roja Bandari, Sitaram
Asur και Bernardo A. Huberman [21] κατάφεραν να ομαδοποιήσουν άρθρα με βάση τον
αριθμό των αναρτήσεων που θα είχαν στα Social Media χρησιμοποιώντας τεχνικές
παλινδρόμησης (Regression) και συσταδοποίησης με αρκετά ικανοποιητικά
αποτελέσματα και ποσοστά που φτάνουν το 85% εγκυρότητας στην πρόβλεψη της
δημοτικότητας από τα Social Media και συγκεκριμένα στο Twitter. Επιπρόσθετα γίνονται
συγκρίσεις σε παραδοσιακές τεχνικές με εξαιρετικά δημοφιλείς τεχνικές στον χώρο του
κοινωνικού διαδικτύου (Social Web) Αναφέρεται ότι είναι δυνατόν να χαρακτηριστεί ένα
άρθρο σημαντικό και δημοφιλές χωρίς καν να εξεταστεί το περιεχόμενο του με βάση μόνο
το πόσοι χρήστες το έχουν ανάρτηση στην προσωπική τους σελίδα ή το έχουν διαβάσει.
Η ομοιότητα των άρθρων στα μέσα κοινωνικής δικτύωσης έχει σκοπό να εμφανίζονται
στους χρήστες άρθρα βάσει παρόμοιων που ο εκάστοτε χρήστης έχει επισκεφθεί και
άρθρα που σχετίζονται με τις δραστηριότητες του.
2.5 Σχετικές έρευνες
Παρακάτω αναφέρουμε κάποιες επιπλέον ενδιαφέρουσες εργασίες που
μελετήσαμε κατά την έρευνα μας οι οποίες σχετίζονται άμεσα με την δικιά μας εργασία.
Οι εργασίες αυτές αναφέρονται ξεχωριστά, καθώς η προσέγγιση τους περιέχει στοιχεία
από διάφορα πεδία και δεν μας φάνηκε σωστό να τις αναθέσουμε σε κάποια από τις τρεις
προαναφερθείσες κατηγορίες.
Αξιοσημείωτη είναι η προσπάθεια του Manos Tsagias, Maarten de Rijke, και του
Wouter Weerkamp [22] να συνδέσουν ειδησεογραφικά άρθρα με τις δημοσιεύσεις στα
μέσα κοινωνικής δικτύωσης που αναφέρονται στο ίδιο θέμα. Συγκεκριμένα αντλούν από
τα άρθρα μοντέλα ερωτήσεων (Query models) και προσπαθούν να τα εφαρμόσουν στα
μέσα κοινωνικής δικτύωσης με αποτέλεσμα να δημιουργούνται λίστες κατάταξης με τα
δεδομένα. Έπειτα προσπαθούν να τα ομαδοποιήσουν και να τα συγχωνεύσουν με
τεχνικές συγχώνευσης δεδομένων (Data Fusion). Έχουν επίσης χρησιμοποιήσει
γραφήματα για την διασύνδεση των όρων, ώστε να απλοποιηθεί ο όγκος του κειμένου.
Οι David Vallet, Miriam Fernández και Pablo Castells [23] προσπάθησαν να
βρουν πληροφορίες από μεγάλα κείμενα-άρθρα με την χρήση οντολογιών. Παρουσιάζουν
ένα μοντέλο που βελτιώνει την απλή αναζήτηση με βάση τις λέξεις κλειδιά, η προσέγγιση
τους περιλαμβάνει ένα σύστημα οντολογίας με βάση έναν ημιαυτόματο σχολιασμό των
κειμένων που μπορεί να βάζει βάρη σε συγκεκριμένες λέξεις κλειδιά του κειμένου,
πράγμα αρκετά παρόμοιο με την δική μας προσέγγιση που βάζουμε "βάρος" στις
κατηγορίες όπως τοποθεσία, οργανισμοί, πρόσωπα κλπ. Υιοθέτησαν επίσης το κλασικό
αλγεβρικό μοντέλο χώρου που είναι υπεύθυνο για την αναπαράσταση εγγράφων
κειμένου με χρήση δεικτών και χρησιμοποιείται για φιλτράρισμα και ανάκτηση
πληροφοριών καθώς και για την σωστή κατάταξη των "βαρών" στα δεδομένα.
Αυτόματη ανάκτηση παγκόσμιας ειδησεογραφίας και κατηγοριοποίηση της με χρήση εξαγόμενων μέτα-δεδομένων
22
Ι.Παπαπαναγιωτάκης-Μπουσύ, Α.Κωτσομητόπουλος
3. ΠΕΡΙΓΡΑΦΗ ΣΥΣΤΗΜΑΤΟΣ
3.1 Προδιαγραφές του συστήματος
Όπως προαναφέρθηκε, ο τομέας τον παγκόσμιων ειδήσεων περιέχει πολλή
πληροφορία που αλλάζει διαρκώς. Γίνονται πολλές προσπάθειες για την όλο και
καλύτερη επεξεργασία αυτής της πληροφορίας με σκοπό να είναι ακόμα πιο χρήσιμη. Η
ανάγκη που στοχεύουν να καλύψουν οι προσπάθειες αυτές είναι αυτή μια εξειδικευμένη
μηχανή αναζήτησης πάνω στον τομέα αυτό που να επιτρέπει ερωτήσει που απαιτούν όλο
και βαθύτερο συλλογισμό.
Προς αυτήν την κατεύθυνση και συνδυάζοντας ιδέες από υπάρχουσες τεχνολογίες
και συστήματα κατασκευάσαμε για την εργασία αυτή το παρόν σύστημα. Το σύστημα
αυτό ανακτά άρθρα ιστοσελίδων από το διαδίκτυο και έπειτα παρουσιάζει στον χρήστη
μία λίστα από θεματικές ενότητες που ξεχωρίζουν. Κάθε θεματική ενότητα
αντιπροσωπεύεται από τους ηλεκτρονικούς συνδέσμους των άρθρων που συμμετέχουν
σε αυτήν. Η ενότητες αυτές κατατάσσονται σε φθίνουσα σειρά ως προς τον αριθμό των
συνδέσμων που περιέχουν. Επίσης, το σύστημα δέχεται κάποιες παραμέτρους με τις
οποίες ο χρήστης μπορεί να καθορίσει ποια πληροφορία θα είναι σημαντική κατά την
ομαδοποίηση των άρθρων σε θεματικές ενότητες.
Ο τελικός μας στόχος είναι οι κατηγορίες/θεματικές ενότητες που εξάγει το
σύστημα να είναι όσο το δυνατόν μεγαλύτερες (να έχουν μεγάλο αριθμό σχετικών
άρθρων) χωρίς να περιέχουν θόρυβο (άρθρα που δεν σχετίζονται). Τέλος, πρέπει να
επισημανθεί ότι στοχεύουμε στην ομαδοποίηση άρθρων που μιλάνε για το ίδιο γεγονός
ή πολύ παραπλήσιο και όχι γενικές κατηγορίες.
Αυτόματη ανάκτηση παγκόσμιας ειδησεογραφίας και κατηγοριοποίηση της με χρήση εξαγόμενων μέτα-δεδομένων
23
Ι.Παπαπαναγιωτάκης-Μπουσύ, Α.Κωτσομητόπουλος
3.2 Αρχιτεκτονική του συστήματος
Στη ενότητα αυτή δίνουμε μία περιγραφή της αρχιτεκτονικής του συστήματος. Το
σύστημα μπορεί να διαχωριστεί σε κάποιες βασικές λειτουργικές μονάδες όπως φαίνεται
στο παρακάτω σχήμα.
Εικόνα 2: Σχηματική αναπαράσταση του συστήματος
Επίσης, σημαντικό για την κατανόηση της δομής και λειτουργίας του συστήματος
είναι ο διαχωρισμός που παρουσιάζεται παρακάτω που αναπαριστά το σύστημα ως το
άθροισμα δύο υποσυστημάτων/προγραμμάτων, όπως φαίνεται στην επόμενη εικόνα.
Αυτόματη ανάκτηση παγκόσμιας ειδησεογραφίας και κατηγοριοποίηση της με χρήση εξαγόμενων μέτα-δεδομένων
24
Ι.Παπαπαναγιωτάκης-Μπουσύ, Α.Κωτσομητόπουλος
Εικόνα 3: Αναπαράσταση του συστήματος ως άθροισμα δύο προγραμμάτων
Κάθε ένα από τα δύο προγράμματα έχει την δομή που εξυπηρετεί καλύτερα τον
σκοπό του. Καθώς και τα δύο προγράμματα ακολουθούν το πρότυπο του
αντικειμενοστραφούς προγραμματισμού, στην συνέχεια παρουσιάζουμε τις βασικές τους
κλάσης με τα δεδομένα και τις κύριες λειτουργίες τους.
Αυτόματη ανάκτηση παγκόσμιας ειδησεογραφίας και κατηγοριοποίηση της με χρήση εξαγόμενων μέτα-δεδομένων
25
Ι.Παπαπαναγιωτάκης-Μπουσύ, Α.Κωτσομητόπουλος
3.3 Υλοποίηση του συστήματος
Σε αυτή την ενότητα αναλύουμε την υλοποίηση του συστήματος. Παρουσιάζουμε
αρχικά τα εργαλεία που χρησιμοποιήσαμε και στη συνέχεια ξεχωριστά κάθε μία από τις
τρείς κύριες λειτουργίες, την συλλογή των άρθρων, την εξαγωγή μέτα-δεδομένων και την
ομαδοποίηση των άρθρων.
Αξίζει να αναφέρουμε ότι αξιολογήσαμε διάφορα εργαλεία και τεχνικές για την
υλοποίηση του συστήματος μας. Θεωρούμε άξια αναφοράς τα παρακάτω:
Στην αρχική μας προσέγγιση είχαμε στόχο για μια δοθείσα ιστοσελίδα να
καταφέρουμε να συλλέξουμε όλες τις χρήσιμες πληροφορίες από αυτήν. Συγκεκριμένα,
είχαμε υλοποιήσει συναρτήσεις σε Java οι οποίες αποθηκεύουν σε βάση δεδομένων SQL
όλους τους συνδέσμους (link) από μια αρχική ιστοσελίδα, που ανήκουν στον ίδιο
ιστότοπο, με αποφυγή όλων των URL που κατευθύνουν σε εικόνες, αρχεία, ή που τα
έχουμε ξαναεπισκεφθεί. Αυτό έγινε με την χρήση ομάδας νημάτων (thread pool) και
βιβλιοθηκών για βέλτιστη ταχύτητα στην προσπέλαση. Η ιδέα ήταν ότι θα μπορούμε να
δημιουργήσουμε ένα ευρετήριο με λέξεις κλειδιά πάνω στην ιστοσελίδα ξεχωρίζοντας π.χ.
τα κομμάτια που αναφέρονται σε world_news, local_news, sports, technology κτλ.
Αποθηκεύοντας αυτό το ευρετήριο στην βάση δεδομένων θα μπορούσαμε να
απαντήσουμε γρήγορα σε ερωτήματα σχετικά με τα δεδομένα μας όπως ποιες
πληροφορίες αφορούν μια συγκεκριμένη χώρα ή πόλη. Η προσπάθεια αυτή αποδείχθηκε
πολύ φιλόδοξη και εν τέλει ματαιώθηκε καθώς πέρα από τις σελίδες με άρθρα οι ιστότοποι
των ειδησεογραφικών πρακτορείων περιέχουν μεγάλη ποσότητα άχρηστης πληροφορίας
για το δικό μας σύστημα και αυτό σε συνδυασμό με την ποικιλομορφία των διάφορων
ιστοτόπων που μας αφορούν καθιστά το φιλτράρισμα της χρήσιμης πληροφορίας πολύ
δύσκολο και επεξεργαστικά πολύ ακριβό καθώς μιλάμε για μεγάλο όγκο δεδομένων. Έτσι
στραφήκαμε στην χρήση του RSS το οποίο μας επιτρέπει να προσπελάυνουμε μόνο τις
ιστοσελίδες με άρθρα.
Για την επεξεργασία των άρθρων, αρχικά δοκιμάσαμε το GATE [24] το οποίο είναι
ένα ώριμο εργαλείο επεξεργασίας φυσικής γλώσσας το οποίο όμως αποδείχθηκε
δύσχρηστο στην προσαρμογή του σε αυτό που θέλαμε. Το GATE είναι
προσανατολισμένο προς την προσέγγιση των οντολογιών, ενώ εμείς θέλαμε να
ξεφύγουμε από τον αυστηρό ορισμό της οντολογίας και να χρησιμοποιήσουμε μερικές
έννοιες από αυτήν για την βελτιστοποίηση της σύγκρισης των άρθρων. Αυτό μας οδήγησε
να ψάξουμε για εναλλακτικές λύσεις και έτσι καταλήξαμε στην χρήση της γλώσσας
Python.
Αυτόματη ανάκτηση παγκόσμιας ειδησεογραφίας και κατηγοριοποίηση της με χρήση εξαγόμενων μέτα-δεδομένων
26
Ι.Παπαπαναγιωτάκης-Μπουσύ, Α.Κωτσομητόπουλος
3.3.1 Εργαλεία
Για την ανάκτηση των άρθρων από τις ιστοσελίδες και την αποθήκευσή τους σε
οντότητες XML αρχείων επιλέξαμε την γλώσσα προγραμματισμού Java με περιβάλλον
ανάπτυξης το Εclipse, διότι εκτός από το ότι μας προσφέρει μια μεγάλη γκάμα από
βιβλιοθήκες είναι συμβατή με όλα τα λειτουργικά συστήματα (Windows, Mac, Linux). Για
την βοήθεια στην εξαγωγή μόνο του κύριου άρθρου από κάθε ισότοπο χρησιμοποιήσαμε
την βιβλιοθήκη Boilerpipe [25]. Μια άλλη βιβλιοθήκη που μας βοήθησε για την
επεξεργασία RSS είναι η ROME [26]. Για την εξαγωγή των δεδομένων μας σε αρχεία
XML χρησιμοποιήσαμε την βιβλιοθήκη JDOM [27] και Xerces [28].
Για την επεξεργασία των άρθρων διαλέξαμε την γλώσσα προγραμματισμού
Python [29] η οποία, όπως και οι υπόλοιπες scripting γλώσσες, ενδείκνυται για την
επεξεργασία κειμένου. Όντας μια γλώσσα πολύ υψηλού επιπέδου μας διευκόλυνε να
επικεντρωθούμε στις ουσιαστικές διαδικασίες χωρίς ιδιαίτερες τεχνικές δυσκολίες που θα
είχαν παρουσιάσει γλώσσες όπως η C/C++.
Καθοριστικός παράγοντας για την επιλογή της Python έναντι άλλων scripting
γλωσσών υπήρξε η ευρεία υποστήριξη της γλώσσας από βιβλιοθήκες που μας
χρειάστηκαν για την επεξεργασία φυσικής γλώσσας. Σημαντικότερη όλων είναι η
βιβλιοθήκη Natural Language Toolkit – NLTK [30] της οποίας η ευκολία χρήσης, η
πληθώρα λειτουργιών και οι ποιότητα της βιβλιοθήκης την καθιστούν κορυφαίο εργαλείο
για επεξεργασία φυσικής γλώσσας [31].
Άλλες βιβλιοθήκες που μας χρειάστηκαν είναι: TextBlob [32] που βασίζεται στην
NLTK και την pattern [33] για να προσφέρει επιπλέον διευκόλυνση στην επεξεργασία
φυσικής γλώσσας, Hashtagify [34] που βρίσκει τις λέξεις από τον τίτλο ενός κειμένου που
έχουν μεγάλη βαρύτητα σχετικά με το κείμενο, scikit-learn – sklearn [35] για την σύγκριση
των παραγόμενων μέτα-δεδομένων και Beautiful Soup [36] για την διαχείριση web
requests με Python.
Αυτόματη ανάκτηση παγκόσμιας ειδησεογραφίας και κατηγοριοποίηση της με χρήση εξαγόμενων μέτα-δεδομένων
27
Ι.Παπαπαναγιωτάκης-Μπουσύ, Α.Κωτσομητόπουλος
3.3.2 Συλλογή άρθρων
Για την ανάκτηση των άρθρων από περίπου 50 δημοφιλή websites ειδήσεων ( π.χ.
BBC, CNN, FOX) παίρνουμε τα τελευταία και πιο επίκαιρα δημοσιογραφικά άρθρα.
Συγκεκριμένα χρησιμοποιούμε τα αντίστοιχα RSS feeds κάθε ιστοσελίδας για να
πάρουμε τον τίτλο, μια μικρή περιγραφή του άρθρου, την ημερομηνία δημοσίευσης
καθώς και το URL (link) για το κανονικό άρθρο. Στην συνέχεια ανακτούμε την ιστοσελίδα
στην οποία κατευθύνει το URL του άρθρου και εξάγουμε ολόκληρο το άρθρο μέσα από
αυτήν. Αυτό γίνεται με την χρήση της βιβλιοθήκης Boilerpipe η οποία προσπαθεί να
απομονώσει μόνο το κύριο άρθρο/κείμενο και να απορρίψει οτιδήποτε άλλο έχει η
ιστοσελίδα εκτός άρθρου (διαφημίσεις, μενού κτλ.). Έτσι, δημιουργούμε μια κλάση Site
για κάθε website όπου περιέχει μια λίστα με όλα τα άρθρα και πληροφορίες του εκάστοτε
site. Η παραπάνω διαδικασία υλοποιήθηκε σε γλώσσα προγραμματισμού Java και γίνεται
με thread pool όπου ανατίθεται ένα νήμα για κάθε έναν από τους 50 ιστότοπους που
έχουμε προεπιλέξει. Τέλος, εξάγονται όλα τα αντικείμενα της κλάσης Site σε XML αρχεία,
ώστε να μπορούμε να τα προσπελάσουμε και από άλλες γλώσσες προγραμματισμού.
Στο πρόγραμμα Java η είσοδος είναι ένα αρχείο που ονομάζεται RSS_feeds.txt το
οποίο περιέχει έναν κατάλογο από τα επιθυμητά RSS feeds που θέλουμε να
προσπελάσουν μαζί με ένα όνομα που του δίνουμε (για καλύτερη αναγνωσιμότητα
προτείνουμε το όνομα της ιστοσελίδας αλλά ο μόνος περιορισμός είναι τα ονόματα να
είναι διαφορετικά μεταξύ τους). Ενδεικτικά η μορφή του αρχείου πρέπει να είναι ως εξής:
Εικόνα 4: Ενδεικτικό input στο Java πρόγραμμα
Αυτόματη ανάκτηση παγκόσμιας ειδησεογραφίας και κατηγοριοποίηση της με χρήση εξαγόμενων μέτα-δεδομένων
28
Ι.Παπαπαναγιωτάκης-Μπουσύ, Α.Κωτσομητόπουλος
Η κύρια δομή του προγράμματος ανάκτησης των άρθρων μπορεί να περιγραφεί από τις
κλάσεις Java Article και Site.
Εικόνα 5: Κλάση Article
Δεδομένα Λειτουργίες
string title
Date publish date
string link
string main body
string description
Η κλάση Article είναι μια οντότητα που χρησιμοποιείται για την αποθήκευση των
όλων των πληροφοριών για κάθε άρθρο όπως ο τίτλος, η ημερομηνία δημοσίευσης, την
ηλεκτρονική διεύθυνση του κυρίου άρθρου, το κυρίως σώμα του άρθρου και την σύντομη
περιγραφή του.
Εικόνα 6: Κλάση Site
Δεδομένα Λειτουργίες
string site RSS
string site name
string path
Article[] articles
addArticle()
print()
printToXML()
Η κλάση Site περιέχει όλα τα άρθρα για τον εκάστοτε ισότοπο καθώς και την
διεύθυνση με τα RSS feed, το όνομα της ειδησεογραφικής ιστοσελίδας και την τοπική
διεύθυνση που θα αποθηκευτούν στον υπολογιστή τα .XML αρχεία.
Αυτόματη ανάκτηση παγκόσμιας ειδησεογραφίας και κατηγοριοποίηση της με χρήση εξαγόμενων μέτα-δεδομένων
29
Ι.Παπαπαναγιωτάκης-Μπουσύ, Α.Κωτσομητόπουλος
3.3.3 Εξαγωγή μέτα-δεδομένων
Για την εξαγωγή των μέτα-δεδομένων σημαντική είναι η Python κλάση NewsArticle της
οποίας η δομή είναι η εξής:
Εικόνα 7: Κλάση NewsArticle
Δεδομένα Λειτουργίες
num id
string title
string date
string URL
dictionary metadata
heuristics()
extract_metadata()
Στην κλάση NewsArticle αποθηκεύεται όλη η πληροφορία ενός άρθρου, η αρχική
και η εξαγόμενη από το σύστημα μέτα-πληροφορία. Το id είναι μοναδικό αναγνωστικό
του άρθρου, οι μεταβλητές title, date και URL είναι ο τίτλος, η ημερομηνία και η
ηλεκτρονική διεύθυνση του άρθρου αντίστοιχα. Τέλος το dictionary metadata έχει κλειδιά
το είδος μέτα-δεδομένων όπως π.χ. Noun-phrases, places, persons και σαν τιμές τα
αντίστοιχα δεδομένα που έχουμε εξάγει. Οι βασικές λειτουργίες της κλάσης αυτής είναι η
heuristics που εφαρμόζει κάποιους χειροποίητους κανόνες για το φιλτράρισμα των
άρθρων και η extract_metadata που αναλαμβάνει την εξαγωγή όλων των μέτα-
πληροφοριών που αναλύονται εκτενώς παρακάτω.
Στη συνέχεια περιγράφονται ποιες είναι οι μέτα-πληροφορίες που εξάγουμε από
κάθε άρθρο και ο τρόπος με τον οποίο γίνεται αυτό. Ο σκοπός μας ήταν να βρούμε την
πληροφορία που αναπαριστά όσο καλύτερα γίνεται ένα άρθρο παγκόσμιας
ειδησεογραφίας την οποία έχουμε την δυνατότητα να εξάγουμε από το εκάστοτε άρθρο.
Σε αυτό το κομμάτι η είσοδος είναι ο τίτλος του άρθρου, το κυρίως κείμενο και
ενδεχομένως μια σύντομη περιγραφή. Τα δεδομένα αυτά περνάνε πρώτα από μία
ευρεστική συνάρτηση (heuristics() ) η οποία αφαιρεί τυχόν ανωμαλίες σύμφωνα με
κανόνες που έχουμε παρατηρήσει και στη συνέχεια εξάγονται οι μέτα-πληροφορίες που
είναι οι εξής:
Plaintext, το οποίο είναι το πλήρες κείμενο αφαιρώντας τα stopwords [37], που
είναι κοινές λέξεις που αφαιρούνται κατά την επεξεργασία φυσικής γλώσσας. Αυτή η
προσέγγιση λέγεται και bag of words και χρησιμοποιείται συχνά σε μεθόδους
κατηγοριοποίησης κειμένου.
Noun phrases, είναι οι ονοματικές φράσεις που λειτουργούν ως υποκείμενα,
αντικείμενα και κατηγορηματικές εκφράσεις. Είναι ευρέως χρησιμοποιημένες στον τομέα
της υπολογιστικής γλωσσολογίας και βελτιώνουν τα αποτελέσματα σχετικά με την
προηγούμενη προσέγγιση όπως συμπεραίνουν και οι JunPeng Bao et al. [38].
Δοκιμάσαμε και μια άλλη προσέγγιση που προτείνουν στην οποία απαιτείται η εύρεση
των συνωνύμων λέξεων για καλύτερη σύγκριση κειμένων. Ο καλύτερος τρόπος για να
γίνει αυτό είναι με την χρήση του WordNet το οποίο όμως αποδείχθηκε υπολογιστικά
αδύνατο για μεγάλο όγκο δεδομένων.
Title και Description, τα οποία τα παίρνουμε αυτούσια από την είσοδο. Επιπλέον
η βιβλιοθήκη Hashtagify [34] με είσοδο τον τίτλο και το κείμενο μας επιστρέφει τις λέξεις
του τίτλου με μεγάλη βαρύτητα τις οποίες αποκαλούμε hashtags.
Ως εδώ οι μέτα πληροφορίες που έχουν αναφερθεί είναι γενικές και μπορούν να
χρησιμοποιηθούν σε κείμενα από διάφορα πεδία (και όχι μόνο για ειδησεογραφία).
Αυτόματη ανάκτηση παγκόσμιας ειδησεογραφίας και κατηγοριοποίηση της με χρήση εξαγόμενων μέτα-δεδομένων
30
Ι.Παπαπαναγιωτάκης-Μπουσύ, Α.Κωτσομητόπουλος
Παρακάτω περιγράφονται οι πληροφορίες που εξάγουμε που έχουν ιδιαίτερο νόημα στα
πλαίσια των παγκόσμιων νέων.
Location, ένα πολύ σημαντικό στοιχείο των άρθρων παγκόσμιας ειδησεογραφίας
είναι οι τοποθεσίες που αναφέρονται. Σε αντίθεση με άλλου είδους άρθρα όπως π.χ.
τεχνολογικά νέα στα οποία σημαντικά στοιχεία μπορούν να θεωρηθούν συσκευές ή
εταιρίες, στην περίπτωση των παγκόσμιων νέων η τοποθεσία είναι ένα πολύ καλό φίλτρο
για την ομοιότητα δύο άρθρων. Αν μία συγκεκριμένη στιγμή δέκα από τα κορυφαία
ειδησεογραφικά πρακτορεία του κόσμου γράφουν κάτι για μια πόλη είναι πολύ πιθανό να
μιλάνε για το ίδιο ή παραπλήσιο πράγμα. Για την εξαγωγή των τοποθεσιών από τα άρθρα
χρησιμοποιήσαμε το Standford Named Entity Recognizer [39]. Το εργαλείο αυτό παίρνει
σαν είσοδο ένα κείμενο και σαν έξοδο χαρακτηρίζει κάθε λέξη ως άτομο (Person),
οργάνωση (Organization), τοποθεσία (Location) ή άλλο (Other). Ένα μειονέκτημα της
προσέγγισης αυτής είναι ότι αν θεωρήσουμε κάθε λέξη με χαρακτηρισμό «Τοποθεσία»
από μόνη της μπορούμε να συμπεράνουμε λάθος πληροφορία, για παράδειγμα για
είσοδο New York παίρνουμε την έξοδο (New, Location), (York, Location) όπου το
εργαλείο σωστά χαρακτηρίζει και τις δύο λέξεις ως τοποθεσίες αλλά δεν μας δίνει το τελικό
επιθυμητό αποτέλεσμα που είναι (New York, Location). Για να βελτιώσουμε την
πληροφορία των τοποθεσιών χρησιμοποιούμε κάποια ευρεσιτεχνικά που επεξεργάζονται
την έξοδο του Stanford NER. Συγκεκριμένα εφαρμόζουμε κάποια regular expressions τα
οποία είναι:
LOCATION in LOCATION = LOCATION
LOCATION of LOCATION = LOCATION
LOCATION LOCATION = LOCATION
Με αυτό τον τρόπο αποκτούμε μια λίστα με τοποθεσίες οι οποίες αναφέρονται
μέσα στο άρθρο. Η ενοποίηση των τοποθεσιών με αυτό τον τρόπο μας παρέχει
βελτιωμένα αποτελέσματα, όμως υπάρχουν περιπτώσεις στις οποίες αυτό δεν είναι
αρκετό. Αν για παράδειγμα ένα άρθρο έχει την λέξη την τοποθεσία “Athens” και ένα άλλο
την τοποθεσία “Athens, Greece” ή ακόμα και “Athinai” κατά την σύγκριση θα βγουν
διαφορετικά ενώ αναπαριστούν την ίδια γεωγραφική τοποθεσία. Επίσης, αν θεωρήσουμε
ότι μια είδηση καλύπτει γεγονότα πολλών πόλεων τότε θα πρέπει να το άρθρο με
τοποθεσία “Athens” να συσχετιστεί με το άρθρο που έχει την τοποθεσία “Thessaloniki”.
Αντιμετωπίσαμε τις παραπάνω προκλήσεις με την χρήση της υπηρεσίας
GeoNames [40]. Η δικτυακή αυτή υπηρεσία λειτουργεί σαν μηχανή αναζήτησης
αποκλειστικά για γεωγραφικά δεδομένα. Για κάθε τοποθεσία εκτελούμε αναζήτηση στο
GeoNames το οποίο μας επιστρέφει το όνομα της τοποθεσίας και την χώρα στην οποία
βρίσκεται. Το πρώτο (όνομα της τοποθεσίας) το χρειαζόμαστε για να ξεπεράσουμε το
πρόβλημα τοποθεσιών που γράφονται με παραπάνω από έναν τρόπο, καθώς η
υπηρεσία κάνει fuzzy search, ενώ με το δεύτερο (χώρα της τοποθεσίας) μπορούμε να
συσχετίσουμε άρθρα που μιλάνε για την ίδια χώρα. Έτσι, προσθέτουμε στα μέτα-
δεδομένα μας τα places και countries. Σημειώνουμε ότι, αν και η χρήση του GeoNames
βελτίωσε πολύ τα αποτελέσματα μας, αυτό έγινε με σημαντική αύξηση του χρόνου
εκτέλεσης του προγράμματος καθώς τα διαδικτυακά αιτήματα (requests) είναι πολύ αργά
σε σχέση με την εκτέλεση εντολών στον επεξεργαστή. Για να επιταχύνουμε την
διαδικασία, δημιουργήσαμε μία τοπική cache, έτσι ώστε, αν μία τοποθεσία αναζητηθεί
δεύτερη φορά, θα εξυπηρετηθεί τοπικά μειώνοντας έτσι κατά πολύ τον χρόνο εκτέλεσης.
Αυτό βοηθάει επίσης να μην υπερβούμε το ημερήσιο όριο των 10.000 αναζητήσεων που
επιτρέπει η υπηρεσία. Υπάρχει παράδειγμα στο παράρτημα 3.
Αυτόματη ανάκτηση παγκόσμιας ειδησεογραφίας και κατηγοριοποίηση της με χρήση εξαγόμενων μέτα-δεδομένων
31
Ι.Παπαπαναγιωτάκης-Μπουσύ, Α.Κωτσομητόπουλος
Τέλος, σημαντικά στοιχεία του άρθρου που εξάγουμε με την χρήση του Stanford
NER τα persons και organizations. Αν και η γεωγραφική πληροφορία είναι το κύριο
στοιχείο των άρθρων παγκόσμιας ειδησεογραφίας, τα άτομα και οργανισμοί βοηθούν
στην περίπτωση διαφορετικών ειδήσεων που αφορούν την ίδια πόλη/χώρα.
Όλη αυτή η μέτα-πληροφορία αποθηκεύεται στην κλάση NewsArcticle μαζί με το
αρχικό κείμενο για περαιτέρω επεξεργασία στο επόμενο στάδιο, αυτό της ομαδοποίησης.
Αυτόματη ανάκτηση παγκόσμιας ειδησεογραφίας και κατηγοριοποίηση της με χρήση εξαγόμενων μέτα-δεδομένων
32
Ι.Παπαπαναγιωτάκης-Μπουσύ, Α.Κωτσομητόπουλος
3.3.4 Ομαδοποίηση άρθρων
Το τρίτο κομμάτι του συστήματος μας που αφορά την σύγκριση και ομαδοποίηση
των άρθρων είναι, όπως και η εξαγωγή μέτα-πληροφοριών, γραμμένο σε Python. Για την
λειτουργία αυτή χρειάζονται:
1. Τα άρθρα επαυξημένα με την μέτα-πληροφορία που εξάγεται από αυτά.
2. Το βάρος της κάθε μέτα-πληροφορίας, όπου μεγαλύτερο βάρος σε ένα
συγκεκριμένο μέτα-δεδομένο υπέρ κάποιου άλλου σημαίνει πως θα
επηρεάζει περισσότερο το συνολικό σκορ ομοιότητας των άρθρων.
3. Το ελάχιστο ποσοστό ομοιότητας δύο άρθρων, ώστε να ανήκουν στην ίδια
κατηγορία.
Το πρώτο είναι απευθείας διαθέσιμο μέσα στο πρόγραμμα και είναι τα αντικείμενα
της Python κλάσης NewArticle της. Τα άλλα δύο είναι παράμετροι που το πρόγραμμα
διαβάζει από το αρχείο properties.ini. Για τις προτεινόμενες τιμές των παραμέτρων αυτών
παραπέμπουμε τον αναγνώστη στο τέταρτο κεφάλαιο - Πειραματικά Αποτελέσματα.
Σε αυτό το στάδιο τις σημαντικές λειτουργίες αναλαμβάνουν οι Python κλάσεις
NewsAggregator και Classifier.
Εικόνα 8: Κλάση NewsAggregator
Δεδομένα Λειτουργίες
dictionary articles
dictionary topics
dicitonary classifiers
num similarity threshold
add_article()
add_topic()
classify_article()
Η κλάση NewsAggregator είναι υπεύθυνη για την σύγκριση και κατηγοριοποίηση
των άρθρων. Στο dictionary articles αποθηκεύει όλα τα άρθρα με κλειδί το id του κάθε
άρθρου και τιμές τα αντίστοιχα αντικείμενα NewsArticle. Το dictionary topics έχει για
κλειδιά το μοναδικό topic id και σαν τιμές μία λίστα από article id τα οποία ανήκουν στο
συγκεκριμένο θέμα. Το dictionary classifiers έχει σαν κλειδί την μεταβλητή που ταξινομεί
(ένα από τα μέτα-δεδομένα) και σαν τιμή ζευγάρια της μορφής (topic id, Classifier),
δηλαδή αναγνωστικό του θέματος και τον αντίστοιχο κατηγοριοποιητή. Τέλος το
similarity_threshold είναι το ελάχιστο ποσοστό ομοιότητας που πρέπει να έχουν δύο
άρθρα για να θεωρηθούν ότι ανήκουν στο ίδιο θέμα. Οι λειτουργίες τις κλάσης είναι η
προσθήκη άρθρου (add_article), προσθήκη νέου θέματος με βάση ένα άρθρο (add_topic)
και η κατηγοριοποίηση ενός άρθρου (classify_article). Οι τρεις αυτές λειτουργίες είναι
πολύ βασικές και δίνονται οι αλγόριθμοι τους στην συνέχεια.
Εικόνα 9: Κλάση Classifier
Δεδομένα Λειτουργίες
string type
var content
classify()
Η κλάση Classifier χρησιμεύει για την σύγκριση δύο άρθρων ως προς ένα από τα
μέτα-δεδομένα. Η μεταβλητή type αποθηκεύει το είδος των μέτα-δεδομένων του
κατηγοριοποιητή π.χ. location, persons και στην μεταβλητή content αποθηκεύονται τα
δεδομένα του κατηγοριοποιητή. Με την συνάρτηση classify συγκρίνεται ένα άρθρο με τον
κατηγοριοποιητή.
Αυτόματη ανάκτηση παγκόσμιας ειδησεογραφίας και κατηγοριοποίηση της με χρήση εξαγόμενων μέτα-δεδομένων
33
Ι.Παπαπαναγιωτάκης-Μπουσύ, Α.Κωτσομητόπουλος
Παρακάτω παρουσιάζονται οι βασικοί αλγόριθμοι σύγκρισης άρθρων και
δημιουργίας νέας κατηγοριών. Οι αλγόριθμοι έχουν γραφθεί αρκετά αφαιρετικά σε
ψευδογλώσσα, για περισσότερες λεπτομέρειες παραπέμπουμε τον αναγνώστη στον
αντίστοιχο κώδικα ο οποίος, επειδή είναι γραμμένος σε Python, είναι ευανάγνωστος
ακόμα και για μη προγραμματιστές.
3.3.4.1 Αλγόριθμος Add Article
Η σημαντικότερη κλάση σε αυτήν την λειτουργία είναι η NewsAggreagtor της
οποίας δημιουργείται ένα αντικείμενο και στην συνέχεια καλείται η συνάρτηση της
add_article().
Με αυτόν τον τρόπο η κλάση NewsAggregator κρατάει μία λίστα για κάθε
κατηγορία. Η λίστα αυτή περιέχει το μοναδικό αναγνωστικό (id) των άρθρων που ανήκουν
στην κατηγορία αυτή. Από το παραπάνω είναι επίσης φανερό ότι ένα άρθρο μπορεί να
ανήκει μόνο σε μία κατηγορία.
add_article(Άρθρο)
ΑΝ ΔΕΝ υπάρχει καμία κατηγορία:
add_topic(Άρθρο)
ΑΛΛΙΩΣ:
classify_article(Άρθρο)
ΑΝ ταιριάζει σε υπάρχουσα κατηγορία:
Πρόσθεσε το Άρθρο σε αυτήν
ΑΛΛΙΩΣ:
add_topic(Άρθρο)
Εικόνα 10: Αλγόριθμος Add Arcticle
Αυτόματη ανάκτηση παγκόσμιας ειδησεογραφίας και κατηγοριοποίηση της με χρήση εξαγόμενων μέτα-δεδομένων
34
Ι.Παπαπαναγιωτάκης-Μπουσύ, Α.Κωτσομητόπουλος
3.3.4.2 Αλγόριθμος Add Topic
Στη συνέχεια παρουσιάζεται ο αλγόριθμος προσθήκης νέα κατηγορίας Add topic.
Από την δημιουργία της νέας κατηγορίας βλέπουμε ότι οι κατηγοριοποιητές που
δημιουργούνται για να αναπαριστούν την κατηγορία εξαρτώνται από τα μέτα-δεδομένα
του άρθρου που δημιουργεί την κατηγορία. Αυτός ο κατηγοριοποιητής δεν μεταβάλεται
κατά την διάρκεια της εκτέλεσης του προγράμματος και έτσι για να μπει ένα καινούργιο
άρθρο σε μία κατηγορία πρέπει ουσιαστικά να ταιριάξει με το άρθρο που την
δημιούργησε.
add_topic(Άρθρο)
δημιούργησε καινούργιο μοναδικό id για την κατηγορία
δημιούργησε καινούργια λίστα για τα άρθρα της κατηγορίας
ΓΙΑ ΚΑΘΕ είδος μέτα-πηροφορίας του Άρθρου:
δημιούργησε νέο Classifier με βάση την μέτα-πληροφορία
Αποθήκευσε τον Classifier μαζί με το μοναδικό id της κατηγορίας
Εικόνα 11: Αλγόριθμος Add Topic
Αυτόματη ανάκτηση παγκόσμιας ειδησεογραφίας και κατηγοριοποίηση της με χρήση εξαγόμενων μέτα-δεδομένων
35
Ι.Παπαπαναγιωτάκης-Μπουσύ, Α.Κωτσομητόπουλος
3.3.4.3 Αλγόριθμος Classify Article
Τέλος ο βασικός αλγόριθμος σύγκρισης είναι ο εξής:
Στον παραπάνω αλγόριθμο αποφασίζουμε αν ένα άρθρο ανήκει σε μία από τις
υπάρχουσες κατηγορίες ή όχι. Η συνάρτηση classify η οποία παίρνει ως παράμετρο το
άρθρο, την κατηγορία και τον τύπο δεδομένων που πρέπει να συγκρίνει, χρησιμοποιεί
την απόσταση συνημίτονου και το term frequency – inverse document frequency που
περιεγράφηκαν στο κεφάλαιο δύο μαζί με την ομοιότητα μήκους (length similarity) και
επιστρέφει έναν αριθμό στο [0,1]. Όσο μεγαλύτερος είναι ο αριθμός αυτός τόσο ομοιότερο
είναι το νέο άρθρο με την κατηγορία αυτή όσον αφορά τον συγκεκριμένο τύπο δεδομένων.
Η συνάρτηση apply_weights() είναι αυτή που εφαρμόζει τα βάρη που έχει αναθέσει ο
χρήστης σε κάθε είδος μέτα-δεδομένων από το αρχείο properties.ini. Τέλος, το όριο
ομοιότητας είναι και αυτό από το αρχείο παραμέτρων και παίζει πολύ σημαντικό ρόλο
στην διαμόρφωση των αποτελεσμάτων.
classify_article(Άρθρο)
ΓΙΑ ΚΑΘΕ είδος Classifier type:
ΓΙΑ ΚΑΘΕ κατηγορία topic:
score[topic] += classify(Άρθρο, topic, type)
apply_weights()
Κράτησε την κατηγορία με το μεγαλύτερο score
AN είναι μεγαλύτερο από το όριο:
επέστρεψε το id της κατηγορίας
ΑΛΛΙΩΣ:
επέστρεψε -1
Εικόνα 12: Αλγόριθμος Classify Article
Thesis
Thesis
Thesis
Thesis
Thesis
Thesis
Thesis
Thesis
Thesis
Thesis
Thesis
Thesis
Thesis
Thesis
Thesis
Thesis
Thesis
Thesis
Thesis
Thesis
Thesis
Thesis

More Related Content

Similar to Thesis

ιστοεξερεύνηση φύλλο εργασίας
ιστοεξερεύνηση   φύλλο εργασίαςιστοεξερεύνηση   φύλλο εργασίας
ιστοεξερεύνηση φύλλο εργασίαςilli2012
 
Φυσική Άσκηση και Υγεία
Φυσική Άσκηση και ΥγείαΦυσική Άσκηση και Υγεία
Φυσική Άσκηση και Υγείαdiatrofi
 
Δεξιότητες / Ικανότητες Δημιουργικότητας & Καινοτομίας στο Δημοτικό Σχολείο
Δεξιότητες / Ικανότητες Δημιουργικότητας & Καινοτομίας στο Δημοτικό ΣχολείοΔεξιότητες / Ικανότητες Δημιουργικότητας & Καινοτομίας στο Δημοτικό Σχολείο
Δεξιότητες / Ικανότητες Δημιουργικότητας & Καινοτομίας στο Δημοτικό ΣχολείοNiki Lambropoulos PhD
 
Cs c gym_notes_20160622
Cs c gym_notes_20160622Cs c gym_notes_20160622
Cs c gym_notes_20160622papettas
 
Cs c gym_worksheets_20160622
Cs c gym_worksheets_20160622Cs c gym_worksheets_20160622
Cs c gym_worksheets_20160622papettas
 
Αγωγή Υγείας-Φυσική Άσκηση και Υγεία_Βιβλίο Εκπαιδευτικού
Αγωγή Υγείας-Φυσική Άσκηση και Υγεία_Βιβλίο ΕκπαιδευτικούΑγωγή Υγείας-Φυσική Άσκηση και Υγεία_Βιβλίο Εκπαιδευτικού
Αγωγή Υγείας-Φυσική Άσκηση και Υγεία_Βιβλίο ΕκπαιδευτικούΜεταξούλα Μανικάρου
 
Εγχειρίδιο Δραστηριοτήτων για Νηπιαγωγούς
Εγχειρίδιο Δραστηριοτήτων για Νηπιαγωγούς Εγχειρίδιο Δραστηριοτήτων για Νηπιαγωγούς
Εγχειρίδιο Δραστηριοτήτων για Νηπιαγωγούς Linda Mamanou
 
Ανοικτά Ακαδημαϊκά Μαθήματα Ελληνικών Πανεπιστημίων
Ανοικτά Ακαδημαϊκά Μαθήματα Ελληνικών ΠανεπιστημίωνΑνοικτά Ακαδημαϊκά Μαθήματα Ελληνικών Πανεπιστημίων
Ανοικτά Ακαδημαϊκά Μαθήματα Ελληνικών ΠανεπιστημίωνDespina Kamilali
 
Zogza_2_Draseis Fibo_Patras
Zogza_2_Draseis Fibo_PatrasZogza_2_Draseis Fibo_Patras
Zogza_2_Draseis Fibo_Patrasnitse
 
Αρχές Οικονομικής Θεωρίας
Αρχές Οικονομικής ΘεωρίαςΑρχές Οικονομικής Θεωρίας
Αρχές Οικονομικής ΘεωρίαςGeorgia Kazakou
 
ΣΕΝΑΡΙΟ ΠΑΡΕΛΑΣΗΣ
ΣΕΝΑΡΙΟ ΠΑΡΕΛΑΣΗΣΣΕΝΑΡΙΟ ΠΑΡΕΛΑΣΗΣ
ΣΕΝΑΡΙΟ ΠΑΡΕΛΑΣΗΣmono030156
 
οι υπολογιστεσ στη ζωη μασ
οι υπολογιστεσ στη ζωη μασοι υπολογιστεσ στη ζωη μασ
οι υπολογιστεσ στη ζωη μασdskapinaki
 
Cause and Effect Analysis - Fishbone Diagram a.k.a. Ishikawa Diagram
Cause and Effect Analysis - Fishbone Diagram a.k.a. Ishikawa DiagramCause and Effect Analysis - Fishbone Diagram a.k.a. Ishikawa Diagram
Cause and Effect Analysis - Fishbone Diagram a.k.a. Ishikawa DiagramAntonis Gkekas
 
ανοιχτο ελευθερο εκπαιδευτικο λογισμικο
ανοιχτο   ελευθερο εκπαιδευτικο λογισμικοανοιχτο   ελευθερο εκπαιδευτικο λογισμικο
ανοιχτο ελευθερο εκπαιδευτικο λογισμικοEllh
 
ΠΑΡΟΥΣΙΑΣΗ ΕΡΓΑΣΙΑΣ ΣΤΟ ACSTAC 2014, ΑΠΟ Β2΄ 2ου ΠΠΓ ΘΕΣ/ΝΙΚΗΣ
ΠΑΡΟΥΣΙΑΣΗ ΕΡΓΑΣΙΑΣ ΣΤΟ ACSTAC 2014,  ΑΠΟ Β2΄ 2ου  ΠΠΓ ΘΕΣ/ΝΙΚΗΣΠΑΡΟΥΣΙΑΣΗ ΕΡΓΑΣΙΑΣ ΣΤΟ ACSTAC 2014,  ΑΠΟ Β2΄ 2ου  ΠΠΓ ΘΕΣ/ΝΙΚΗΣ
ΠΑΡΟΥΣΙΑΣΗ ΕΡΓΑΣΙΑΣ ΣΤΟ ACSTAC 2014, ΑΠΟ Β2΄ 2ου ΠΠΓ ΘΕΣ/ΝΙΚΗΣΣμαράγδα Φαρίδου
 
Ίδρυση Περιφερειακού Θεματικού Δικτύου με τίτλο «Δημιουργία εκπαιδευτικών εφα...
Ίδρυση Περιφερειακού Θεματικού Δικτύου με τίτλο «Δημιουργία εκπαιδευτικών εφα...Ίδρυση Περιφερειακού Θεματικού Δικτύου με τίτλο «Δημιουργία εκπαιδευτικών εφα...
Ίδρυση Περιφερειακού Θεματικού Δικτύου με τίτλο «Δημιουργία εκπαιδευτικών εφα...Σπύρος Κυριαζίδης
 
εφαρμογές πληροφορικής α γενικού λυκείου
εφαρμογές πληροφορικής α γενικού λυκείουεφαρμογές πληροφορικής α γενικού λυκείου
εφαρμογές πληροφορικής α γενικού λυκείουxpapas
 

Similar to Thesis (20)

ιστοεξερεύνηση φύλλο εργασίας
ιστοεξερεύνηση   φύλλο εργασίαςιστοεξερεύνηση   φύλλο εργασίας
ιστοεξερεύνηση φύλλο εργασίας
 
Φυσική Άσκηση και Υγεία
Φυσική Άσκηση και ΥγείαΦυσική Άσκηση και Υγεία
Φυσική Άσκηση και Υγεία
 
Δεξιότητες / Ικανότητες Δημιουργικότητας & Καινοτομίας στο Δημοτικό Σχολείο
Δεξιότητες / Ικανότητες Δημιουργικότητας & Καινοτομίας στο Δημοτικό ΣχολείοΔεξιότητες / Ικανότητες Δημιουργικότητας & Καινοτομίας στο Δημοτικό Σχολείο
Δεξιότητες / Ικανότητες Δημιουργικότητας & Καινοτομίας στο Δημοτικό Σχολείο
 
Cs c gym_notes_20160622
Cs c gym_notes_20160622Cs c gym_notes_20160622
Cs c gym_notes_20160622
 
Cs c gym_worksheets_20160622
Cs c gym_worksheets_20160622Cs c gym_worksheets_20160622
Cs c gym_worksheets_20160622
 
Αγωγή Υγείας-Φυσική Άσκηση και Υγεία_Βιβλίο Εκπαιδευτικού
Αγωγή Υγείας-Φυσική Άσκηση και Υγεία_Βιβλίο ΕκπαιδευτικούΑγωγή Υγείας-Φυσική Άσκηση και Υγεία_Βιβλίο Εκπαιδευτικού
Αγωγή Υγείας-Φυσική Άσκηση και Υγεία_Βιβλίο Εκπαιδευτικού
 
Εγχειρίδιο Δραστηριοτήτων για Νηπιαγωγούς
Εγχειρίδιο Δραστηριοτήτων για Νηπιαγωγούς Εγχειρίδιο Δραστηριοτήτων για Νηπιαγωγούς
Εγχειρίδιο Δραστηριοτήτων για Νηπιαγωγούς
 
Ανοικτά Ακαδημαϊκά Μαθήματα Ελληνικών Πανεπιστημίων
Ανοικτά Ακαδημαϊκά Μαθήματα Ελληνικών ΠανεπιστημίωνΑνοικτά Ακαδημαϊκά Μαθήματα Ελληνικών Πανεπιστημίων
Ανοικτά Ακαδημαϊκά Μαθήματα Ελληνικών Πανεπιστημίων
 
Zogza_2_Draseis Fibo_Patras
Zogza_2_Draseis Fibo_PatrasZogza_2_Draseis Fibo_Patras
Zogza_2_Draseis Fibo_Patras
 
Αρχές Οικονομικής Θεωρίας
Αρχές Οικονομικής ΘεωρίαςΑρχές Οικονομικής Θεωρίας
Αρχές Οικονομικής Θεωρίας
 
ΣΕΝΑΡΙΟ ΠΑΡΕΛΑΣΗΣ
ΣΕΝΑΡΙΟ ΠΑΡΕΛΑΣΗΣΣΕΝΑΡΙΟ ΠΑΡΕΛΑΣΗΣ
ΣΕΝΑΡΙΟ ΠΑΡΕΛΑΣΗΣ
 
οι υπολογιστεσ στη ζωη μασ
οι υπολογιστεσ στη ζωη μασοι υπολογιστεσ στη ζωη μασ
οι υπολογιστεσ στη ζωη μασ
 
Cause and Effect Analysis - Fishbone Diagram a.k.a. Ishikawa Diagram
Cause and Effect Analysis - Fishbone Diagram a.k.a. Ishikawa DiagramCause and Effect Analysis - Fishbone Diagram a.k.a. Ishikawa Diagram
Cause and Effect Analysis - Fishbone Diagram a.k.a. Ishikawa Diagram
 
ανοιχτο ελευθερο εκπαιδευτικο λογισμικο
ανοιχτο   ελευθερο εκπαιδευτικο λογισμικοανοιχτο   ελευθερο εκπαιδευτικο λογισμικο
ανοιχτο ελευθερο εκπαιδευτικο λογισμικο
 
ΠΑΡΟΥΣΙΑΣΗ ΕΡΓΑΣΙΑΣ ΣΤΟ ACSTAC 2014, ΑΠΟ Β2΄ 2ου ΠΠΓ ΘΕΣ/ΝΙΚΗΣ
ΠΑΡΟΥΣΙΑΣΗ ΕΡΓΑΣΙΑΣ ΣΤΟ ACSTAC 2014,  ΑΠΟ Β2΄ 2ου  ΠΠΓ ΘΕΣ/ΝΙΚΗΣΠΑΡΟΥΣΙΑΣΗ ΕΡΓΑΣΙΑΣ ΣΤΟ ACSTAC 2014,  ΑΠΟ Β2΄ 2ου  ΠΠΓ ΘΕΣ/ΝΙΚΗΣ
ΠΑΡΟΥΣΙΑΣΗ ΕΡΓΑΣΙΑΣ ΣΤΟ ACSTAC 2014, ΑΠΟ Β2΄ 2ου ΠΠΓ ΘΕΣ/ΝΙΚΗΣ
 
Ίδρυση Περιφερειακού Θεματικού Δικτύου με τίτλο «Δημιουργία εκπαιδευτικών εφα...
Ίδρυση Περιφερειακού Θεματικού Δικτύου με τίτλο «Δημιουργία εκπαιδευτικών εφα...Ίδρυση Περιφερειακού Θεματικού Δικτύου με τίτλο «Δημιουργία εκπαιδευτικών εφα...
Ίδρυση Περιφερειακού Θεματικού Δικτύου με τίτλο «Δημιουργία εκπαιδευτικών εφα...
 
Εφαρμογές Πληροφορικής - Α' τάξη ΓΕΛ
Εφαρμογές Πληροφορικής - Α' τάξη ΓΕΛΕφαρμογές Πληροφορικής - Α' τάξη ΓΕΛ
Εφαρμογές Πληροφορικής - Α' τάξη ΓΕΛ
 
εφαρμογές πληροφορικής α γενικού λυκείου
εφαρμογές πληροφορικής α γενικού λυκείουεφαρμογές πληροφορικής α γενικού λυκείου
εφαρμογές πληροφορικής α γενικού λυκείου
 
Kinhto
Kinhto Kinhto
Kinhto
 
Efarmoges pliroforikis
Efarmoges pliroforikisEfarmoges pliroforikis
Efarmoges pliroforikis
 

Thesis

  • 1. ΕΘΝΙΚΟ ΚΑΙ ΚΑΠΟΔΙΣΤΡΙΑΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΤΗΛΕΠΙΚΟΙΝΩΝΙΩΝ ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ Αυτόματη ανάκτηση παγκόσμιας ειδησεογραφίας και κατηγοριοποίηση της με χρήση εξαγόμενων μέτα-δεδομένων Ιάσων Γ. Παπαπαναγιωτάκης-Μπουσύ Αριστοτέλης Χ. Κωτσομητόπουλος Επιβλέπουσα: Ιζαμπώ Καράλη, Επίκουρη Καθηγήτρια ΑΘΗΝΑ ΙΟΥΛΙΟΣ 2015
  • 2.
  • 3. ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ Αυτόματη ανάκτηση παγκόσμιας ειδησεογραφίας και κατηγοριοποίηση της με χρήση εξαγόμενων μέτα-δεδομένων Ιάσων Γ. Παπαπαναγιωτάκης-Μπουσύ Α.Μ.: 1115201000201 Αριστοτέλης Χ. Κωτσομητόπουλος Α.Μ.: 1115201000048 Επιβλέπουσα: Ιζαμπώ Καράλη, Επίκουρη Καθηγήτρια
  • 4.
  • 5. ΠΕΡΙΛΗΨΗ Η εργασία αυτή ασχολείται με την κατασκευή ενός συστήματος για την αυτόματη ανάκτηση άρθρων παγκόσμιας ειδησεογραφίας, την εξαγωγή πληροφοριών από αυτά και την κατηγοριοποίηση τους σε θεματικές ενότητες με όσο το δυνατό μεγαλύτερη σημασιολογική συνάφεια. Για την διεκπεραίωση αυτής της εργασίας ασχοληθήκαμε τόσο με τεχνικά προβλήματα όπως αυτά που παρουσιάζονται για την αυτόματη ανάκτηση άρθρων από το διαδίκτυο όσο και με την διερεύνηση των επιστημονικών πεδίων της επεξεργασίας φυσικής γλώσσας και εξαγωγής μέτα-πληροφοριών. Για την κατασκευή του συστήματος αξιολογήσαμε πολλές τεχνολογίες και εργαλεία και το σύστημα πέρασε πολλά στάδια και κατευθύνσεις κάποιες από τις οποίες αργότερα χρειάστηκε να αναθεωρήσουμε. Αυτό πιστεύουμε ότι μας οδήγησε στην δημιουργία ενός ώριμου και λειτουργικού συστήματος. Καταλήγουμε σε πολύ καλά αποτελέσματα ως προς την ποιότητα των θεματικών ομάδων που δημιουργούνται. Στην περίπτωση μας θεωρούμε ότι μια θεματική ομάδα είναι καλή όταν περιέχει όσο το δυνατόν περισσότερα άρθρα που πραγματεύονται το ίδιο θέμα χωρίς την παρουσία άσχετων άρθρων καθώς επίσης και η θεματική ενότητα να αντιπροσωπεύει ένα γεγονός. Τέλος το σύστημα μας παρουσιάζει μεγάλους χρόνους εκτέλεσης κάτι το οποίο αιτιολογούμε αλλά και προτείνουμε μελλοντικές κατευθύνσεις για την βελτίωση του. ΘΕΜΑΤΙΚΗ ΠΕΡΙΟΧΗ: Ανάκτηση Πληροφορίας, Επεξεργασία Φυσικής Γλώσσας ΛΕΞΕΙΣ ΚΛΕΙΔΙΑ: παγκόσμια ειδησεογραφία, εξόρυξη γνώσης, κατηγοριοποίηση, μοντέλο διανυσματικού χώρου, διαδίκτυο
  • 6. ABSTRACT This work deals with the construction of a system for the automatic retrieval of global news articles, extracting information from them and categorize them into thematic sections with the greatest possible semantic similarity. For carrying out this task we dealt both with technical problems such as the ones presented when automatically retrieving articles from around the Web and exploring the scientific fields of natural language processing and meta-information extraction. To build the system we evaluated multiple technologies and tools and the system went through several phases and directions some of which later on we had to review. This we believe has led us to create a mature and well operating system. We have very good results in terms of quality of thematic groups created. In our case we consider a thematic group is good when it has as many articles as possible that deal with the same theme without the presence of irrelevant articles as well as they are all closely related to a single fact. Finally our system presents major execution times which we justify and recommend future directions for improvement. SUBJECT AREA: Information Extraction, Natural Language Processing KEYWORDS: world news, knowledge mining, categorization, vector space model, internet
  • 8. ΕΥΧΑΡΙΣΤΙΕΣ Θα θέλαμε να ευχαριστήσουμε πρωτίστως την κα. Ιζαμπώ Καράλη για την βοήθεια και καθοδήγηση της που την πρόσφερε απλόχερα κατά την διάρκεια ανάπτυξης αυτής της πτυχιακής εργασίας. Επίσης, θα θέλαμε να ευχαριστήσουμε τους φίλους μας που μας ενθάρρυναν να συνεχίζουμε και να μην παραιτούμαστε στις δυσκολίες. Τέλος, θα θέλαμε να ευχαριστήσουμε τις οικογένειες μας για την μόνιμη στήριξη, βοήθεια και αγάπη καθ' ολη την διάρκεια των σπουδών μας.
  • 9. ΠΕΡΙΕΧΟΜΕΝΑ 1.ΕΙΣΑΓΩΓΗ......................................................................................................................13 1.1 Αντικείμενο της εργασίας ........................................................................................13 1.2 Διάρθρωση της εργασίας........................................................................................14 2.ΘΕΩΡΗΤΙΚΟ ΥΠΟΒΑΘΡΟ............................................................................................15 2.1 Εξαγωγή πληροφοριών ..........................................................................................15 2.2 Επεξεργασία φυσικής γλώσσας .............................................................................16 2.2.1 Συντακτική ανάλυση.........................................................................................16 2.2.2 Σημασιολογική ανάλυση...................................................................................17 2.3 Μοντέλο διανυσματικού χώρου ..............................................................................17 2.3.1 TF-IDF ..............................................................................................................17 2.3.2 Cosine Similarity...............................................................................................18 2.4 Υπάρχουσα έρευνα στον τομέα των παγκόσμιων νέων........................................18 2.4.1 Αναπαράσταση Γνώσης...................................................................................18 2.4.2 Big Data............................................................................................................20 2.4.3 Social Engineering ...........................................................................................21 2.5 Σχετικές έρευνες......................................................................................................21 3. ΠΕΡΙΓΡΑΦΗ ΣΥΣΤΗΜΑΤΟΣ .......................................................................................22 3.1 Προδιαγραφές του συστήματος..............................................................................22 3.2 Αρχιτεκτονική του συστήματος ...............................................................................23 3.3 Υλοποίηση του συστήματος ...................................................................................25 3.3.1 Εργαλεία ...........................................................................................................26 3.3.2 Συλλογή άρθρων..............................................................................................27 3.3.3 Εξαγωγή μέτα-δεδομένων ...............................................................................29 3.3.4 Ομαδοποίηση άρθρων.....................................................................................32 4. ΠΕΙΡΑΜΑΤΙΚΑ ΑΠΟΤΕΛΕΣΜΑΤΑ...............................................................................36 4.1 Προδιαγραφές περιβάλλοντος δοκιμών .................................................................36 4.2 Συλλογή άρθρων από το διαδίκτυο ........................................................................36 4.3 Ομαδοποίηση άρθρων............................................................................................37 4.3.1 Γεωγραφική ομαδοποίηση...............................................................................38 4.3.2 Ομαδοποίηση με βάρος στα άτομα .................................................................39 4.3.3 Ομαδοποίηση με βάρος στο κείμενο ...............................................................41 5. ΟΔΗΓΟΣ ΧΡΗΣΗΣ........................................................................................................43 5.1 Εγκατάσταση...........................................................................................................43 5.2 Χρήση......................................................................................................................44 6. ΣΥΜΠΕΡΑΣΜΑΤΑ ........................................................................................................46
  • 10. 6.1 Σχόλια πάνω στο σύστημα .....................................................................................46 6.2 Μελλοντικές κατευθύνσεις ......................................................................................48 ΠΙΝΑΚΑΣ ΟΡΟΛΟΓΙΑΣ ....................................................................................................50 ΑΡΚΤΙΚΟΛΕΞΑ.................................................................................................................51 ΠΑΡΑΡΤΗΜΑ I..................................................................................................................52 ΠΑΡΑΡΤΗΜΑ II.................................................................................................................53 ΠΑΡΑΡΤΗΜΑ ΙΙΙ................................................................................................................54 ΒΙΒΛΙΟΓΡΑΦΙΑ .................................................................................................................55
  • 11. ΚΑΤΑΛΟΓΟΣ ΕΙΚΟΝΩΝ Εικόνα 1: Στάδια επεξεργασίας φυσικής γλώσσας………………………………………….16 Εικόνα 2: Σχηματική αναπαράσταση του συστήματος……………………………………..23 Εικόνα 3: Αναπαράσταση του συστήματος ως άθροισμα δύο προγραμμάτων…..….….23 Εικόνα 4: Ενδεικτικό input στο Java πρόγραμμα………………………...………………….27 Εικόνα 5: Κλάση Article………………………………………………………………………..27 Εικόνα 6: Κλάση Site…………………………………………………………………………..27 Εικόνα 7: Κλάση NewsArticle…………………………………………………………………29 Εικόνα 8: Κλάση NewsAggregator……………………………………………………………32 Εικόνα 9: Κλάση Classifier……………………………………………….……………………32 Εικόνα 10: Αλγόριθμος Add Article…………………………………………………………...33 Εικόνα 11: Αλγόριθμος Add Topic……………………………………………………………34 Εικόνα 12: Αλγόριθμος Classify Article………………………………………………………35 Εικόνα 13: Χρόνος ανάκτησης άρθρων…………………………………………….………..36 Εικόνα 14: Αποτελέσματα γεωγραφικής ομαδοποίησης με 35% ομοιότητα…………….38 Εικόνα 15: Αποτελέσματα γεωγραφικής ομαδοποίησης με 50% ομοιότητα……...……..38 Εικόνα 16: Αποτελέσματα ατομικής ομαδοποίησης με 35% ομοιότητα………...………..34 Εικόνα 17: Αποτελέσματα ατομικής ομαδοποίησης με 50% ομοιότητα………….………39 Εικόνα 18: Αποτελέσματα ομαδοποίησης κειμένου με 35% ομοιότητα………….……….41 Εικόνα 19: Αποτελέσματα ομαδοποίησης κειμένου με 50% ομοιότητα…………..………41 Εικόνα 20: Ενδεικτικό αρχείο RSS_feeds.txt………………………………………………..44 Εικόνα 21: Αρχείο properties.ini……………………………….………………….…………..44 Εικόνα 22: Αύξηση χρόνου κατηγοριοποίησης……………………………………………..46 Εικόνα 23: Κωδικοί λάθους GeoNames……………………………………………………..54
  • 12. ΠΡΟΛΟΓΟΣ Αυτή η πτυχιακή εργασία αποτελεί το τελευταίο πόνημα των συγγραφέων για την λήψη των πτυχίων τους. Η συγγραφή της έλαβε χώρα στην Καλλιθέα και στον Άλιμο της Αθήνας κατά την διάρκεια του ακαδημαϊκού έτους 2014-2015. Για την παρούσα πτυχιακή εργασία επιλέξαμε ένα μη τετριμμένο θέμα, που η λύση του θα αποτελούσε πρόκληση καθώς σε όλη την διάρκεια των σπουδών μας μας άρεσαν και μας εξίταραν οι προκλήσεις και ιδιαίτερα στο να κατασκευάζουμε καινοτόμα έξυπνα συστήματα και προγράμματα. Η ομαδικότητα μας βοήθησε στο να συνδυάσουμε τις γνώσεις μας από διάφορους επιστημονικούς τομείς ώστε το αποτέλεσμα να είναι όσο το δυνατόν καλύτερο και αποδοτικό.
  • 13. Αυτόματη ανάκτηση παγκόσμιας ειδησεογραφίας και κατηγοριοποίηση της με χρήση εξαγόμενων μέτα-δεδομένων 13 Ι.Παπαπαναγιωτάκης-Μπουσύ, Α.Κωτσομητόπουλος 1.ΕΙΣΑΓΩΓΗ 1.1 Αντικείμενο της εργασίας Με την εξάπλωση του διαδικτύου η διαθέσιμη πληροφορία που υπάρχει σε αυτό αυξάνεται εκθετικά τα περασμένα χρόνια και προβλέπετε να συνεχίσει με ακόμα ταχύτερους ρυθμούς. Ένας από τους τομείς που έχουν αλλάξει δραστικά λόγω της μεταβολής αυτής είναι και ο τομέας της ειδησεογραφίας. Πλέον τα ειδησεογραφικά πρακτορεία χρησιμοποιούν κατά κόρον το διαδίκτυο για να διαδώσουν τα νέα αφήνοντας τους χρήστες να επισκεφτούν την ιστοσελίδα τους για να ενημερωθούν. Σε αυτό το μοντέλο, ο χρήστης πρέπει να ψάξει για την πληροφορία που τον ενδιαφέρει διαδικασία που μπορεί να απαιτήσει από αυτόν να επισκεφτεί πολλαπλές ιστοσελίδες και ενδεχομένως να μη βρει αυτό που θέλει. Στο πρόβλημα αυτό έχουν προτείνει λύσεις διάφορες εταιρίες με εφαρμογές που συγκεντρώνουν άρθρα από πολλά RSS feeds, η λύση αυτή όμως αποφέρει πολύ γενικά αποτελέσματα, δηλαδή οι κατηγορίες είναι πολύ ευρείες π.χ. κόσμος, αθλητικά, ψυχαγωγία και η κατηγοριοποίηση δεν γίνεται με βάση το κείμενο των άρθρων αλλά με τη διαθέσιμη γενική σήμανση (annotation) από το ειδησεογραφικό πρακτορείο. Μια άλλη προσέγγιση είναι η χρήση ανθρώπων για την κατηγοριοποίηση των άρθρων. Παρά την προσπάθεια διεθνών οργανισμών όπως το International Press Telecommunications Council (IPTC) να εισάγουν πρότυπα για την σήμανση των ειδησεογραφικών άρθρων με τέτοιο τρόπο ώστε να είναι ευκολότερη αναζήτηση σε αυτά από αυτόματα συστήματα, δεν έχει επιτευχθεί κάποιος τρόπος «εξυπνότερης» σήμανσης που να επιτρέπει ένα επίπεδο συλλογισμού και εξαγωγής μοναδικής πληροφορίας. Στην εργασία μας προσπαθούμε να επιλύσουμε το πρόβλημα της αυτόματης ομαδοποίησης άρθρων παγκόσμιας ειδησεογραφίας, προσφέροντας στον τελικό χρήστη τα άρθρα από μεγάλο αριθμό ιστοσελίδων κατηγοριοποιημένα με βάση κάποια κριτήρια ομοιότητας. Προσπαθούμε η κατηγοριοποίηση να είναι όσο το δυνατό καλύτερη έτσι ώστε κάθε κατηγορία να αναπαριστά το ίδιο συμβάν. Τέλος, παρουσιάζουμε αυτές τις θεματικές ενότητες σε φθίνουσα σειρά ως προς την δημοτικότητα τους. Για την διεκπεραίωση της εργασίας ερευνήσαμε τους επιστημονικούς τομείς της εξαγωγής πληροφοριών και επεξεργασίας φυσικής γλώσσας. Οι προκλήσεις που αντιμετωπίσαμε χωρίζονται σε τρείς κυρίως άξονες, η ανάκτηση των άρθρων από τις ειδησεογραφικές ιστοσελίδες, η εξαγωγή μέτα-δεδομένων από τα άρθρα και τέλος η συσχέτιση των άρθρων μεταξύ τους.  Αρχικά, υπάρχει η δυσκολία της ανάκτησης ολόκληρου του άρθρου και η αποφυγή όλων των περεταίρω πληροφοριών στην ιστοσελίδα όπως διαφημίσεις και μενού. Το πρόβλημα αυτό εντείνεται από την ανομοιογένεια των ιστοτόπων (websites) και από την προστασία που έχουν για κακόβουλες επιθέσεις μέσω bots.  Σχετικά με την εξαγωγή μέτα-δεδόμενων υπήρξε αρχικά ο προβληματισμός για το ποια θα είναι τα μέτα-δεδομένα αυτά έτσι ώστε να αναπαριστούν όσο καλύτερα γίνεται τα άρθρα παγκόσμιας ειδησεογραφίας και έπειτα πως θα γίνει η εξαγωγή τους.  Τέλος, όσον αφορά την συσχέτιση των άρθρων μεταξύ τους κληθήκαμε να επιλέξουμε τον καλύτερο τρόπο για τον υπολογισμό του μέτρου της ομοιότητας μεταξύ των μέτα-δεδομένων για κάθε ζευγάρι άρθρων.
  • 14. Αυτόματη ανάκτηση παγκόσμιας ειδησεογραφίας και κατηγοριοποίηση της με χρήση εξαγόμενων μέτα-δεδομένων 14 Ι.Παπαπαναγιωτάκης-Μπουσύ, Α.Κωτσομητόπουλος 1.2 Διάρθρωση της εργασίας Η εργασία ξεκινάει από το κεφάλαιο 2 το οποίο καλύπτει το απαραίτητο θεωρητικό υπόβαθρο του ευρύτερου επιστημονικού πεδίου ανάκτησης πληροφορίας από κείμενο και επεξεργασίας φυσικής γλώσσας, τα απαραίτητα εργαλεία για την σύγκριση άρθρων καθώς και διερεύνηση της περιοχής της παγκόσμιας ειδησεογραφίας. Έπειτα, στο κεφάλαιο 3, αναλύετε η δική μας προσέγγιση, παρουσιάζετε η αρχιτεκτονική του συστήματος που φτιάξαμε και εξηγούνται οι επιμέρους λειτουργίες του. Στη συνέχεια, στο 4ο κεφάλαιο, παρουσιάζονται αποτελέσματα του συστήματος μας για πραγματικά δεδομένα και γίνεται σχολιασμός αυτών. Το κεφάλαιο 5 είναι οδηγός για την πλήρη εγκατάσταση και χρήση του συστήματος και τέλος στο κεφάλαιο 6 αναφέρουμε τα συμπεράσματα μας και τα σημεία που μπορούν να βελτιωθούν περεταίρω και κατευθύνσεις που ίσως αποφέρουν καλύτερα αποτελέσματα τις οποίες δεν προλάβαμε να εξερευνήσουμε.
  • 15. Αυτόματη ανάκτηση παγκόσμιας ειδησεογραφίας και κατηγοριοποίηση της με χρήση εξαγόμενων μέτα-δεδομένων 15 Ι.Παπαπαναγιωτάκης-Μπουσύ, Α.Κωτσομητόπουλος 2.ΘΕΩΡΗΤΙΚΟ ΥΠΟΒΑΘΡΟ 2.1 Εξαγωγή πληροφοριών Εξαγωγή πληροφοριών (Information Extraction) ονομάζεται η αυτοματοποιημένη ανάκτηση πληροφοριών και γνώσης από ημιδομημένα (semi-structured) και μη δομημένα (unstructured) δεδομένα όπως κείμενα γραμμένα σε φυσική γλώσσα [1]. Η διαδικασία αυτή είναι βασισμένη στις τεχνολογίες της επεξεργασίας του φυσικού λόγου (Natural Language Processing - NLP), της μηχανικής μάθησης (machine learning), των βάσεων δεδομένων (databases) και του διαδικτύου. Η εξαγωγή πληροφοριών χρησιμοποιείται συνήθως για την αναγνώριση και εξαγωγή εξειδικευμένης πληροφορίας από διαφόρων ειδών ηλεκτρονικά αρχεία όπως ιστοσελίδες. Η σημαντικότητα της μπορεί να φανεί από τη διαφοροποίηση της από την απλή ανάκτηση πληροφοριών (Information retrieval) που στοχεύει μέσω της αναζήτησης με βάση λέξεις-κλειδιά στην εύρεση των αρχείων κειμένου που ενδέχεται να περιέχουν την λέξη αυτή. Αντιθέτως, η εξαγωγή δεδομένων στοχεύει στην αναγνώριση και εξαγωγή της χρήσιμης πληροφορίας που αναπαριστά το εκάστοτε αρχείο ως αντικείμενο κάποιας οντολογίας (ontology). Σημειώνεται ότι εδώ ο όρος οντολογία χρησιμοποιείται ελεύθερα για την αναπαράσταση γνώσης και μπορεί να είναι πολύ απλή π.χ. ένα επίπεδο σχεσιακό σχήμα βάσης δεδομένων. Ένα από τα κύρια “προβλήματα” του διαδικτύου είναι ο τεράστιος όγκος πληροφορίας που διακινείται σήμερα και η αδυναμία διαχείρισης της πληροφορίας αυτής. Με τις τεχνικές της εξαγωγής πληροφοριών μπορούμε πλέον να χρησιμοποιήσουμε τη δύναμη και εκφραστικότητα μιας γλώσσας ερωτημάτων όπως η SQL για να κάνουμε αναζητήσεις πάνω στα δεδομένα, ακόμα και αν αυτά αρχικά ήταν μη δομημένα ή ημιδομημένα. H σχετική έρευνα έχει γίνει πιο εντατική τα τελευταία χρόνια. Συνεχώς προτείνονται νέες μέθοδοι κατασκευής ανάλογων αρχιτεκτονικών και συστημάτων οι οποίες στοχεύουν σε καλύτερες επιδόσεις και στην απλοποίηση της επέκτασης της λειτουργίας υπαρχόντων συστημάτων σε νέους τομείς και νέες γλώσσες. Ενώ αρχικά η εξαγωγή πληροφοριών βασιζόταν σε χειροποίητους ευρεσιτεχνικούς κανόνες [2], στην συνέχεια χρησιμοποιήθηκαν τεχνικές τεχνητής νοημοσύνης για την εύρεση καλύτερων κανόνων [3]. Καθώς η χρήση της εξαγωγής πληροφοριών εξαπλώθηκε και τα δεδομένα έγιναν ακόμα πιο αδόμητα, αναπτύχθηκαν παράλληλα δύο μέθοδοι στατιστικής μάθησης, πρώτον η χρήση κρυφών μοντέλων Markov [4] (Hidden Markov Models) και δεύτερον μοντέλα μέγιστης εντροπίας με περιορισμούς [5]. Τέλος, για καθολική προσέγγιση του θέματος χρησιμοποιούνται πιο πρόσφατα τεχνικές της κατασκευής γραμματικών [6]. Από όλες αυτές τις τεχνικές δεν υπάρχει ξεκάθαρος νικητής και πολλές φορές χρησιμοποιούνται συμπληρωματικά [7]. Η βελτίωση στην ποιότητα των αποτελεσμάτων είναι ραγδαία τα τελευταία χρόνια αλλά έχει ακόμα πολλά περιθώρια βελτίωσης.
  • 16. Αυτόματη ανάκτηση παγκόσμιας ειδησεογραφίας και κατηγοριοποίηση της με χρήση εξαγόμενων μέτα-δεδομένων 16 Ι.Παπαπαναγιωτάκης-Μπουσύ, Α.Κωτσομητόπουλος 2.2 Επεξεργασία φυσικής γλώσσας Η επεξεργασία φυσικής γλώσσας είναι ο κλάδος της επιστήμης της πληροφορικής που ασχολείται με ανάπτυξη τεχνικών για την ομαλή αλληλεπίδραση μεταξύ των υπολογιστών και των ανθρώπινων γλωσσών [8]. Στην ευρύτερη έννοια της η επεξεργασία φυσικής γλώσσας περιλαμβάνει την επεξεργασία σήματος και την αναγνώριση ομιλίας, έννοιες που δεν θα μας απασχολήσουν, αντιθέτως θα επικεντρωθούμε στην συντακτική και σημασιολογική ανάλυση. Τέλος, το πεδίο αυτό μπορεί να χωριστεί σε δύο μέρη, την κατανόηση φυσικών γλωσσών και την παραγωγή φυσικού λόγου, εμείς θα εστιάσουμε στο πρώτο που συχνά αποκαλείται και κατανόηση φυσικής γλώσσας (Natural language understanding) [9, 10]. Στον πυρήνα της, η επεξεργασία φυσικής γλώσσας αποτελείται από τρία στάδια, την διάσπαση του κειμένου σε λεξιλογικές μονάδες (tokenization), την συντακτική ανάλυση και την σημασιολογική ανάλυση. Το πρώτο στάδιο είναι προεπεξεργασία της εισόδου κατά την οποία το κείμενο «σπάει» σε λέξεις (tokens). Εικόνα 1: Στάδια επεξεργασίας φυσικής γλώσσας 2.2.1 Συντακτική ανάλυση Η συντακτική ανάλυση είναι αρκετά περίπλοκη διαδικασία. Έχουμε την τάση να υποθέτουμε ότι ένας υπολογιστής θα μπορούσε δοθέντος ενός λεξικού λέξεων, μαζί με το είδος του λόγου για κάθε μία, και τους κανόνες της γραμματικής, και με τη χρήση αυτών των πληροφοριών να επεξεργαστεί μία πρόταση φυσικής γλώσσας. Αλλά αυτό δεν τόσο απλό, κυρίως λόγω του προβλήματος της ασάφειας σε πολλά επίπεδα. Για να ερμηνεύσει σωστά φράσεις φυσικής γλώσσας, το σύστημα δεν πρέπει μόνο να αναλύσει τις φράσεις γραμματικά, αλλά επίσης να συσχετίσει τις λέξεις με πράγματα του κόσμου και με το γενικό πλαίσιο της εμφάνισης της φράσης. Μπορεί να απαιτεί ακόμη και διαλεύκανση οποιουδήποτε σημασιολογικού ζητήματος που εμποδίζει μια σωστή συντακτική ανάλυση. Ξεκινώντας με μια πρόταση σε φυσική γλώσσα, το αποτέλεσμα της συντακτικής ανάλυσης θα αποφέρει μια συντακτική αναπαράσταση σε μια γραμματική. Πρόκειται για μορφή που συχνά εμφανίζεται ως δεντρικό διάγραμμα. Αυτός ο τύπος συντακτικής αναπαράστασης θα μπορούσε επίσης να ονομαστεί «δομικής περιγραφής» (structural description). Η συντακτικές αναπαραστάσεις της γλώσσας χρησιμοποιούν γραμματικές χωρίς συμφραζόμενα (context-free grammars), που παρουσιάζουν τις φράσεις ως μέρη άλλων φράσεων σε κάτι που θα μπορούσε να θεωρηθεί μια μορφή χωρίς συμφραζόμενα (context-free form).
  • 17. Αυτόματη ανάκτηση παγκόσμιας ειδησεογραφίας και κατηγοριοποίηση της με χρήση εξαγόμενων μέτα-δεδομένων 17 Ι.Παπαπαναγιωτάκης-Μπουσύ, Α.Κωτσομητόπουλος 2.2.2 Σημασιολογική ανάλυση Μετά την συντακτική ανάλυση, η σημασιολογική ανάλυση θα αποφέρει τη λογική μορφή της φράσης. Η λογική μορφή χρησιμοποιείται για να συλλάβει τη σημασιολογική σημασία και απεικονίζει την έννοια ανεξάρτητα από οποιοδήποτε πλαίσιο. Η διαδικασία που ακολουθείται είναι πέραν του σκοπού αυτής της εργασίας και αποτελεί ανοικτό ενεργό πεδίο έρευνας. Συνοπτικά, με την χρήση μια παραπλήσιας γλώσσας με την λογική πρώτης τάξης (First order predicate calculus) εφαρμόζονται αυτές οι κανονικές εκφράσεις που αναπαριστούν κάποια πρότυπα (templates). Τέλος, γίνεται συνδυασμός αυτών των προτύπων σε μία συνολική αναπαράσταση, την λογική μορφή της πρότασης. Αναφέρεται επίσης πως μερικοί επιστήμονες ξεχωρίζουν ένα ακόμα στάδιο που αποκαλούν Pragmatics κατά το οποίο αποσαφηνίζονται σημασιολογικές ανακρίβειες με βάση το πλαίσιο αναφοράς στο οποίο βρίσκονται. Συχνά αυτό καθιστά το τελευταίο στάδιο της σημασιολογικής ανάλυσης. 2.3 Μοντέλο διανυσματικού χώρου Το μοντέλο διανυσματικού χώρου (Vector space model) είναι ένας αλγεβρικός τρόπος αναπαράστασης κειμένων που χρησιμοποιείται σε τομείς όπως η εξαγωγή πληροφοριών και η ομοιότητα κειμένων (text similarity) [11]. Κατά το μοντέλο αυτό, κάθε κείμενο αναπαρίσταται ως ένα διάνυσμα του οποίου κάθε διάσταση αντιστοιχεί σε έναν όρο. Η τιμή (βάρος) που παίρνει κάθε διάσταση καθορίζεται από μία συνάρτηση, πιο γνωστή απ’ όλες είναι η term frequency-inverse document frequency εν συντομία tf-idf. Με αντίστοιχο τρόπο αναπαρίστανται και τα ερωτήματα σαν διανύσματα και έπειτα υπάρχουν διάφοροι τρόποι εύρεσης της απόστασης ενός ερωτήματος από ένα κείμενο. 2.3.1 TF-IDF Το term frequency – inverse document frequency είναι ένας στατιστικός τρόπος για τον υπολογισμό της σημαντικότητας μίας λέξης σε ένα κείμενο [12] . Όπως φαίνεται και από το όνομα του όρου χωρίζεται σε δύο κομμάτια. 1. Term frequency, υπολογίζει την συχνότητα εμφάνισης μίας λέξης σε ένα κείμενο. Η χρήση αυτού βασίζεται στην υπόθεση του Hans Peter Luhn [13] κατά την οποία το βάρος ενός όρου σε ένα κείμενο είναι ανάλογο της συχνότητας εμφάνισης του. 2. Inverse document frequency, υπολογίζει την συχνότητα εμφάνισης λέξεων σε δύο κείμενα έτσι ώστε οι λέξεις που εμφανίζονται συχνά σε όλα τα κείμενα (π.χ. τα άρθρα) να μην έχουν μεγάλο βάρος. Ο συνδυασμός των δύο παραπάνω δίνει μία πολύ καλή μετρική για το βάρος μίας λέξης μέσα σε ένα κείμενο.
  • 18. Αυτόματη ανάκτηση παγκόσμιας ειδησεογραφίας και κατηγοριοποίηση της με χρήση εξαγόμενων μέτα-δεδομένων 18 Ι.Παπαπαναγιωτάκης-Μπουσύ, Α.Κωτσομητόπουλος 2.3.2 Cosine Similarity Η απόσταση συνημίτονου (cosine similarity) είναι ένα μέτρο ομοιότητας δύο διανυσμάτων. Υπολογίζει την γωνία μεταξύ τους. Δύο ίδια διανύσματα που άρα έχουν μεταξύ τους γωνία ίση με το μηδέν έχουν απόσταση συνημίτονου ίση με 1. Κάθε άλλη γωνία έχει τιμή ≤ |1|. Η μετρική αυτή χρησιμοποιείται πολύ συχνά σε συνδυασμό με το tf-idf που περιγράφηκε στην προηγούμενη παράγραφο για τον υπολογισμό της ομοιότητας μεταξύ δύο κειμένων. Συχνά συναντάται και ως αντίστροφη απόσταση συνημίτονου (inverse cosine similarity) κατά την οποία η απόσταση ενός διανύσματος από τον εαυτό του είναι μηδέν και η απόσταση κάθετων διανυσμάτων είναι 1. 2.4 Υπάρχουσα έρευνα στον τομέα των παγκόσμιων νέων Η παγκόσμια ειδησεογραφία είναι πλούσιος τομέας με εκατοντάδες πρακτορεία και εφημερίδες σε όλον τον κόσμο να συνεισφέρουν καθημερινά σε ένα τεράστιο ποσό πληροφορίας η οποία είναι πλέον διαθέσιμη μέσω του διαδικτύου. Παρά τις προσπάθειες που έχουν γίνει για δημιουργία προτύπων για την σήμανση των άρθρων, έτσι ώστε να μπορούν να κατηγοριοποιηθούν αυτόματα τα αποτελέσματα δεν είναι ικανοποιητικά. Περιορίζονται σε γενικές κατηγορίες π.χ. κόσμος, αθλητικά και ψυχαγωγία. Το πρόβλημα αυτό υπάρχει για δύο σχετιζόμενους λόγους. Πρώτον, δεν υπάρχουν τα κατάλληλα εργαλεία για την αυτοματοποίηση της σήμανσης ενός άρθρου με μέτα-δεδομένα που να μπορούν να το αναπαραστήσουν ως αναφορά μοναδικού γεγονότος. Σε ειδικές περιπτώσεις, η δουλειά αυτή ανατίθεται σε άνθρωπο, αλλά αυτό δεν μπορεί να γενικευθεί στο συνόλων των άρθρων. Δεύτερον, επειδή ακριβώς η διαδικασία αυτή είναι πολύπλοκή και η προσφορά εξειδικευμένων μέτα-δεδομένων δεν αποφέρει σημαντικά κέρδη στις εταιρίες αυτές, είτε δεν ασχολούνται με αυτό είτε κρατάνε τα αποτελέσματα ιδιωτικά ως ανταγωνιστικό πλεονέκτημα. Αυτό έχει οδηγήσει επιστήμονες να προσεγγίσουν το πρόβλημα αυτό από διάφορα πεδία, στη συνέχεια παρουσιάζουμε μερικές αξιόλογες προσπάθειες. 2.4.1 Αναπαράσταση Γνώσης Ένας τρόπος που έχει χρησιμοποιηθεί κατά κόρον σε αρκετές εφαρμογές για την σύγκριση κειμένων και συγκεκριμένα στο πεδίο της ειδησιογραφίας είναι η προσέγγιση με οντολογίες. Πριν μερικά χρόνια η μέθοδος αυτή θεωρείτο ως η κύρια και η καταλληλότερη για την επίλυση του παραπάνω προβλήματος. Η οντολογία χρησιμοποιεί συσχετίσεις και έννοιες για να εκπροσωπήσει την γνώση (λ.χ. στην περίπτωση μας δεδομένα από ειδησεογραφικά άρθρα) με έναν ιεραρχικό τρόπο επιτρέποντας επιπλέον εξαγωγή πληροφοριών από τον συλλογισμό πάνω σε αυτήν. Στην συνέχεια χρησιμοποιούνται τεχνικές για εκτέλεση ερωτημάτων πάνω στα δεδομένα με παρόμοιο τρόπο με την χρήση των βάσεων δεδομένων. Σημαντική δουλειά σε αυτό τον τομέα έχει γίνει από το IPTC [14] με τη δημιουργία του NewsML-G2 [15] για την διευκόλυνση της δια λειτουργικότητας πληροφοριακών συστημάτων σχετικά με την ειδησεογραφία. Η προσέγγιση αυτή απαιτεί την επιλογή ενός στενού πεδίου εφαρμογής και την πολύ καλή γνώση αυτού για τον σχεδιασμό μιας καλής οντολογίας, πράγμα που μπορεί να είναι πολύ δύσκολο, και αν το πεδίο είναι δυναμικό η οντολογία θα χρειάζεται διαρκώς ενημέρωση. Μερικές αξιοσημείωτες ερευνητικές προσπάθειες:
  • 19. Αυτόματη ανάκτηση παγκόσμιας ειδησεογραφίας και κατηγοριοποίηση της με χρήση εξαγόμενων μέτα-δεδομένων 19 Ι.Παπαπαναγιωτάκης-Μπουσύ, Α.Κωτσομητόπουλος  Οι Kalfoglou et al. με το myPlanet [16] παρουσιάζουν μια οντολογία με γνώμονα ειδικευμένα web-services με επιπρόσθετες έξυπνες λειτουργίες σχετικά με τις ειδήσεις. Συγκεκριμένα παρέχουν ελαφριά μέσα με την βοήθεια από οντολογίες που θα έχουν εύκολη πρόσβαση και συντήρηση στα αποθηκευμένα αντικείμενα ειδήσεων τα οποία θα απαρτίζουν μια πλούσια πηγή για ανταλλαγή πληροφοριών. Αναλύουν και επεξεργάζονται τρόπους που θα μπορέσει να διαμοιραστεί η πληροφορία στους χρήστες με βάση τις προσωπικές τους προτιμήσεις και τα ενδιαφέροντα τους σε συγκεκριμένους τομείς. Αντιστοιχίζει τα αντικείμενα των πληροφοριών με τα προσωπικά ενδιαφέροντα των χρηστών με την χρήση ευρεστικών συναρτήσεων.  Η αυτόματη συμπλήρωση οντολογιών είναι δύσκολη και έτσι αυτές χρησιμοποιούνται κυρίως από αυτούς που είναι σε θέση να την συμπληρώσουν χειρωνακτικά όπως σημειώνεται από τους Norberto Fernandez-Garcıa και Luis Sanchez-Fernandez [17] οι οποίοι στην εργασία τους παρουσιάζουν εργαλεία που θα καταστήσουν δυνατή την εισαγωγή της σημασιολογικής (Semantic) διαδικτυακής τεχνολογίας στον επίσημο δημοσιογραφικό χώρο με ένα αυτόματο μοντέλο με ανθρώπινη επίβλεψη. Αναπτύσσονται οντολογίες για ειδησεογραφικές εφαρμογές και αναλύονται οι προηγούμενες τεχνικές και απόπειρες επίτευξης αυτής της προσέγγισης, καθώς και επίσης τα προβλήματα που υπήρξαν και που θα υπάρξουν στο μέλλον. Επιπρόσθετα παρατίθενται λύσεις στα αναφερθέντα προβλήματα.  Η Lena Tenenboim et al. ασχολήθηκαν με την δημιουργία του ePaper [18] που ταξινομεί, ομαδοποιεί και διαχωρίζει ειδησεογραφικά άρθρα σε προσωπικές διαδικτυακές εφημερίδες κυρίως για έξυπνα κινητά τηλέφωνα (Smartphones). Το ePaper σύστημα ομαδοποιεί διαφορετικά άρθρα από ένα μεγάλο σύνολο παρόχων ειδήσεων αξιοποιώντας αρκετές μεθόδους φιλτραρίσματος, όπως με βάση το περιεχόμενο των κειμένων αλλά και την μεταξύ τους διασύνδεση. Το paper αναλύει τον αυτοματοποιημένο τρόπο κατηγοριοποίησης των εισερχόμενων ειδήσεων βάσει της ιεραρχικής οντολογίας ειδήσεων, που καταφέρνει να αντιστοιχίσει τα κατάλληλα νέα ανάλογα με τις προτιμήσεις του εκάστοτε χρήστη της εφαρμογής. Το σύστημα αυτό βασίζεται αποκλειστικά στα μέτα-δεδομένα που παρέχουν τα ειδησεογραφικά πρακτορεία και δεν ασχολείται με την δημιουργία καινούργιας μέτα-πληροφορίας.
  • 20. Αυτόματη ανάκτηση παγκόσμιας ειδησεογραφίας και κατηγοριοποίηση της με χρήση εξαγόμενων μέτα-δεδομένων 20 Ι.Παπαπαναγιωτάκης-Μπουσύ, Α.Κωτσομητόπουλος 2.4.2 Big Data Μια πιο πρόσφατη προσέγγιση είναι η ανάπτυξη μέσω Εξόρυξης Δεδομένων (Data mining) σε συνδυασμό με την Συσταδοποίηση (Clustering). Είναι μία έννοια η οποία συνήθως παραπέμπει σε κάθε είδος φόρμας με μεγάλη ποσότητα δεδομένων ή επεξεργασία δεδομένων (συλλογή, εξαγωγή δεδομένων, warehouse, ανάλυση δεδομένων και στατιστικής), αλλά επίσης γενικεύεται σε κάθε είδος συστήματος λήψης αποφάσεων όπως στην τεχνητή νοημοσύνη και στην εκμάθηση μηχανής. Στόχος είναι η αυτόματη ή ημιαυτόματη ανάλυση μεγάλων ποσοτήτων δεδομένων και ο διαχωρισμός τους σε ένα σύνολο από λογικές ομάδες για την εξαγωγή τον κατάλληλων πληροφοριών. Μπορεί να είναι λιγότερο έξυπνη προσέγγιση από την οντολογία, αλλά παρατηρούνται καλύτερα αποτελέσματα, εξ ου και η εμφάνιση της σε μεγάλες εταιρίες και εφαρμογές όπως το Google News.  Ένα δημοφιλές σύστημα που χρησιμοποιεί αυτή την τεχνική είναι το Columbia Νewsblaster [19] το οποίο μέσω της συσταδοποίησης και της σύνοψης (summarization) καταφέρνει να αποθηκεύσει, να οργανώσει και να ταξινομήσει σε κατηγορίες ειδησεογραφικά άρθρα ακόμα και από διαφορετικές γλώσσες επιτρέποντας στους χρήστες να συγκρίνουν τις διαφορετικές απόψεις και προοπτικές που υπάρχουν για το ίδιο άρθρο. Αξιοσημείωτη είναι και η χρήση τεχνικών εξόρυξης κειμένου (Text Mining) η οποία είναι υποκατηγορία της εξαγωγής δεδομένων.  Στην εργασία τους [20] οι Najaf Ali Shah και ο Ehab M. El Bagesh αναφέρουν τη δυσκολία που αντιμετωπίζουν στις μέρες μας οι μηχανές αναζητήσεις να εντοπίσουν τα σωστά αποτελέσματα χωρίς αρκετή βοήθεια από τους χρήστες εφόσον οι πιο πολλές χρησιμοποιούν απλώς λέξεις κλειδιά. Στη συνέχεια παρουσιάζουν ένα σύστημα στο οποίο ομαδοποιούν ειδησεογραφικά άρθρα βασιζόμενοι στο περιεχόμενο τους. Έχουν επικεντρωθεί στην εφαρμογή τεχνικών εξόρυξης κειμένου, ώστε να επιλύσουν τα προβλήματα που δημιουργούνται στην οργάνωση των ειδήσεων στα μέσα μαζικής ενημέρωσης αλλά και σε άλλους τομείς όπως των δημόσιων σχέσεων.
  • 21. Αυτόματη ανάκτηση παγκόσμιας ειδησεογραφίας και κατηγοριοποίηση της με χρήση εξαγόμενων μέτα-δεδομένων 21 Ι.Παπαπαναγιωτάκης-Μπουσύ, Α.Κωτσομητόπουλος 2.4.3 Social Engineering Τα τελευταία χρόνια μια νέα τεχνική και ένας νέος τρόπος κατηγοριοποίησης άρθρων έκανε την εμφάνιση του. Με την δημιουργία των κοινωνικών δικτύων (Social Media π.χ. Facebook, Twitter, MySpace, Hi5) και την ραγδαία συμμετοχή εκατομμυρίων χρηστών έγινε και γίνεται προσπάθεια για την ομαδοποίηση των ειδησεογραφικών άρθρων με βάση τις δραστηριότητες του εκάστοτε χρήστη, με βάση την δημοτικότητα του άρθρου και του αντικτύπου στα μέσα κοινωνικής δικτύωσης. Οι Roja Bandari, Sitaram Asur και Bernardo A. Huberman [21] κατάφεραν να ομαδοποιήσουν άρθρα με βάση τον αριθμό των αναρτήσεων που θα είχαν στα Social Media χρησιμοποιώντας τεχνικές παλινδρόμησης (Regression) και συσταδοποίησης με αρκετά ικανοποιητικά αποτελέσματα και ποσοστά που φτάνουν το 85% εγκυρότητας στην πρόβλεψη της δημοτικότητας από τα Social Media και συγκεκριμένα στο Twitter. Επιπρόσθετα γίνονται συγκρίσεις σε παραδοσιακές τεχνικές με εξαιρετικά δημοφιλείς τεχνικές στον χώρο του κοινωνικού διαδικτύου (Social Web) Αναφέρεται ότι είναι δυνατόν να χαρακτηριστεί ένα άρθρο σημαντικό και δημοφιλές χωρίς καν να εξεταστεί το περιεχόμενο του με βάση μόνο το πόσοι χρήστες το έχουν ανάρτηση στην προσωπική τους σελίδα ή το έχουν διαβάσει. Η ομοιότητα των άρθρων στα μέσα κοινωνικής δικτύωσης έχει σκοπό να εμφανίζονται στους χρήστες άρθρα βάσει παρόμοιων που ο εκάστοτε χρήστης έχει επισκεφθεί και άρθρα που σχετίζονται με τις δραστηριότητες του. 2.5 Σχετικές έρευνες Παρακάτω αναφέρουμε κάποιες επιπλέον ενδιαφέρουσες εργασίες που μελετήσαμε κατά την έρευνα μας οι οποίες σχετίζονται άμεσα με την δικιά μας εργασία. Οι εργασίες αυτές αναφέρονται ξεχωριστά, καθώς η προσέγγιση τους περιέχει στοιχεία από διάφορα πεδία και δεν μας φάνηκε σωστό να τις αναθέσουμε σε κάποια από τις τρεις προαναφερθείσες κατηγορίες. Αξιοσημείωτη είναι η προσπάθεια του Manos Tsagias, Maarten de Rijke, και του Wouter Weerkamp [22] να συνδέσουν ειδησεογραφικά άρθρα με τις δημοσιεύσεις στα μέσα κοινωνικής δικτύωσης που αναφέρονται στο ίδιο θέμα. Συγκεκριμένα αντλούν από τα άρθρα μοντέλα ερωτήσεων (Query models) και προσπαθούν να τα εφαρμόσουν στα μέσα κοινωνικής δικτύωσης με αποτέλεσμα να δημιουργούνται λίστες κατάταξης με τα δεδομένα. Έπειτα προσπαθούν να τα ομαδοποιήσουν και να τα συγχωνεύσουν με τεχνικές συγχώνευσης δεδομένων (Data Fusion). Έχουν επίσης χρησιμοποιήσει γραφήματα για την διασύνδεση των όρων, ώστε να απλοποιηθεί ο όγκος του κειμένου. Οι David Vallet, Miriam Fernández και Pablo Castells [23] προσπάθησαν να βρουν πληροφορίες από μεγάλα κείμενα-άρθρα με την χρήση οντολογιών. Παρουσιάζουν ένα μοντέλο που βελτιώνει την απλή αναζήτηση με βάση τις λέξεις κλειδιά, η προσέγγιση τους περιλαμβάνει ένα σύστημα οντολογίας με βάση έναν ημιαυτόματο σχολιασμό των κειμένων που μπορεί να βάζει βάρη σε συγκεκριμένες λέξεις κλειδιά του κειμένου, πράγμα αρκετά παρόμοιο με την δική μας προσέγγιση που βάζουμε "βάρος" στις κατηγορίες όπως τοποθεσία, οργανισμοί, πρόσωπα κλπ. Υιοθέτησαν επίσης το κλασικό αλγεβρικό μοντέλο χώρου που είναι υπεύθυνο για την αναπαράσταση εγγράφων κειμένου με χρήση δεικτών και χρησιμοποιείται για φιλτράρισμα και ανάκτηση πληροφοριών καθώς και για την σωστή κατάταξη των "βαρών" στα δεδομένα.
  • 22. Αυτόματη ανάκτηση παγκόσμιας ειδησεογραφίας και κατηγοριοποίηση της με χρήση εξαγόμενων μέτα-δεδομένων 22 Ι.Παπαπαναγιωτάκης-Μπουσύ, Α.Κωτσομητόπουλος 3. ΠΕΡΙΓΡΑΦΗ ΣΥΣΤΗΜΑΤΟΣ 3.1 Προδιαγραφές του συστήματος Όπως προαναφέρθηκε, ο τομέας τον παγκόσμιων ειδήσεων περιέχει πολλή πληροφορία που αλλάζει διαρκώς. Γίνονται πολλές προσπάθειες για την όλο και καλύτερη επεξεργασία αυτής της πληροφορίας με σκοπό να είναι ακόμα πιο χρήσιμη. Η ανάγκη που στοχεύουν να καλύψουν οι προσπάθειες αυτές είναι αυτή μια εξειδικευμένη μηχανή αναζήτησης πάνω στον τομέα αυτό που να επιτρέπει ερωτήσει που απαιτούν όλο και βαθύτερο συλλογισμό. Προς αυτήν την κατεύθυνση και συνδυάζοντας ιδέες από υπάρχουσες τεχνολογίες και συστήματα κατασκευάσαμε για την εργασία αυτή το παρόν σύστημα. Το σύστημα αυτό ανακτά άρθρα ιστοσελίδων από το διαδίκτυο και έπειτα παρουσιάζει στον χρήστη μία λίστα από θεματικές ενότητες που ξεχωρίζουν. Κάθε θεματική ενότητα αντιπροσωπεύεται από τους ηλεκτρονικούς συνδέσμους των άρθρων που συμμετέχουν σε αυτήν. Η ενότητες αυτές κατατάσσονται σε φθίνουσα σειρά ως προς τον αριθμό των συνδέσμων που περιέχουν. Επίσης, το σύστημα δέχεται κάποιες παραμέτρους με τις οποίες ο χρήστης μπορεί να καθορίσει ποια πληροφορία θα είναι σημαντική κατά την ομαδοποίηση των άρθρων σε θεματικές ενότητες. Ο τελικός μας στόχος είναι οι κατηγορίες/θεματικές ενότητες που εξάγει το σύστημα να είναι όσο το δυνατόν μεγαλύτερες (να έχουν μεγάλο αριθμό σχετικών άρθρων) χωρίς να περιέχουν θόρυβο (άρθρα που δεν σχετίζονται). Τέλος, πρέπει να επισημανθεί ότι στοχεύουμε στην ομαδοποίηση άρθρων που μιλάνε για το ίδιο γεγονός ή πολύ παραπλήσιο και όχι γενικές κατηγορίες.
  • 23. Αυτόματη ανάκτηση παγκόσμιας ειδησεογραφίας και κατηγοριοποίηση της με χρήση εξαγόμενων μέτα-δεδομένων 23 Ι.Παπαπαναγιωτάκης-Μπουσύ, Α.Κωτσομητόπουλος 3.2 Αρχιτεκτονική του συστήματος Στη ενότητα αυτή δίνουμε μία περιγραφή της αρχιτεκτονικής του συστήματος. Το σύστημα μπορεί να διαχωριστεί σε κάποιες βασικές λειτουργικές μονάδες όπως φαίνεται στο παρακάτω σχήμα. Εικόνα 2: Σχηματική αναπαράσταση του συστήματος Επίσης, σημαντικό για την κατανόηση της δομής και λειτουργίας του συστήματος είναι ο διαχωρισμός που παρουσιάζεται παρακάτω που αναπαριστά το σύστημα ως το άθροισμα δύο υποσυστημάτων/προγραμμάτων, όπως φαίνεται στην επόμενη εικόνα.
  • 24. Αυτόματη ανάκτηση παγκόσμιας ειδησεογραφίας και κατηγοριοποίηση της με χρήση εξαγόμενων μέτα-δεδομένων 24 Ι.Παπαπαναγιωτάκης-Μπουσύ, Α.Κωτσομητόπουλος Εικόνα 3: Αναπαράσταση του συστήματος ως άθροισμα δύο προγραμμάτων Κάθε ένα από τα δύο προγράμματα έχει την δομή που εξυπηρετεί καλύτερα τον σκοπό του. Καθώς και τα δύο προγράμματα ακολουθούν το πρότυπο του αντικειμενοστραφούς προγραμματισμού, στην συνέχεια παρουσιάζουμε τις βασικές τους κλάσης με τα δεδομένα και τις κύριες λειτουργίες τους.
  • 25. Αυτόματη ανάκτηση παγκόσμιας ειδησεογραφίας και κατηγοριοποίηση της με χρήση εξαγόμενων μέτα-δεδομένων 25 Ι.Παπαπαναγιωτάκης-Μπουσύ, Α.Κωτσομητόπουλος 3.3 Υλοποίηση του συστήματος Σε αυτή την ενότητα αναλύουμε την υλοποίηση του συστήματος. Παρουσιάζουμε αρχικά τα εργαλεία που χρησιμοποιήσαμε και στη συνέχεια ξεχωριστά κάθε μία από τις τρείς κύριες λειτουργίες, την συλλογή των άρθρων, την εξαγωγή μέτα-δεδομένων και την ομαδοποίηση των άρθρων. Αξίζει να αναφέρουμε ότι αξιολογήσαμε διάφορα εργαλεία και τεχνικές για την υλοποίηση του συστήματος μας. Θεωρούμε άξια αναφοράς τα παρακάτω: Στην αρχική μας προσέγγιση είχαμε στόχο για μια δοθείσα ιστοσελίδα να καταφέρουμε να συλλέξουμε όλες τις χρήσιμες πληροφορίες από αυτήν. Συγκεκριμένα, είχαμε υλοποιήσει συναρτήσεις σε Java οι οποίες αποθηκεύουν σε βάση δεδομένων SQL όλους τους συνδέσμους (link) από μια αρχική ιστοσελίδα, που ανήκουν στον ίδιο ιστότοπο, με αποφυγή όλων των URL που κατευθύνουν σε εικόνες, αρχεία, ή που τα έχουμε ξαναεπισκεφθεί. Αυτό έγινε με την χρήση ομάδας νημάτων (thread pool) και βιβλιοθηκών για βέλτιστη ταχύτητα στην προσπέλαση. Η ιδέα ήταν ότι θα μπορούμε να δημιουργήσουμε ένα ευρετήριο με λέξεις κλειδιά πάνω στην ιστοσελίδα ξεχωρίζοντας π.χ. τα κομμάτια που αναφέρονται σε world_news, local_news, sports, technology κτλ. Αποθηκεύοντας αυτό το ευρετήριο στην βάση δεδομένων θα μπορούσαμε να απαντήσουμε γρήγορα σε ερωτήματα σχετικά με τα δεδομένα μας όπως ποιες πληροφορίες αφορούν μια συγκεκριμένη χώρα ή πόλη. Η προσπάθεια αυτή αποδείχθηκε πολύ φιλόδοξη και εν τέλει ματαιώθηκε καθώς πέρα από τις σελίδες με άρθρα οι ιστότοποι των ειδησεογραφικών πρακτορείων περιέχουν μεγάλη ποσότητα άχρηστης πληροφορίας για το δικό μας σύστημα και αυτό σε συνδυασμό με την ποικιλομορφία των διάφορων ιστοτόπων που μας αφορούν καθιστά το φιλτράρισμα της χρήσιμης πληροφορίας πολύ δύσκολο και επεξεργαστικά πολύ ακριβό καθώς μιλάμε για μεγάλο όγκο δεδομένων. Έτσι στραφήκαμε στην χρήση του RSS το οποίο μας επιτρέπει να προσπελάυνουμε μόνο τις ιστοσελίδες με άρθρα. Για την επεξεργασία των άρθρων, αρχικά δοκιμάσαμε το GATE [24] το οποίο είναι ένα ώριμο εργαλείο επεξεργασίας φυσικής γλώσσας το οποίο όμως αποδείχθηκε δύσχρηστο στην προσαρμογή του σε αυτό που θέλαμε. Το GATE είναι προσανατολισμένο προς την προσέγγιση των οντολογιών, ενώ εμείς θέλαμε να ξεφύγουμε από τον αυστηρό ορισμό της οντολογίας και να χρησιμοποιήσουμε μερικές έννοιες από αυτήν για την βελτιστοποίηση της σύγκρισης των άρθρων. Αυτό μας οδήγησε να ψάξουμε για εναλλακτικές λύσεις και έτσι καταλήξαμε στην χρήση της γλώσσας Python.
  • 26. Αυτόματη ανάκτηση παγκόσμιας ειδησεογραφίας και κατηγοριοποίηση της με χρήση εξαγόμενων μέτα-δεδομένων 26 Ι.Παπαπαναγιωτάκης-Μπουσύ, Α.Κωτσομητόπουλος 3.3.1 Εργαλεία Για την ανάκτηση των άρθρων από τις ιστοσελίδες και την αποθήκευσή τους σε οντότητες XML αρχείων επιλέξαμε την γλώσσα προγραμματισμού Java με περιβάλλον ανάπτυξης το Εclipse, διότι εκτός από το ότι μας προσφέρει μια μεγάλη γκάμα από βιβλιοθήκες είναι συμβατή με όλα τα λειτουργικά συστήματα (Windows, Mac, Linux). Για την βοήθεια στην εξαγωγή μόνο του κύριου άρθρου από κάθε ισότοπο χρησιμοποιήσαμε την βιβλιοθήκη Boilerpipe [25]. Μια άλλη βιβλιοθήκη που μας βοήθησε για την επεξεργασία RSS είναι η ROME [26]. Για την εξαγωγή των δεδομένων μας σε αρχεία XML χρησιμοποιήσαμε την βιβλιοθήκη JDOM [27] και Xerces [28]. Για την επεξεργασία των άρθρων διαλέξαμε την γλώσσα προγραμματισμού Python [29] η οποία, όπως και οι υπόλοιπες scripting γλώσσες, ενδείκνυται για την επεξεργασία κειμένου. Όντας μια γλώσσα πολύ υψηλού επιπέδου μας διευκόλυνε να επικεντρωθούμε στις ουσιαστικές διαδικασίες χωρίς ιδιαίτερες τεχνικές δυσκολίες που θα είχαν παρουσιάσει γλώσσες όπως η C/C++. Καθοριστικός παράγοντας για την επιλογή της Python έναντι άλλων scripting γλωσσών υπήρξε η ευρεία υποστήριξη της γλώσσας από βιβλιοθήκες που μας χρειάστηκαν για την επεξεργασία φυσικής γλώσσας. Σημαντικότερη όλων είναι η βιβλιοθήκη Natural Language Toolkit – NLTK [30] της οποίας η ευκολία χρήσης, η πληθώρα λειτουργιών και οι ποιότητα της βιβλιοθήκης την καθιστούν κορυφαίο εργαλείο για επεξεργασία φυσικής γλώσσας [31]. Άλλες βιβλιοθήκες που μας χρειάστηκαν είναι: TextBlob [32] που βασίζεται στην NLTK και την pattern [33] για να προσφέρει επιπλέον διευκόλυνση στην επεξεργασία φυσικής γλώσσας, Hashtagify [34] που βρίσκει τις λέξεις από τον τίτλο ενός κειμένου που έχουν μεγάλη βαρύτητα σχετικά με το κείμενο, scikit-learn – sklearn [35] για την σύγκριση των παραγόμενων μέτα-δεδομένων και Beautiful Soup [36] για την διαχείριση web requests με Python.
  • 27. Αυτόματη ανάκτηση παγκόσμιας ειδησεογραφίας και κατηγοριοποίηση της με χρήση εξαγόμενων μέτα-δεδομένων 27 Ι.Παπαπαναγιωτάκης-Μπουσύ, Α.Κωτσομητόπουλος 3.3.2 Συλλογή άρθρων Για την ανάκτηση των άρθρων από περίπου 50 δημοφιλή websites ειδήσεων ( π.χ. BBC, CNN, FOX) παίρνουμε τα τελευταία και πιο επίκαιρα δημοσιογραφικά άρθρα. Συγκεκριμένα χρησιμοποιούμε τα αντίστοιχα RSS feeds κάθε ιστοσελίδας για να πάρουμε τον τίτλο, μια μικρή περιγραφή του άρθρου, την ημερομηνία δημοσίευσης καθώς και το URL (link) για το κανονικό άρθρο. Στην συνέχεια ανακτούμε την ιστοσελίδα στην οποία κατευθύνει το URL του άρθρου και εξάγουμε ολόκληρο το άρθρο μέσα από αυτήν. Αυτό γίνεται με την χρήση της βιβλιοθήκης Boilerpipe η οποία προσπαθεί να απομονώσει μόνο το κύριο άρθρο/κείμενο και να απορρίψει οτιδήποτε άλλο έχει η ιστοσελίδα εκτός άρθρου (διαφημίσεις, μενού κτλ.). Έτσι, δημιουργούμε μια κλάση Site για κάθε website όπου περιέχει μια λίστα με όλα τα άρθρα και πληροφορίες του εκάστοτε site. Η παραπάνω διαδικασία υλοποιήθηκε σε γλώσσα προγραμματισμού Java και γίνεται με thread pool όπου ανατίθεται ένα νήμα για κάθε έναν από τους 50 ιστότοπους που έχουμε προεπιλέξει. Τέλος, εξάγονται όλα τα αντικείμενα της κλάσης Site σε XML αρχεία, ώστε να μπορούμε να τα προσπελάσουμε και από άλλες γλώσσες προγραμματισμού. Στο πρόγραμμα Java η είσοδος είναι ένα αρχείο που ονομάζεται RSS_feeds.txt το οποίο περιέχει έναν κατάλογο από τα επιθυμητά RSS feeds που θέλουμε να προσπελάσουν μαζί με ένα όνομα που του δίνουμε (για καλύτερη αναγνωσιμότητα προτείνουμε το όνομα της ιστοσελίδας αλλά ο μόνος περιορισμός είναι τα ονόματα να είναι διαφορετικά μεταξύ τους). Ενδεικτικά η μορφή του αρχείου πρέπει να είναι ως εξής: Εικόνα 4: Ενδεικτικό input στο Java πρόγραμμα
  • 28. Αυτόματη ανάκτηση παγκόσμιας ειδησεογραφίας και κατηγοριοποίηση της με χρήση εξαγόμενων μέτα-δεδομένων 28 Ι.Παπαπαναγιωτάκης-Μπουσύ, Α.Κωτσομητόπουλος Η κύρια δομή του προγράμματος ανάκτησης των άρθρων μπορεί να περιγραφεί από τις κλάσεις Java Article και Site. Εικόνα 5: Κλάση Article Δεδομένα Λειτουργίες string title Date publish date string link string main body string description Η κλάση Article είναι μια οντότητα που χρησιμοποιείται για την αποθήκευση των όλων των πληροφοριών για κάθε άρθρο όπως ο τίτλος, η ημερομηνία δημοσίευσης, την ηλεκτρονική διεύθυνση του κυρίου άρθρου, το κυρίως σώμα του άρθρου και την σύντομη περιγραφή του. Εικόνα 6: Κλάση Site Δεδομένα Λειτουργίες string site RSS string site name string path Article[] articles addArticle() print() printToXML() Η κλάση Site περιέχει όλα τα άρθρα για τον εκάστοτε ισότοπο καθώς και την διεύθυνση με τα RSS feed, το όνομα της ειδησεογραφικής ιστοσελίδας και την τοπική διεύθυνση που θα αποθηκευτούν στον υπολογιστή τα .XML αρχεία.
  • 29. Αυτόματη ανάκτηση παγκόσμιας ειδησεογραφίας και κατηγοριοποίηση της με χρήση εξαγόμενων μέτα-δεδομένων 29 Ι.Παπαπαναγιωτάκης-Μπουσύ, Α.Κωτσομητόπουλος 3.3.3 Εξαγωγή μέτα-δεδομένων Για την εξαγωγή των μέτα-δεδομένων σημαντική είναι η Python κλάση NewsArticle της οποίας η δομή είναι η εξής: Εικόνα 7: Κλάση NewsArticle Δεδομένα Λειτουργίες num id string title string date string URL dictionary metadata heuristics() extract_metadata() Στην κλάση NewsArticle αποθηκεύεται όλη η πληροφορία ενός άρθρου, η αρχική και η εξαγόμενη από το σύστημα μέτα-πληροφορία. Το id είναι μοναδικό αναγνωστικό του άρθρου, οι μεταβλητές title, date και URL είναι ο τίτλος, η ημερομηνία και η ηλεκτρονική διεύθυνση του άρθρου αντίστοιχα. Τέλος το dictionary metadata έχει κλειδιά το είδος μέτα-δεδομένων όπως π.χ. Noun-phrases, places, persons και σαν τιμές τα αντίστοιχα δεδομένα που έχουμε εξάγει. Οι βασικές λειτουργίες της κλάσης αυτής είναι η heuristics που εφαρμόζει κάποιους χειροποίητους κανόνες για το φιλτράρισμα των άρθρων και η extract_metadata που αναλαμβάνει την εξαγωγή όλων των μέτα- πληροφοριών που αναλύονται εκτενώς παρακάτω. Στη συνέχεια περιγράφονται ποιες είναι οι μέτα-πληροφορίες που εξάγουμε από κάθε άρθρο και ο τρόπος με τον οποίο γίνεται αυτό. Ο σκοπός μας ήταν να βρούμε την πληροφορία που αναπαριστά όσο καλύτερα γίνεται ένα άρθρο παγκόσμιας ειδησεογραφίας την οποία έχουμε την δυνατότητα να εξάγουμε από το εκάστοτε άρθρο. Σε αυτό το κομμάτι η είσοδος είναι ο τίτλος του άρθρου, το κυρίως κείμενο και ενδεχομένως μια σύντομη περιγραφή. Τα δεδομένα αυτά περνάνε πρώτα από μία ευρεστική συνάρτηση (heuristics() ) η οποία αφαιρεί τυχόν ανωμαλίες σύμφωνα με κανόνες που έχουμε παρατηρήσει και στη συνέχεια εξάγονται οι μέτα-πληροφορίες που είναι οι εξής: Plaintext, το οποίο είναι το πλήρες κείμενο αφαιρώντας τα stopwords [37], που είναι κοινές λέξεις που αφαιρούνται κατά την επεξεργασία φυσικής γλώσσας. Αυτή η προσέγγιση λέγεται και bag of words και χρησιμοποιείται συχνά σε μεθόδους κατηγοριοποίησης κειμένου. Noun phrases, είναι οι ονοματικές φράσεις που λειτουργούν ως υποκείμενα, αντικείμενα και κατηγορηματικές εκφράσεις. Είναι ευρέως χρησιμοποιημένες στον τομέα της υπολογιστικής γλωσσολογίας και βελτιώνουν τα αποτελέσματα σχετικά με την προηγούμενη προσέγγιση όπως συμπεραίνουν και οι JunPeng Bao et al. [38]. Δοκιμάσαμε και μια άλλη προσέγγιση που προτείνουν στην οποία απαιτείται η εύρεση των συνωνύμων λέξεων για καλύτερη σύγκριση κειμένων. Ο καλύτερος τρόπος για να γίνει αυτό είναι με την χρήση του WordNet το οποίο όμως αποδείχθηκε υπολογιστικά αδύνατο για μεγάλο όγκο δεδομένων. Title και Description, τα οποία τα παίρνουμε αυτούσια από την είσοδο. Επιπλέον η βιβλιοθήκη Hashtagify [34] με είσοδο τον τίτλο και το κείμενο μας επιστρέφει τις λέξεις του τίτλου με μεγάλη βαρύτητα τις οποίες αποκαλούμε hashtags. Ως εδώ οι μέτα πληροφορίες που έχουν αναφερθεί είναι γενικές και μπορούν να χρησιμοποιηθούν σε κείμενα από διάφορα πεδία (και όχι μόνο για ειδησεογραφία).
  • 30. Αυτόματη ανάκτηση παγκόσμιας ειδησεογραφίας και κατηγοριοποίηση της με χρήση εξαγόμενων μέτα-δεδομένων 30 Ι.Παπαπαναγιωτάκης-Μπουσύ, Α.Κωτσομητόπουλος Παρακάτω περιγράφονται οι πληροφορίες που εξάγουμε που έχουν ιδιαίτερο νόημα στα πλαίσια των παγκόσμιων νέων. Location, ένα πολύ σημαντικό στοιχείο των άρθρων παγκόσμιας ειδησεογραφίας είναι οι τοποθεσίες που αναφέρονται. Σε αντίθεση με άλλου είδους άρθρα όπως π.χ. τεχνολογικά νέα στα οποία σημαντικά στοιχεία μπορούν να θεωρηθούν συσκευές ή εταιρίες, στην περίπτωση των παγκόσμιων νέων η τοποθεσία είναι ένα πολύ καλό φίλτρο για την ομοιότητα δύο άρθρων. Αν μία συγκεκριμένη στιγμή δέκα από τα κορυφαία ειδησεογραφικά πρακτορεία του κόσμου γράφουν κάτι για μια πόλη είναι πολύ πιθανό να μιλάνε για το ίδιο ή παραπλήσιο πράγμα. Για την εξαγωγή των τοποθεσιών από τα άρθρα χρησιμοποιήσαμε το Standford Named Entity Recognizer [39]. Το εργαλείο αυτό παίρνει σαν είσοδο ένα κείμενο και σαν έξοδο χαρακτηρίζει κάθε λέξη ως άτομο (Person), οργάνωση (Organization), τοποθεσία (Location) ή άλλο (Other). Ένα μειονέκτημα της προσέγγισης αυτής είναι ότι αν θεωρήσουμε κάθε λέξη με χαρακτηρισμό «Τοποθεσία» από μόνη της μπορούμε να συμπεράνουμε λάθος πληροφορία, για παράδειγμα για είσοδο New York παίρνουμε την έξοδο (New, Location), (York, Location) όπου το εργαλείο σωστά χαρακτηρίζει και τις δύο λέξεις ως τοποθεσίες αλλά δεν μας δίνει το τελικό επιθυμητό αποτέλεσμα που είναι (New York, Location). Για να βελτιώσουμε την πληροφορία των τοποθεσιών χρησιμοποιούμε κάποια ευρεσιτεχνικά που επεξεργάζονται την έξοδο του Stanford NER. Συγκεκριμένα εφαρμόζουμε κάποια regular expressions τα οποία είναι: LOCATION in LOCATION = LOCATION LOCATION of LOCATION = LOCATION LOCATION LOCATION = LOCATION Με αυτό τον τρόπο αποκτούμε μια λίστα με τοποθεσίες οι οποίες αναφέρονται μέσα στο άρθρο. Η ενοποίηση των τοποθεσιών με αυτό τον τρόπο μας παρέχει βελτιωμένα αποτελέσματα, όμως υπάρχουν περιπτώσεις στις οποίες αυτό δεν είναι αρκετό. Αν για παράδειγμα ένα άρθρο έχει την λέξη την τοποθεσία “Athens” και ένα άλλο την τοποθεσία “Athens, Greece” ή ακόμα και “Athinai” κατά την σύγκριση θα βγουν διαφορετικά ενώ αναπαριστούν την ίδια γεωγραφική τοποθεσία. Επίσης, αν θεωρήσουμε ότι μια είδηση καλύπτει γεγονότα πολλών πόλεων τότε θα πρέπει να το άρθρο με τοποθεσία “Athens” να συσχετιστεί με το άρθρο που έχει την τοποθεσία “Thessaloniki”. Αντιμετωπίσαμε τις παραπάνω προκλήσεις με την χρήση της υπηρεσίας GeoNames [40]. Η δικτυακή αυτή υπηρεσία λειτουργεί σαν μηχανή αναζήτησης αποκλειστικά για γεωγραφικά δεδομένα. Για κάθε τοποθεσία εκτελούμε αναζήτηση στο GeoNames το οποίο μας επιστρέφει το όνομα της τοποθεσίας και την χώρα στην οποία βρίσκεται. Το πρώτο (όνομα της τοποθεσίας) το χρειαζόμαστε για να ξεπεράσουμε το πρόβλημα τοποθεσιών που γράφονται με παραπάνω από έναν τρόπο, καθώς η υπηρεσία κάνει fuzzy search, ενώ με το δεύτερο (χώρα της τοποθεσίας) μπορούμε να συσχετίσουμε άρθρα που μιλάνε για την ίδια χώρα. Έτσι, προσθέτουμε στα μέτα- δεδομένα μας τα places και countries. Σημειώνουμε ότι, αν και η χρήση του GeoNames βελτίωσε πολύ τα αποτελέσματα μας, αυτό έγινε με σημαντική αύξηση του χρόνου εκτέλεσης του προγράμματος καθώς τα διαδικτυακά αιτήματα (requests) είναι πολύ αργά σε σχέση με την εκτέλεση εντολών στον επεξεργαστή. Για να επιταχύνουμε την διαδικασία, δημιουργήσαμε μία τοπική cache, έτσι ώστε, αν μία τοποθεσία αναζητηθεί δεύτερη φορά, θα εξυπηρετηθεί τοπικά μειώνοντας έτσι κατά πολύ τον χρόνο εκτέλεσης. Αυτό βοηθάει επίσης να μην υπερβούμε το ημερήσιο όριο των 10.000 αναζητήσεων που επιτρέπει η υπηρεσία. Υπάρχει παράδειγμα στο παράρτημα 3.
  • 31. Αυτόματη ανάκτηση παγκόσμιας ειδησεογραφίας και κατηγοριοποίηση της με χρήση εξαγόμενων μέτα-δεδομένων 31 Ι.Παπαπαναγιωτάκης-Μπουσύ, Α.Κωτσομητόπουλος Τέλος, σημαντικά στοιχεία του άρθρου που εξάγουμε με την χρήση του Stanford NER τα persons και organizations. Αν και η γεωγραφική πληροφορία είναι το κύριο στοιχείο των άρθρων παγκόσμιας ειδησεογραφίας, τα άτομα και οργανισμοί βοηθούν στην περίπτωση διαφορετικών ειδήσεων που αφορούν την ίδια πόλη/χώρα. Όλη αυτή η μέτα-πληροφορία αποθηκεύεται στην κλάση NewsArcticle μαζί με το αρχικό κείμενο για περαιτέρω επεξεργασία στο επόμενο στάδιο, αυτό της ομαδοποίησης.
  • 32. Αυτόματη ανάκτηση παγκόσμιας ειδησεογραφίας και κατηγοριοποίηση της με χρήση εξαγόμενων μέτα-δεδομένων 32 Ι.Παπαπαναγιωτάκης-Μπουσύ, Α.Κωτσομητόπουλος 3.3.4 Ομαδοποίηση άρθρων Το τρίτο κομμάτι του συστήματος μας που αφορά την σύγκριση και ομαδοποίηση των άρθρων είναι, όπως και η εξαγωγή μέτα-πληροφοριών, γραμμένο σε Python. Για την λειτουργία αυτή χρειάζονται: 1. Τα άρθρα επαυξημένα με την μέτα-πληροφορία που εξάγεται από αυτά. 2. Το βάρος της κάθε μέτα-πληροφορίας, όπου μεγαλύτερο βάρος σε ένα συγκεκριμένο μέτα-δεδομένο υπέρ κάποιου άλλου σημαίνει πως θα επηρεάζει περισσότερο το συνολικό σκορ ομοιότητας των άρθρων. 3. Το ελάχιστο ποσοστό ομοιότητας δύο άρθρων, ώστε να ανήκουν στην ίδια κατηγορία. Το πρώτο είναι απευθείας διαθέσιμο μέσα στο πρόγραμμα και είναι τα αντικείμενα της Python κλάσης NewArticle της. Τα άλλα δύο είναι παράμετροι που το πρόγραμμα διαβάζει από το αρχείο properties.ini. Για τις προτεινόμενες τιμές των παραμέτρων αυτών παραπέμπουμε τον αναγνώστη στο τέταρτο κεφάλαιο - Πειραματικά Αποτελέσματα. Σε αυτό το στάδιο τις σημαντικές λειτουργίες αναλαμβάνουν οι Python κλάσεις NewsAggregator και Classifier. Εικόνα 8: Κλάση NewsAggregator Δεδομένα Λειτουργίες dictionary articles dictionary topics dicitonary classifiers num similarity threshold add_article() add_topic() classify_article() Η κλάση NewsAggregator είναι υπεύθυνη για την σύγκριση και κατηγοριοποίηση των άρθρων. Στο dictionary articles αποθηκεύει όλα τα άρθρα με κλειδί το id του κάθε άρθρου και τιμές τα αντίστοιχα αντικείμενα NewsArticle. Το dictionary topics έχει για κλειδιά το μοναδικό topic id και σαν τιμές μία λίστα από article id τα οποία ανήκουν στο συγκεκριμένο θέμα. Το dictionary classifiers έχει σαν κλειδί την μεταβλητή που ταξινομεί (ένα από τα μέτα-δεδομένα) και σαν τιμή ζευγάρια της μορφής (topic id, Classifier), δηλαδή αναγνωστικό του θέματος και τον αντίστοιχο κατηγοριοποιητή. Τέλος το similarity_threshold είναι το ελάχιστο ποσοστό ομοιότητας που πρέπει να έχουν δύο άρθρα για να θεωρηθούν ότι ανήκουν στο ίδιο θέμα. Οι λειτουργίες τις κλάσης είναι η προσθήκη άρθρου (add_article), προσθήκη νέου θέματος με βάση ένα άρθρο (add_topic) και η κατηγοριοποίηση ενός άρθρου (classify_article). Οι τρεις αυτές λειτουργίες είναι πολύ βασικές και δίνονται οι αλγόριθμοι τους στην συνέχεια. Εικόνα 9: Κλάση Classifier Δεδομένα Λειτουργίες string type var content classify() Η κλάση Classifier χρησιμεύει για την σύγκριση δύο άρθρων ως προς ένα από τα μέτα-δεδομένα. Η μεταβλητή type αποθηκεύει το είδος των μέτα-δεδομένων του κατηγοριοποιητή π.χ. location, persons και στην μεταβλητή content αποθηκεύονται τα δεδομένα του κατηγοριοποιητή. Με την συνάρτηση classify συγκρίνεται ένα άρθρο με τον κατηγοριοποιητή.
  • 33. Αυτόματη ανάκτηση παγκόσμιας ειδησεογραφίας και κατηγοριοποίηση της με χρήση εξαγόμενων μέτα-δεδομένων 33 Ι.Παπαπαναγιωτάκης-Μπουσύ, Α.Κωτσομητόπουλος Παρακάτω παρουσιάζονται οι βασικοί αλγόριθμοι σύγκρισης άρθρων και δημιουργίας νέας κατηγοριών. Οι αλγόριθμοι έχουν γραφθεί αρκετά αφαιρετικά σε ψευδογλώσσα, για περισσότερες λεπτομέρειες παραπέμπουμε τον αναγνώστη στον αντίστοιχο κώδικα ο οποίος, επειδή είναι γραμμένος σε Python, είναι ευανάγνωστος ακόμα και για μη προγραμματιστές. 3.3.4.1 Αλγόριθμος Add Article Η σημαντικότερη κλάση σε αυτήν την λειτουργία είναι η NewsAggreagtor της οποίας δημιουργείται ένα αντικείμενο και στην συνέχεια καλείται η συνάρτηση της add_article(). Με αυτόν τον τρόπο η κλάση NewsAggregator κρατάει μία λίστα για κάθε κατηγορία. Η λίστα αυτή περιέχει το μοναδικό αναγνωστικό (id) των άρθρων που ανήκουν στην κατηγορία αυτή. Από το παραπάνω είναι επίσης φανερό ότι ένα άρθρο μπορεί να ανήκει μόνο σε μία κατηγορία. add_article(Άρθρο) ΑΝ ΔΕΝ υπάρχει καμία κατηγορία: add_topic(Άρθρο) ΑΛΛΙΩΣ: classify_article(Άρθρο) ΑΝ ταιριάζει σε υπάρχουσα κατηγορία: Πρόσθεσε το Άρθρο σε αυτήν ΑΛΛΙΩΣ: add_topic(Άρθρο) Εικόνα 10: Αλγόριθμος Add Arcticle
  • 34. Αυτόματη ανάκτηση παγκόσμιας ειδησεογραφίας και κατηγοριοποίηση της με χρήση εξαγόμενων μέτα-δεδομένων 34 Ι.Παπαπαναγιωτάκης-Μπουσύ, Α.Κωτσομητόπουλος 3.3.4.2 Αλγόριθμος Add Topic Στη συνέχεια παρουσιάζεται ο αλγόριθμος προσθήκης νέα κατηγορίας Add topic. Από την δημιουργία της νέας κατηγορίας βλέπουμε ότι οι κατηγοριοποιητές που δημιουργούνται για να αναπαριστούν την κατηγορία εξαρτώνται από τα μέτα-δεδομένα του άρθρου που δημιουργεί την κατηγορία. Αυτός ο κατηγοριοποιητής δεν μεταβάλεται κατά την διάρκεια της εκτέλεσης του προγράμματος και έτσι για να μπει ένα καινούργιο άρθρο σε μία κατηγορία πρέπει ουσιαστικά να ταιριάξει με το άρθρο που την δημιούργησε. add_topic(Άρθρο) δημιούργησε καινούργιο μοναδικό id για την κατηγορία δημιούργησε καινούργια λίστα για τα άρθρα της κατηγορίας ΓΙΑ ΚΑΘΕ είδος μέτα-πηροφορίας του Άρθρου: δημιούργησε νέο Classifier με βάση την μέτα-πληροφορία Αποθήκευσε τον Classifier μαζί με το μοναδικό id της κατηγορίας Εικόνα 11: Αλγόριθμος Add Topic
  • 35. Αυτόματη ανάκτηση παγκόσμιας ειδησεογραφίας και κατηγοριοποίηση της με χρήση εξαγόμενων μέτα-δεδομένων 35 Ι.Παπαπαναγιωτάκης-Μπουσύ, Α.Κωτσομητόπουλος 3.3.4.3 Αλγόριθμος Classify Article Τέλος ο βασικός αλγόριθμος σύγκρισης είναι ο εξής: Στον παραπάνω αλγόριθμο αποφασίζουμε αν ένα άρθρο ανήκει σε μία από τις υπάρχουσες κατηγορίες ή όχι. Η συνάρτηση classify η οποία παίρνει ως παράμετρο το άρθρο, την κατηγορία και τον τύπο δεδομένων που πρέπει να συγκρίνει, χρησιμοποιεί την απόσταση συνημίτονου και το term frequency – inverse document frequency που περιεγράφηκαν στο κεφάλαιο δύο μαζί με την ομοιότητα μήκους (length similarity) και επιστρέφει έναν αριθμό στο [0,1]. Όσο μεγαλύτερος είναι ο αριθμός αυτός τόσο ομοιότερο είναι το νέο άρθρο με την κατηγορία αυτή όσον αφορά τον συγκεκριμένο τύπο δεδομένων. Η συνάρτηση apply_weights() είναι αυτή που εφαρμόζει τα βάρη που έχει αναθέσει ο χρήστης σε κάθε είδος μέτα-δεδομένων από το αρχείο properties.ini. Τέλος, το όριο ομοιότητας είναι και αυτό από το αρχείο παραμέτρων και παίζει πολύ σημαντικό ρόλο στην διαμόρφωση των αποτελεσμάτων. classify_article(Άρθρο) ΓΙΑ ΚΑΘΕ είδος Classifier type: ΓΙΑ ΚΑΘΕ κατηγορία topic: score[topic] += classify(Άρθρο, topic, type) apply_weights() Κράτησε την κατηγορία με το μεγαλύτερο score AN είναι μεγαλύτερο από το όριο: επέστρεψε το id της κατηγορίας ΑΛΛΙΩΣ: επέστρεψε -1 Εικόνα 12: Αλγόριθμος Classify Article