Περίληψη ιπλωµατικής Εργασίας Θέµα: Μέθοδοι αυτόµατου εντοπισµού σφαλµάτων και βελτίωσης wrappers µε χρήση επαυξητικών µεθόδων µάθησης (wrapper mantenance πρόβληµα) Όνοµα: Χαράλαµπος Τσουρακάκης Επιβλέπων: Τίµος Σελλής Συν-επιβλέπων: Γεώργιος Παλιούρας 1.Ορισµός προβλήµατος wrapper mantenance Αντικείµενο διπλωµατικής Οι (web) wrappers είναι εξειδικευµένα προγράµµατα τα οποία εξάγουν µε αυτόµατο τρόπο δεδοµένα από διαδικτυακούς τόπους (nternet webstes) και τα µετατρέπουν σε µία δοµηµένη µορφή. Συγκεκριµένα ένας wrapper εκτελεί τρεις κύριες λειτουργίες: α) κατεβάζει HTML σελίδες από το web ste για το οποίο σχεδιάστηκε β) προσδιορίζει τα δεδοµένα που θα εξαχθούν από ένα σύνολο ιστοσελίδων του ste και στη συνέχεια τα εξάγει γ)αποθηκεύει τα εξαγόµενα δεδοµένα σε µία δοµηµένη µορφή. Έτσι τα δεδοµένα αυτά µπορούν στη συνέχεια να χρησιµοποιηθούν από κάποια άλλη εφαρµογή για περαιτέρω επεξεργασία. Σύµφωνα µε την πηγή [1] περισσότερο από το 80% των ιστοσελίδων περιέχουν πληροφορία που προέρχεται από κάποια βάση δεδοµένων. Όταν αυτά τα δεδοµένα εισάγονται στις ιστοσελίδες η δοµή που ενυπάρχει στη βάση δεδοµένων χάνεται. Οι wrappers προσπαθούν να αντιστρέψουν αυτή τη διαδικασία φέρνοντας πάλι τα δεδοµένα σε µία δοµηµένη µορφή. Αυτό που εκµεταλλεύονται οι wrappers για να εξάγουν την πληροφορία είναι η κανονικότητα που υπάρχει στην εµφάνιση της ως προς τον χρήστη. Αυτό οφείλεται στον τρόπο µε τον οποίο παράγονται συνήθως οι ιστοσελίδες, δηλαδή µε τη χρήση ενός template. Template Βάση εδοµένων (Database) ΣΥΝΘΕΣΗ Ε ΟΜΕΝΩΝ ΜΕ TEMPLATE Web page Κατά κανόνα για κάθε ste χρειάζεται να αναπτυχθεί ένας διαφορετικός wrapper.λόγω της δυναµικότητας του WWW τα web stes αλλάζουν συχνά τη δοµή των ιστοσελίδων τους ή και το περιεχόµενο τους µε αποτέλεσµα να µην εξάγεται πλέον η επιθυµητή πληροφορία από τους wrappers.εδώ τίθεται το πρόβληµα του wrapper verfcaton. Με τον όρο αυτόν εννοούµε το
πρόβληµα του αυτόµατου εντοπισµού σφαλµάτων στην λειτουργία του wrapper. Αν εντοπιστεί ότι ο wrapper δεν εξάγει σωστά την πληροφορία τίθεται το δεύτερο πρόβληµα, αυτό του wrapper renducton. Με αυτό τον όρο εννοούµε τη διαδικασία παραγωγής ενός νέου wrapper, προσαρµοσµένο στη νέα δοµή του ste που θα εξάγει σωστά την επιθυµητή πληροφορία. Τα προβλήµατα του wrapper verfcaton και του wrapper renducton συνιστούν το wrapper mantenance πρόβληµα. Αντικείµενο της διπλωµατικής εργασίας ήταν η ανάπτυξη ενός αξιόπιστου wrapper mantenance συστήµατος. Αν και η Etensble Markup Language (XML) έχει την προοπτική να επιλύσει τα προβλήµατα που αναφέρθηκαν, θα χρειαστεί αρκετός καιρός µέχρι να παρέχονται όλα τα δεδοµένα σε αυτή τη γλώσσα-µορφή. Εξ άλλου µην ξεχνάµε ότι πολλά stes δεν είναι καν πρόθυµα να κάνουν κάτι τέτοιο γιατί θέλουν το χρήστη να τα επισκέπτεται για κυρίως οικονοµικούς λόγους (διαφηµίσεις).έτσι οι wrappers θα διαδραµατίζουν για αρκετό καιρό ακόµα καίριο ρόλο στην ολοκλήρωση δεδοµένων από www πηγές. Προκύπτει λογικά λοιπόν ότι το wrapper mantenance πρόβληµα είναι σύνθετο και επίκαιρο..σχεδιασµός της λύσης Το πρόβληµά µας έχει δύο διακριτά σκέλη. Το πρώτο είναι το verfcaton, το δεύτερο το renducton. Όπως προαναφέρθηκε κύριος στόχος της εργασίας ήταν η ανάπτυξη ενός αξιόπιστου wrapper mantenance συστήµατος Η βαρύτητα δόθηκε στο πρώτο µέρος για τους εξής λόγους:α)αν δεν διαπιστωθεί κάποιο πρόβληµα στην λειτουργία του wrapper δεν εκτελείται το renducton σύστηµα. Έτσι ένα πολύ καλό renducton σύστηµα δεν θα αξιοποιούταν πλήρως χωρίς την ύπαρξη ενός καλού verfcaton συστήµατος. β)η επαγωγή ενός νέου wrapper αν υπάρχει ένα wrapper nducton system (σύστηµα παραγωγής wrappers µε χρήση επαγωγικής µάθησης) όταν έχει διαπιστωθεί πρόβληµα απαιτεί στην χειρότερη περίπτωση κάποια λεπτά από το χρόνο του χρήστη για να δώσει κάποια παραδείγµατα στις αλλαγµένες ιστοσελίδες της πληροφορίας που θέλει να εξάγεται. Αντίθετα για τον έλεγχο του αν η εξαχθείσα πληροφορία είναι η επιθυµητή, θα απαιτούνταν διαρκής έλεγχος κάθε φορά που θα λειτουργούσε ο wrapper. γ)σχετικά λίγη βιβλιογραφία επί του προβλήµατος αυτού. Παρακάτω αναπτύσσουµε εν συντοµία την φιλοσοφία σχεδιασµού των δύο επιµέρους συστηµάτων. Α)Σχεδιασµός wrapper verfcaton συστήµατος Στόχος του verfcaton συστήµατος ήταν να µπορέσουµε να εκµεταλλευτούµε όσο το δυνατόν περισσότερο τη δοµή της πληροφορίας. Έτσι ο αλγόριθµος που αναπτύξαµε είναι καθαρά content based. Το σύστηµα παίρνει σαν είσοδο τις διευθύνσεις δύο φακέλων. Ο πρώτος φάκελος είναι το tranng attrbute ενώ ο δεύτερος το testng attrbute. Κάθε φάκελος περιέχει ένα πλήθος από αρχεία (tt) τα οποία περιέχουν την πληροφορία που εξάχθηκε κατά τη διάρκεια της ορθής λειτουργίας του wrapper και κατά τη διάρκεια της άγνωστης λειτουργίας του αντίστοιχα. Το σύστηµα εκπαιδεύεται µε τα δεδοµένα του tranng attrbute και στη συνέχεια ελέγχοντας τα δεδοµένα του testng attrbute αποφασίζει αν ο wrapper εξάγει σωστά ή λανθασµένα τα δεδοµένα. Για το σκοπό αυτό υπολογίσαµε
ξεχωριστά για το tranng και για το testng attrbute τις τιµές των εξής χαρακτηριστικών γνωρισµάτων : µέση πυκνότητα ψηφίων, µέση πυκνότητα κεφαλαίων γραµµάτων, µέση πυκνότητα πεζών γραµµάτων, µέση πυκνότητα χαρακτήρων στίξης, µέσο µήκος λεκτικών µονάδων, µέσο πλήθος λεκτικών µονάδων ανά εγγραφή. Στη συνέχεια σχεδιάστηκε µία ιεραρχία από token types και ένας λεκτικός αναλυτής ο οποίος δίνει σε κάθε token τον πιο εξειδικευµένο τύπο της ιεραρχίας που µπορεί να λάβει. Έπειτα µε βάση το µέσο πλήθος tokens ανά εγγραφή υπολογίζεται ένας φυσικός ο οποίος αντιπροσωπεύει το µήκος των startng patterns δηλαδή εκείνων των patterns τα οποία ακολουθεί συχνά κάποια εγγραφή στις πρώτες θέσεις tokens. Στη συνέχεια υλοποιήθηκε ένας αλγόριθµος εξεύρεσης των startng patterns. Βασίζεται στον έλεγχο µηδενικών υποθέσεων (null hypothess testng). Περιγράφουµε αδρά την λειτουργία του: Ξεκινάει κατασκευάζοντας µία ρίζα του pattern δένδρου. Έπειτα υποθέτει: «Στη θέση 1 δεν είναι στατιστικά σηµαντικός ο τύπος». Ουσιαστικά κάνει 8 υποθέσεις αφού υπάρχουν 8 τύποι tokens. Ας θεωρήσουµε λοιπόν την µία εκ των 8 υποθέσεων, ότι ο τύπος CAPITALIZED (όσες λέξεις αποτελούνται µόνο από γράµµατα εκ των οποίων µόνο το πρώτο είναι κεφαλαίο) δεν είναι σηµαντικός στην θέση 1. Αν έχουµε n εγγραφές η τυχαία µεταβλητή «πλήθος εµφανίσεων του CAPITALIZED στη θέση 1» ακολουθεί τη διωνυµική κατανοµή. Όπως προκύπτει από το κεντρικό οριακό θεώρηµα µπορούµε να προσεγγίσουµε τη διωνυµική κατανοµή µε την κανονική. Στη συνέχεια µε βάση το πλήθος των εγγραφών n, το πλήθος k των εµφανίσεων του τύπου CAPITALIZED στη θέση 1 και την πιθανότητα εµφάνισης του στη θέση 1 κάνουµε z-test µε παραµέτρους µ = np και σ = np(1 p). Αν προκύψει ότι ο τύπος CAPITALIZED είναι στατιστικά σηµαντικός τότε προστίθεται ένα παιδί στη ρίζα του δένδρου που περιέχει τον τύπο CAPITALIZED. Οµοίως γίνονται και οι υπόλοιποι έλεγχοι των άλλων µηδενικών υποθέσεων. Για κάθε στατιστικά σηµαντικό τύπο προστίθεται ένα παιδί στη ρίζα. Έτσι σε βάθος 1 στο δένδρο υπάρχουν όλοι οι στατιστικά σηµαντικοί τύποι της θέσης 1. Αν δεν προκύψει κανένας στατιστικά σηµαντικός τύπος στη θέση 1 ή αν βρεθεί ότι στη θέση 1 οι στατιστικά σηµαντικοί τύποι tokens είναι HTML τύποι (HTML tags, HTML attrbutes, HTML attrbute values) κάτι που µπορεί να εµφανιστεί στην περίπτωση που έχει χαλάσει ο wrapper προστίθεται στη ρίζα ένα παιδί που περιέχει τον wldcard χαρακτήρα δηλώνοντας ότι δεν υπάρχει κάποιος από τους τύπους που µας ενδιαφέρει στατιστικά σηµαντικός στη θέση 1. Έστω λοιπόν ότι το σύνολο των τύπων που βρέθηκαν να είναι σηµαντικοί στη θέση 1 είναι το σύνολο T = {} t 1 n, n 8.Στη συνέχεια αναζητούµε τους τύπους για τους οποίους το µοτίβο t,1 n είναι στατιστικά σηµαντικό. Οι µηδενικές υποθέσεις τώρα διαµορφώνονται ως εξής :«Το pattern t δεν είναι στατιστικά σηµαντικό» 1 n, TT. Ο έλεγχος για το t γίνεται µε βάση τη πληθικότητα του συνόλου των εγγραφών που ξεκινούν µε τον τύπο t, το πλήθος των εγγραφών που ξεκινούν µε τους τύπους t και την πιθανότητα εµφάνισης του τύπου µετά τον τύπο t. Επειδή η εµφάνιση του θεωρείται
ανεξάρτητη από οτιδήποτε άλλο, η πιθανότητα θα είναι πάντα ίση µε p=1/8. Για κάθε τύπο που θα διαπιστωθεί ότι είναι σηµαντικός µετά από τo τύπο t ο αλγόριθµος δηµιουργεί ένα παιδί για τον κόµβο του t µε περιεχόµενο τον τύπο.έτσι δηµιουργείται ένα δένδρο βάθους στο οποίο αν κάνουµε µία κατά βάθος διάσχιση παίρνουµε όλα τα σηµαντικά patterns µήκους. Αυτή η διαδικασία συνεχίζεται µέχρι να κατασκευαστεί ένα δένδρο βάθους ίσο µε το πλήθος των startng tokens. Έπειτα κάνουµε εξαγωγή αυτών των patterns από το δένδρο έχοντας προσδιορίσει έτσι τα startng patterns. Ας θεωρήσουµε ότι η δοµή του attrbute ATTR περιγράφεται από τα n patterns του συνόλου P = { p1, p,.., pn} µε p p,. Έστω k το συνολικό πλήθος tuples για το ATTR και έστω k το πλήθος των tuples που ακολουθούν το pattern p. Με βάση όλα τα παραπάνω κατασκευάζουµε δύο διανύσµατα µεταπληροφορίας τα οποία θα έχουν την εξής µορφή: < ATTR, n, p 1 1, p,..., p, p n n, dgden, upperden, lowerden, punctden, avertokenlength, avernumoftokensperlne> Με χρήση αυτών των δύο διανυσµάτων το σύστηµα παίρνει την απόφαση αν ο wrapper είναι σωστός ή όχι. Αυτό επιτυγχάνεται κάνοντας στατιστικό έλεγχο Pearson για τα dgden, upperden,,avernumoftokensperlne και χρησιµοποιώντας ένα σύνθετο σύστηµα ποινών βασιζόµενο στα σύνολα των patterns του tranng και testng attrbute. H ιδέα αυτού του συστήµατος ποινών βασίζεται στο να τιµωρούµε την τιµή Pearson χωρίς να αυξάνουµε αντίστοιχα τους βαθµούς ελευθερίας της κατανοµής χι τετράγωνο την οποία ακολουθεί η µεταβλητή του Pearson βασιζόµενοι στην εξής ευριστική: Ίδια σηµασιολογία συνεπάγεται παρόµοια patterns.επειδή όµως το σύστηµα αρχικά θεωρεί ότι η testng πληροφορία είναι σωστή τότε θα έχει την ίδια σηµασιολογία µε το tranng attrbute και άρα παρόµοια patterns. Β)Σχεδιασµός wrapper renducton συστήµατος Επειδή στη διάθεση µας είχαµε ένα wrapper nducton σύστηµα (WI system) το πρόβληµα ανάχθηκε στην εξεύρεση παραδειγµάτων της επιθυµητής πληροφορίας µέσα στις αλλαγµένες ιστοσελίδες. Η ιδέα που υλοποιήθηκε είναι απλή: ψάχνουµε να βρούµε πληροφορία που εξάχθηκε για τα attrbutes κατά τη διάρκεια της ορθής λειτουργίας του wrapper µέσα στις αλλαγµένες ιστοσελίδες. Υλοποιήσαµε λοιπόν έναν brute force αλγόριθµο αναζήτησης συµβολοσειρών µέσα σε κείµενο προσέχοντας οι λεκτικές µονάδες που αποτελούσαν το παράδειγµα προς αναζήτηση να είναι διαδοχικές δεδοµένου του ότι το WI system ήταν ένας sngle slot etractor και όχι mult slot. 3.Αποτελέσµατα Υπήρχε εγγενής δυσκολία στην αξιολόγηση του συστήµατος που αναπτύχθηκε γιατί µία αξιολόγηση σε πραγµατικά δεδοµένα θα απαιτούσε την επί µακρόν παρακολούθηση ενός συνόλου stes. Αυτό ξεπεράστηκε µε την παροχή πραγµατικών δεδοµένων από τον Kushmerck ο οποίος µάλιστα ήταν ο πρώτος που έθεσε το πρόβληµα του wrapper verfcaton. Τα αποτελέσµατα που λάβαµε ήταν άκρως ενθαρρυντικά για τον verfcaton αλγόριθµο. Συγκεκριµένα σε 16 stes εκ των οποίων τα 5
εµφάνισαν αλλαγές που προκαλούσαν σφάλµα στην λειτουργία του wrapper αναγνωρίστηκαν ορθά και οι 5 αλλαγές ενώ στις υπόλοιπες 11 ορθά αναγνωριζόταν η ορθή λειτουργία του wrapper. Σε επίπεδο αναγνώρισης σωστής λειτουργίας για την εξαγωγή πληροφορίας από attrbutes έγιναν 158 δοκιµές εκ των οποίων στις 157 εντοπίστηκε σωστά η λειτουργία του wrapper και σε µία απέτυχε. Μάλιστα το σφάλµα του συστήµατος στην µία φορά αποτυχίας ήταν ότι προέβλεψε πως ο wrapper είχε πρόβληµα ενώ στην πραγµατικότητα δούλευε σωστά. Αυτό το σφάλµα δεν θεωρείται σοβαρό σε αντίθεση µε το σφάλµα να θεωρηθεί ότι ο wrapper εξάγει σωστά την πληροφορία ενώ στην πραγµατικότητα αυτό δεν συµβαίνει. Στην αξιολόγηση του renducton συστήµατος λαµβάνουµε επίσης ικανοποιητικά αποτελέσµατα αν λάβουµε υπ όψιν την απλότητα της µεθόδου. 4.Συνεισφορά της εργασίας (Contrbuton) Η κύρια συνεισφορά της εργασίας έγκειται στην ανάπτυξη ενός σύνθετου verfcaton συστήµατος. Οι µέχρι τώρα προσεγγίσεις στο πρόβληµα του wrapper verfcaton είναι δύο κατηγοριών. Η µία κατηγορία βασίζεται στη δοµή των ιστοσελίδων από τις οποίες εξάγεται η πληροφορία (DOM trees) και ονοµάζεται structure based ενώ η δεύτερη ονοµάζεται content based και βασίζεται στην εξαγόµενη πληροφορία. Οι υπάρχουσες µέθοδοι της δεύτερης κατηγορίας βασίζουν σε αρκετά µεγάλο βαθµό έως και αποκλειστικό όπως στην περίπτωση του RAPTURE -της πρώτης σηµαντικής content based µεθόδου- την επίδοσή τους στο χαρακτηριστικό γνώρισµα της πυκνότητας των HTML χαρακτήρων. Αυτό είναι αναµενόµενο γιατί η εξαγόµενη πληροφορία όταν είναι η επιθυµητή δεν περιέχει καθόλου HTML χαρακτήρες αλλά και το αντίθετο: συνήθως όταν χαλάει ο wrapper η πληροφορία που εξάγεται περιέχει HTML χαρακτήρες. Συνεπώς οι παραπάνω µέθοδοι δεν λαµβάνουν υπ όψιν τους ότι ακόµα και ένας σωστός wrapper µπορεί να εξάγει εκτός από τα επιθυµητά δεδοµένα κάποια άλλα δεδοµένα που περιέχουν HTML χαρακτήρες. Αυτό το διαπιστώσαµε εξάλλου στην πράξη χρησιµοποιώντας το wrapper nducton σύστηµα που διαθέταµε. Αυτό µπορεί να συµβεί ακόµα και στα καλύτερα wrapper nducton συστήµατα. Το σύστηµα µας αφενός είναι ένα content based σύστηµα αλλά δεν χρησιµοποιεί καθόλου τη πυκνότητα των HTML χαρακτήρων. Έτσι ο αλγόριθµός µας είναι εύρωστος αφού δεν προϋποθέτει σε καµία περίπτωση καθαρισµό των εξαγόµενων δεδοµένων (data cleansng) λαµβάνοντας υπ όψιν µικρές «ατέλειες» του wrapper αλλά ταυτόχρονα είναι και γενικός δίνοντας την δυνατότητα να χρησιµοποιηθεί και προσαρµοσµένα και σε άλλες εφαρµογές. [1] Sahuguet,A.,Azavant,F. Web Ecology :Recyclng HTML pages as XML usng W4F, avalable at: http://db.cs.upenn.edu/dl/webdb99.pdf