Ε Ξ Α Γ Ω Γ H Γ Ε Ω Γ ΡΑ Φ Ι Κ H Σ Π Λ Η Ρ Ο Φ Ο Ρ Ί Α Σ Α Π O Η Μ Ι Δ Ο Μ Η Μ E Ν Ο Κ Ε I Μ Ε Ν Ο ( G E O P A R S I N G W E B P A G E S ) ΠΕΡΙΛΗΨΗ ΔΙΠΛΩΜΑΤΙΚΗΣ ΕΡΓΑΣΙΑΣ Αλβέρτος-Δαυΐδ Άντζελ el01004@mail.ntua.gr
Ε Ξ Α Γ Ω Γ Η Γ Ε Ω Γ ΡΑΦ Ι Κ Η Σ Π Λ Η Ρ Ο Φ Ο Ρ Ι Α Σ Α Π Ο Η Μ Ι ΔΟ Μ Η Μ Ε Ν Ο Κ Ε Ι Μ Ε Ν Ο ΓΙΑΤΙ; Η αναζήτηση, πλοήγηση, ευρετηριοποίηση, οργάνωση του παγκόσμιου ιστού μπορεί να γίνει πάνω σε διάφορους άξονες χαρακτηριστικών (π.χ. με λέξεις κλειδιά, τοπολογικά-μέσω υπερσυνδέσμων, θεματικά, χρονολογικά, γεωγραφικά,...). Πολλές ιστοσελίδες (εμπορικές, ειδησεογραφικές, τουριστικές,...) περιέχουν γεωγραφική πληροφορία (π.χ. τηλέφωνα, διευθύνσεις, τοπωνύμια,...). Εξάγοντάς την μπορούμε να δημιουργήσουμε ένα γεωγραφικό ευρετήριο του ιστοχώρου. Αυτό μας ανοίγει δρόμους για πολλές εφαρμογές, όπως εναλλακτικούς τρόπους πλοήγησης και αναζήτησης, π.χ. για αναζητήσεις ιστοσελίδων για "κεμπάπ στου Ζωγράφου", ή για πλοήγηση στον ιστό σε ιστοσελίδες "γεωγραφικά κοντά στην τρέχουσα". Κάνουμε έτσι ένα ακόμη βήμα στην προσθήκη δομής και σημασιολογίας στον παγκόσμιο ιστό, και άρα στο χτίσιμο μιας υπηρεσίας σημασιολογικού ιστού πάνω σε αυτόν. ΣΤΟΧΟΣ Στην διπλωματική εργασία αυτή, μελετώνται διάφορες προσεγγίσεις ανακάλυψης γεωγραφικής-χωρικής πληροφορίας σε ιστοσελίδες (geoparsing), και απόδοσης ακριβών συντεταγμένων στην πληροφορία αυτή (geocoding). Ξεκινώντας από μια ιστοσελίδα, θέλουμε να της αποδώσουμε γεωγραφικές συντεταγμένες σύμφωνα με το περιεχόμενό της (π.χ. αν αναφέρεται στην ακρόπολη, να αποκτήσει τις συντεταγμένες του μνημείου). Εκμεταλλευόμαστε διάφορα στοιχεία από τη σελίδα, όπως ταχυδρομικούς κώδικες, τηλέφωνα, διευθύνσεις, τοπωνύμια, τη διεύθυνση IP του εξυπηρετητή. Επικεντρωνόμαστε στον ελληνικό ιστοχώρο, ο οποίος αφ'ενός έχει έλλειψη τέτοιων υπηρεσιών, αφ'ετέρου παρουσιάζει επιπλέον ενδιαφέροντα προβλήματα. 2
ΠΩΣ; Ανάκτηση της σελίδας από το διαδίκτυο, και μετατροπή της σε κατάλληλη μορφή (ανίχνευση κωδικοσελίδας, διόρθωση συντακτικών λαθών HTML). Ανίχνευση πιθανής γεωγραφικής πληροφορίας (geoparsing), με κατάλληλες γραμματικές. Έπειτα από πρωτυποποίηση στο περιβάλλον επεξεργασίας φυσικής γλώσσας GATE, προτιμήθηκε η επανασχεδίαση με χρήση διαδοχικών κανονικών γραμματικών (cascaded regular grammar transducers), συνεπικουρούμενων από προσεγγιστική αναζήτηση λέξεων σε ευρετήριο (approximate string lookup - βλ. παρακάτω). Η πληροφορία που ανιχνεύεται, κανονικοποιείται και τεχνολογείται (standardised & parsed) (π.χ. "οδ. Αγ.Σώστη 3, Χαλάνδρι 231-35" οδός: "Αγίου Σώστη", αρ: 3, περιοχή:"χαλάνδρι", ΤΚ:"23135"). Γεωκωδικοποίηση της πληροφορίας που βρήκαμε, δηλ. αντιστοίχισή της σε συντεταγμένες. Γίνεται με την προσεγγιστική αναζήτηση της πληροφορίας σε βάσεις γεω-δεδομένων, και συνεκτίμηση των επιμέρους αποτελεσμάτων (π.χ. αν η οδός μιας διεύθυνσης αντιστοιχηθεί με βεβαιότητα 70% σε κάποιες συντεταγμένες, και η περιοχή της με 80% σε κάποια γεωμετρία που περιέχει τις ανωτέρω, είναι λογικό να θεωρήσουμε ότι οι πρώτες εκφράζουν με μεγάλη βεβαιότητα τις συντεταγμένες της διεύθυνσης). Προσεγγιστική αναζήτηση: Αναζήτηση ανεκτική σε σφάλματα, ιδίως ορθογραφικά (π.χ. η "Pelloponisos" να αντιστοιχηθεί σωστά στην "Πελοπόννησος", αλλά η "Λωζάνη" να μην αντιστοιχηθεί με την "Κοζάνη"). Κύριο πρόβλημα η επίδοση, δεδομένου του μεγάλου πλήθους στοιχείων που ελέγχουμε. Για αυτόν τον σκοπό αναπτύχθηκαν ταχείς αλγόριθμοι, προσαρμοσμένοι στην Ελληνική γλώσσα (με υποστήριξη greeklish, που είναι άλλο ένα μείζον πρόβλημα), βασισμένοι σε υπάρχουσες προτάσεις στον χώρο. Η λειτουργία τους περιγράφεται παρακάτω. Οι αλγόριθμοι επιτυγχάνουν γρήγορη προσεγγιστική φωνητική αναζήτηση (ενδεικτικά: αναζήτηση 1800 ονομάτων οδών με ποικίλα λάθη, σε έναν πίνακα με όλες τις οδούς της Αττικής σε λιγότερο από 2', χωρίς βελτιστοποιήσεις) Γεωδεδομένα: Χρειαζόμαστε βάσεις αντιστοίχησης τοπωνυμίων σε συντεταγμένες (π.χ. οδών, πόλεων, τοποθεσιών). Δυστυχώς, στην Ελλάδα υπάρχουν ελάχιστα τέτοια datasets που διατίθενται δωρεάν, οδηγώντας σε εναλλακτικούς τρόπους απόκτησής τους. Έπειτα, τίθεται και το ζήτημα της ποιότητάς τους. Για τον καθαρισμό των δεδομένων από σφάλματα χρησιμοποιήθηκαν γνώσεις από το αντίστοιχο γνωστικό πεδίο, και οι ανωτέρω αλγόριθμοι. 3
Ομαδοποίηση των επιμέρους πληροφοριών (διευθύνσεων, τηλεφώνων κ.ο.κ.), και συνεκτίμησή τους, για την εύρεση πληροφορίας για την ιστοσελίδα γενικότερα (π.χ. μπορούμε να συμπεραίνουμε πως μια σελίδα αναφέρεται συνολικά σε μια περιοχή του χώρου, σε ένα σημείο, ή σε πολλά, άσχετα μεταξύ τους σημεία), με βάση την εγγύτητά τους τόσο στη σελίδα (οπτικά) (π.χ. σε κοντινά κελιά ενός πίνακα) όσο και στην πραγματικότητα (γεωγραφικά). ΠΡΟΣΕΓΓΙΣΤΙΚΗ ΑΝΑΖΗΤΗΣΗ ΣΥΜΒΟΛΟΣΕΙΡΩΝ Εισαγωγικές πληροφορίες: Μεταγραφή σε φωνητικό αλφάβητο: Αναπτύχθηκε ένα φωνητικό αλφάβητο για τα Ελληνικά, με βάση τις ιδιότητες των φθόγγων της γλώσσας. Δύο ομόηχες λέξεις έχουν ίδια φωνητική αναπαράσταση. Παράδειγμα: Λευτέρη, Λεφτέρη lefteri. Και με τα greeklish, τι; Τα greeklish, καθότι εμφανίζονται πολύ συχνά στον ελληνικό ιστό, είναι σημαντικό πρόβλημα σε αυτό το βήμα, γιατί υπάρχουν πολλοί διαφορετικοί τρόποι γραφής σε αυτά (π.χ. Eleftheriu Venizelu, Eleu8eriou Benizelou). Στην εργασία χρησιμοποιήθηκαν διάφορες προσεγγίσεις, με διαβαθμισμένη πολυπλοκότητα και ποιότητα αποτελεσμάτων. Απόσταση δύο λέξεων: Για την εύρεση λέξεων που μοιάζουν, χρειαζόμαστε μια μετρική ομοιότητάς τους. Από τις διάφορες διαθέσιμες, επιλέχθηκε την απόσταση Levenshtein (αριθμός εισαγωγών, διαγραφών και αντικαταστάσεων χαρακτήρων), η οποία τροποποιήθηκε, μεταξύ άλλων για υποστήριξη φωνητικής ομοιότητας (π.χ. η "Μάσιου" μοιάζει περισσότερο με την "Νάσιου" από την "Τάσιου"), καθώς και συντμήσεων, που συνηθίζονται στα ελληνικά ("Κων/νου"-"Κωνσταντίνου"). Κώδικας φωνητικής ομοιότητας (π.χ. Soundex, Metaphone κ.λ.π.): Μετατροπή μιας λέξης σε έναν σύντομο κώδικα, με την ιδιότητα: δύο λέξεις που προφέρονται σχετικά όμοια να έχουν ίδιο κώδικα. Αναπτύξαμε τέτοιον κώδικα για τα Ελληνικά. Προσεγγιστικό φωνητικό ταίριαγμα συμβολοσειρών: Πρόβλημα: Θέλουμε να βρούμε από έναν κατάλογο συμβολοσειρών αν υπάρχουν κάποιες που μοιάζουν πολύ με μια δεδομένη. Όμως, ο υπολογισμός της απόστασης της συμβολοσειράς αυτής από όλες τις άλλες είναι υπολογιστικά απρόσιτος. Λύση: Το ταίριαγμα γίνεται σε δύο βήματα: Πρώτα βρίσκουμε όλες τις συμβολοσειρές που έχουν τον ίδιο κώδικα φωνητικής ομοιότητας με την δεδομένη (υπολογιστικά "φθηνή" πράξη). (Έτσι, "φιλτράρουμε" 4
ένα μεγάλο ποσοστό των συμβολοσειρών, οι οποίες με συντριπτικά μεγάλη πιθανότητα δεν μοιάζουν με την δεδομένη συμβολοσειρά.) Υπολογίζουμε την απόστασή της δεδομένης συμβολοσειράς από αυτές. Η βασική παραλλαγή των αλγορίθμων μας είναι η εξής: Προεπεξεργασία: Δημιουργία φωνητικού ευρετηρίου πάνω στον πίνακα που περιέχει τις φράσεις-στόχους (π.χ. "οδός ανθυπολοχαγού Νικ. Τερτσέτη"). Αυτό μας επιτρέπει την γρήγορη εύρεση φράσεων-τοπωνυμίων που περιέχουν συγκεκριμένες λέξεις (π.χ. τις λέξεις "Νικόλας" και "Τερτσέτης"), ακόμη και με ορθογραφικά λάθη. Για την κατασκευή αυτού, επεκτείνουμε την βασική ιδέα προσεγγιστικού φωνητικού ταιριάγματος συμβολοσειρών, φροντίζοντας όσο το δυνατόν περισσότεροι υπολογισμοί να εκτελούνται από το ίδιο το σύστημα διαχείρησης βάσεων δεδομένων (άρα βελτιστοποιημένα). Μετατροπή της αναζητούμενης φράσης-συμβολοσειράς στο ενδιάμεσο φωνητικό αλφάβητο, και αναζήτηση αυτής μέσω του φωνητικού ευρετηρίου. 5