Η παρουσίαση φορτώνεται. Παρακαλείστε να περιμένετε

Η παρουσίαση φορτώνεται. Παρακαλείστε να περιμένετε

ΔΙΑΧΕΙΡΙΣΗ ΠΕΡΙΕΧΟΜΕΝΟΥ ΣΤΟΝ ΠΑΓΚΟΣΜΙΟ ΙΣΤΟ & ΓΛΩΣΣΙΚΑ ΕΡΓΑΛΕΙΑ 4 ο Προσκομιστές Πληροφορίας 11/3/2013.

Παρόμοιες παρουσιάσεις


Παρουσίαση με θέμα: "ΔΙΑΧΕΙΡΙΣΗ ΠΕΡΙΕΧΟΜΕΝΟΥ ΣΤΟΝ ΠΑΓΚΟΣΜΙΟ ΙΣΤΟ & ΓΛΩΣΣΙΚΑ ΕΡΓΑΛΕΙΑ 4 ο Προσκομιστές Πληροφορίας 11/3/2013."— Μεταγράφημα παρουσίασης:

1 ΔΙΑΧΕΙΡΙΣΗ ΠΕΡΙΕΧΟΜΕΝΟΥ ΣΤΟΝ ΠΑΓΚΟΣΜΙΟ ΙΣΤΟ & ΓΛΩΣΣΙΚΑ ΕΡΓΑΛΕΙΑ 4 ο Προσκομιστές Πληροφορίας 11/3/2013

2 Ενότητες  Παγκόσμιος Ιστό και Διαδίκτυο  Προσκομιστές Πληροφορίας  Πρακτικά Προβλήματα  Focused Crawlers  Crawling using Python 2/45

3 Συστήματα Ανάκτησης Πληροφορίας 3/45 IR System Query String Document corpus Ranked Documents 1. Doc1 2. Doc2 3. Doc3. Αναζήτηση και εντοπισμός πληροφορίας που σχετίζεται με την πληροφοριακή ανάγκη του χρήστη Ταυτόσημη με της αναζήτηση πληροφορίας στον Παγκόσμιο Ιστό

4 Συστήματα Ανάκτησης Πληροφορίας Στο Διαδίκτυο Query String IR System Ranked Documents 1. Page1 2. Page2 3. Page3. Document corpus Web Spider Η ύπαρξη του υποσυστήματος spider ( ή crawler) αποτελεί την κύρια διαφορά από ένα παραδοσιακό σύστημα ανάκτησης πληροφορίας 4/45

5 Ο παγκόσμιος ιστό σήμερα 5/45

6 Χρήση διαφορετικών γλωσσών 6/45

7 Ο παγκόσμιος ιστός σήμερα  To μέγεθος του Παγκόσμιου Ιστού μεταβάλλεται συνεχώς.  Surface Web 11.5 billion web pages (2005) 48 billion web pages (2013)  Deep Web Τουλάχιστον billion deep web pages (2005)  Γλώσσες στον Παγκόσμιο Ιστό (2002) Αγγλικά 56.4% Γερμανικά 7.7% Γαλλικά 5.6% Γιαπωνέζικα 4.9% 7/45

8 Προσκομιστές Πληροφορίας  Προγράμματα που εκμεταλλεύονται τη δομή γράφου του Παγκόσμιου Ιστού προκειμένου να επισκεφθούν όσο το δυνατόν μεγαλύτερο μέρος του  Απώτερος σκοπός : η δημιουργία ενός ευρετηρίου για τις ιστοσελίδες που ανακάλυψε.  Εναλλακτικοί τρόποι ονομασίας : wanderers, robots, spiders, fish και worms. 8/45

9 Απλός Αλγόιθμος προσκόμισης  Στην πιο απλή μορφή :  ξεκινά από μία λίστα διευθύνσεων ιστοσελίδων αρχικοποίησης (Seed list).  Για κάθε διεύθυνση ιστοσελίδας (URL) της λίστας ανακτάται η αντίστοιχη ιστοσελίδα  Εξάγονται οι υπερσύνδεσμοι (Hyperlinks) που αυτή περιέχει.  Η λίστα αυξομειώνεται προσθέτοντας τις νέες διευθύνσεις και απομακρύνοντας εκείνες που ελέγχονται.  Η διαδικασία συνεχίζεται μέχρι να ανακτηθεί ένας ορισμένος αριθμός ιστοσελίδων ή μέχρι να ανακτηθούν όλες οι ιστοσελίδες 9/45

10 Παραδείγματα  Google Bot (Brin S.,Page L., 1998 )  Mercator (Heydon A., Najork M., 1996)  Internet Archive (Burner M.,1997)  Dominos (Hafri Y., Djeraba C., 2004) 10/45

11 Επιλογές προσκόμισης  Πως θα αποφευχθεί η προσκόμιση διπλότυπων ιστοσελιδων ;  Πώς θα μειωθεί ο φόρτος στους επισκεπτόμενους ιστότοπους ;  Με ποιο ρυθμό θα πρέπει ο προσκομιστής να ανανεώνει τις σελίδες ;  Πως μπορεί να παραλληλοποιηθεί η διαδικασία της ανάκτησης ; 11/45

12 Αρχιτεκτονική προσκομιστή γενικού σκοπού 12/45

13 Απαλοίφοντας της Διπλές ιστοσελίδες  Ο γράφος του WWW δεν είναι δέντρο  Πιθανότητα να συναντησουμε >1 φορές την ίδια σέλίδα  Ελεγχουμε και επεξεργαζόμαστε κάθε νέα ιστοσελίδα μόνο μία φορά  Θα πρέπει να διατηρείται ευρετήριο για τις ιστοσελίδες που έχουν ελεχθεί.  Επιλογή του ευρετηρίου για καλύτερη απόδοση  Tree indexing (e.g. trie)  Hashtable  Σαν κλειδί ευρετηριοποίησης χρησιμοποιούμε URL.  Απαιτείται κανονικοποίηση (e.g. delete or Add ending “/”)  Not detect duplicated or mirrored pages. 13/45

14 Restricting Spidering  You can restrict spider to a particular site.  Remove links to other sites from Q.  You can restrict spider to a particular directory.  Remove links not in the specified directory.  Obey page-owner restrictions (robot exclusion). 14/45

15 Link Extraction  Must find all links in a page and extract URLs.   Must complete relative URL’s using current page URL:  to  to 15/45

16 Robots Exclusion Protocol  Κάθε διαχειριστής καθορίζει τις οδηγίες για την ευγενική προσπέλαση ενός ιστότοπου  Robots.txt  Μπορεί να βρεθεί στον root κατάλογο καθε ιστότοπου  Περιέχει μία λίστα των φακέλων που δεν επιτρέπεται να προσπελάσει κάθε προσκομιστής ιστοσελ΄ίδων (user-agent).  Παράδειγμα αποκλεισμού κάθε πιθανού robot από τον κατάλογο ολόκληρου του ιστοτόπου : User-agent: * Disallow: / περισσότερα 16/45

17 Robots META Tag  Συμπεριλαμβάνεται στην ετικέτα META tag στην ενότητα HEAD ενός HTML εγγράφου ( ιστοσελίδας )   Το περιεχόμενο είναι ενα ζεύγος τιμών value :  index | noindex: Επιτρέπει ή όχι την προσθήκη της συγκεκριμένης ιστοσελίδας στο ευρετήριο της μηχανής αναζήτησης  follow | nofollow: Επιρέπεται ή οχι να ακολουθήσει ο προσκομιστής τα url που μπορούν να βρεθούν σε αυτή την σελίδα περισσότερα 17/45

18 Uniform Resource Locator  Κάθε URL είναι μοναδικό  αναφέρεται σε ακριβώς έναν πόρο  Ανάγκη για κανονικοποίηση  URLs με ελαφρώς παραλλαγμένη μορφή - αναφέρονται στον ίδιο πόρο Διαδικτύου 18/45

19 URL Parts  Scheme: http  Authority:  Path: over/there/page.html  Query: /name=some_name  Fragment: something 19/45

20 Κανόνες κανονικοποίησης URL  Μετατροπή του πρωτοκόλλου και του ονόματος δικτυακού τόπου σε πεζούς χαρακτήρες. Για παράδειγμα, το μετατρέπεται σε  Αφαίρεση της « άγκυρας » ή της « αναφοράς » από την διεύθυνση. Δηλαδή το μειώνεται στο  Μετατροπή των ειδικών χαρακτήρων σε δεκαεξαδική μορφή (URL encoding). Για παράδειγμα τα παρακάτω URL θεωρούνται ισοδύναμα :    Για κάποιες διευθύνσεις απαιτείται η προσθήκης του τελικού ‘/’. Επειδή οι διευθύνσεις και θα πρέπει να έχουν την ίδια κανονική μορφή.  το ίδιο ισχύει και για την αναγνώριση των προκαθορισμένων σελίδων όπως index.html και index.htm.  Διατήρηση του αριθμού port της διεύθυνση εκτός και αν είναι το 80.  Αφαίρεση του ‘..’ και του πατρικού καταλόγου από τη διεύθυνση. Για παράδειγμα η διεύθυνση : σε  Περιορισμός του μήκους των διευθύνσεων σε πχ 128 ή 256 χαρακτήρες για την αποφυγή παγίδων ατέρμονου βρόγχου. More Info UFC 3986UFC /45

21 Redirects  Η διεύθυνση  ανακατευθύνεται στην  Status code (HTML RESPONSE)  200: οκ  403: Forbidden  404: page not found  302: temporary redirect  301: permanent redirect (read more)read more 21/45

22 Redirects  Redirection 3xx  This class of status code indicates that further action needs to be taken by the user agent in order to fulfill the request. 22/45

23 Παράδειγμα P1 P15P14 P10 P5 P9 P3 P8 P13P12P11 P7 P2 P4 P6 Σελίδα Αρχικοποίησης Διεύθυνση που περιέχεται στην σελίδα P1 και δείχνει προς την σελίδα P2 Ουρά P1 P2 P12 P11 P10 P1 X έχει ήδη εισαχθεί P8 P7 P9 X μεγάλη καθυστέρηση P4P4 P7 X έχει ήδη εισαχθεί P6P6 P5P5 P3P3 P13 P14 P15 P7 P1 23/45

24 Δεικτοδότηση Ιστοσελίδων  Μεγάλες απαιτήσεις  Σε υλικό  Σε πόρους δικτύου Η δεικτοδότηση ολόκληρου του Web είναι πρακτικά αδύνατη ! 24/45

25 Ορισμός Εστιασμένος Προσκομιστής  Είναι μια μονάδα (module) μιας vertical search engine  Αναλαμβάνει να προσκομίσει σελίδες συγκεκριμένης θεματολογίας  Απαιτεί πολύ λιγότερους πόρους σε υλικό και σε πόρους δικτύου από ότι ένας συμβατικός προσκομιστής  Απαιτεί λογισμικό μεγαλύτερης πολυπλοκότητας από έναν απλό προσκομιστή ιστοσελίδων 25/45

26 Εστιασμένοι προσκομιστές (focused crawlers)  A νακτούν ιστοσελίδες συγκεκριμένης θεματολογίας / είδους.  Ένας επιλεκτικός προσκομιστής επιθυμεί ιδανικά να επισκεφθεί μόνο ιστοσελίδες που σχετίζονται με το σύνολο των κατηγοριών που έχουν οριστεί ως σχετικές, και να αποφύγει εκείνες που δεν ανήκουν στο συγκεκριμένο σύνολο. 26/45

27 Παραδείγματα  (Cho et al,1998)  (Chakrabarti S., et al. 1999)  (Chacrabarti S., et al 2002)  (Diligenti et al., 2000)  (Ehrig & Maedche., 2003)  (Johnson et al., 2003)  (Ye et al., 2004)  (Partalas, I., et al, 2008)  (Batsakis. S., et al, 2009) 27/45

28 Παράδειγμα P1 P10 P5 P9 P3 P8 P7 P2 P4 P6 P1 Σελίδα Αρχικοποίησης P2 P10 P8 P9 P4P4 P6P6 P5P5 P3P3 Έστω Σελίδες με σχετική πληροφορία P1, P4, P3, P12 P4 P1 P3 P12 P7 Μη σχετική σελίδα Σχετική σελίδα Δεν θα προσκομιστεί Μη σχετική σελίδα P3P3 Δεν θα προσκομιστεί Δεν θα π ροστεθει η P12 γιατί δεν π ροστέθηκε η P8 28/45

29 Δυο βασικά ερωτήματα  Πως αποφασίζουμε αν μια σελίδα που έχουμε κατεβάσει είναι σχετική με το θέμα ;  Χρήση κατηγοριοποιητή  Πως αποφασίζουμε να επιλέξουμε την επόμενη σελίδα που θα επισκεφτούμε ;  Βαθμολόγηση της διεύθυνσης 29/45

30 Διαδικασία προσκόμισης και επεξεργασία ιστοσελίδων Προσκόμιση Αναγνώριση γλώσσας Συντακτική ανάλυση κώδικα ιστοσελίδας ε π εξεργασία Εξαγωγή URLs και καθαρού κειμένου Μορφοσυντακτικός σχολιασμός Αναγνώριση χαρακτηριστικών όρων Α π οθήκευση Καθορισμός χρήσιμων π ληροφοριών Α π οθήκευση Προώθηση νέων URLs για βαθμολόγηση 1. προσκομιστής γενικού σκοπού 30/45

31 Επεξεργασία Ιστοσελίδων με Python 31/45

32 Επεξεργασία Ιστοσελίδων με Python  Πως προσκομίζω τον κώδικα μίας ιστοσελίδας ?  Πως εξάγω συγκεκριμένο τμήμα της ?  Πως εξάγω την λίστα των url?  Πως κανονικοποιώ ένα url ?  Πως μετατρέπω ένα σχετικο url σε απόλυτο ? 32/45

33 Πως προσκομίζω τον κώδικα μίας ιστοσελίδας ?  Δεν ακολουθεί redirects  Αποτέλεσμα : import urllib2 response=urllib2.urlopen("http://www.dblab.upatras.gr/")http://www.dblab.upatras.gr/ page_source = response.read() print page_source import urllib2 response=urllib2.urlopen("http://www.dblab.upatras.gr/")http://www.dblab.upatras.gr/ page_source = response.read() print page_source DBpage If you are not redirectered automatically please click here. DBpage If you are not redirectered automatically please click here. 33/45

34 BeautifulSoup   Python library for parsing HTML documents PythonHTML  Διορθώνει malformed markup  Χρησιμοποιείται για την εξαγωγή δεδομένων από ιστοσελίδες  Μεταμορφώνει ένα πολυπλοκο HTML document σε μία δενδρική ιεραρχία Python objects(four kinds of objects) 34/45

35 BeautifulSoup - Οδηγίες εγκατάστασης :  Οδηγίες Οδηγίες  Απο console : pip install beautifulsoup4  Εναλλακτικά :  Κατεβάστε το αρχείο beautifulsoup tarbeautifulsoup tar  Αποσιμπιέστε το στον φάκελο που έχει εγκατασταθεί η Pyhton ( πχ : C:\python27)  Αντιγράψτε τον φάκελο bs4 στον φάκελο της Python  Εκτελεστε την εντολή : python C:\Python27\beautifulsoup \setup.py install Problem installing packages? Python version 2.7 required, which was not found in the registry 35/45

36 Πως αποκτώ τον Html κωδικα μίας ιστοσελίδας ? def getWPsoup(url): html_doc = urllib2.urlopen(url) soup = BeautifulSoup(html_doc.read()) return soup def getWPsoup(url): html_doc = urllib2.urlopen(url) soup = BeautifulSoup(html_doc.read()) return soup Τυπώνω τον κώδικα Html μίας ιστοσελίδας : url=“http://www.ceid.upatras.gr/” soup=getWPsoup(url) print(soup.prettify()) url=“http://www.ceid.upatras.gr/” soup=getWPsoup(url) print(soup.prettify()) 36/45

37 37/41 Πως εξάγω συγκεκριμένο τμήμα της ?

38 Παραδείγματα #1 38/45

39 Παραδείγματα #2 39/45

40 Πως εξάγω την λίστα των url? Τα urls  δεν ειναι κανονικοποιημενα  δεν είναι πάντα σε απόλυτη μορφή ( πλήρες url)  for link in soup.find_all('a'): print(link.get('href'))  for link in soup.find_all('a'): print(link.get('href')) 40/45

41 Πως κανονικοποιώ μία διεύθυνση URL  Install urlnorm 1. Download zip (http://github.com/downloads/jehiah/urlnorm/urlnorm tar.gz) Download zip 2. Execute from console pip install -U urlnorm import urlnorm N_url= urlnorm.norm(“http://www.UPAtraS.gr:80/INDEx/../page/id/8”)“http://www.UPAtraS.gr:80/INDEx/../page/id/8 Print N_url import urlnorm N_url= urlnorm.norm(“http://www.UPAtraS.gr:80/INDEx/../page/id/8”)“http://www.UPAtraS.gr:80/INDEx/../page/id/8 Print N_url Παράδειγμα : 41/45

42 Πως μετατρέπω μία σχετική διεύθυνση URL σε απόλυτη ;  Χρήση της βιβλιοθήκης urllib (python 2.7.3)  Παράδειγμα : from urllib.parse import urljoin absoluteURL=urljoin.parse(baseURL,relativeURL) from urllib.parse import urljoin absoluteURL=urljoin.parse(baseURL,relativeURL) urlparse.urljoin("http://www.ceid.upatras.gr/","info/tomeis.htm") 'http://www.ceid.upatras.gr/info/tomeis.htm' 42/45

43 Πως εξάγω όλο το κείμενο από μία ιστοσελίδα ? # The Dormouse's story # # The Dormouse's story # # Once upon a time there were three little sisters; and their names were # Elsie, # Lacie and # Tillie; # and they lived at the bottom of a well. # #... # The Dormouse's story # # The Dormouse's story # # Once upon a time there were three little sisters; and their names were # Elsie, # Lacie and # Tillie; # and they lived at the bottom of a well. # #... print(soup.get_text()) 43/45

44 Ερωτήσεις Ευχαριστώ !!! 44

45 References  Brin. S, and Page. L, (1998): “The anatomy of large scale hypertextual web search engine”, in Proc. Of the 7th World Wide Web WWW conference, 1998, online at  Heydon A., Najork M., (1996): “’Mercator’, A Scalable, Extensible Web Crawler”. International Journal of WWW, Vol. 2. No. 4. (1999) 219  Burner M., (1997): “Crawling towards Eternity: Building an archive of the World Wide Web”, Web Techniques Magazine, 2(5) May 1997  Hafri Y., Djeraba C., (2004). “High performance crawling system”. In Proceedings of the 6th ACM SIGMM international workshop on Multimedia information retrieval (MIR '04). ACM, New York, NY, USA, DOI= /  Cho J., Garcia-Molina H. and Page L., (1998): “Efficient crawling through URL ordering”. In 7th Int. World Wide Web Conference  Chakrabarti, S., Punera, K., & Subramanyam, M. (2002): “Accelerated focused crawling through online relevance feedback”. In Proceedings of the 21st ACM International World Wide Web Conference (WWW), Honolulu, Hawaii USA.  Chakrabarti, S., van den Berg, M. & Dom, B. (1999): “Focused crawling: a new approach to topic-specific web resource discovery”. In Computer Networks, vol.31, pp. 11–16.  Dilligenti, M., Coetze, F.M., Lawrence, S., Giles, C.L. & Gori M. (2000), “Focused crawling using context graphs”. In Proceedings of the 26th International Conference on Very Large Databases (VLDB).  Ehrig, M. & Maedche, A. (2003): “Ontology-focused crawling of web documents”. In Proceedings of the ACM Symposium on Applied Computing.  Johnson, J., Tsioutsiouliklis, K., & Giles, C.L. (2003): “Evolving strategies for focused web crawling”. In Proceedings of the 20th International Conference on Machine Learning (ICML-2003) Washington DC.  Ye, Y., Ma, F., Lu, Y., Chiu, M. & Huang, J. (2004): “iSurfer: a focused web crawler based on incremental learning from positive samples”. In Proceedings of the Asian-Pacific Web Conference (APWeb), pp  Partalas, I., Paliouras, G. Vlahavas, I. (2008): “Reinforcement learning with classifier selection for focused crawling”. In Proceedings of the European Conference of Artificial Intelligence, pp  Batsakis S., Petrakis G.M E., Millios E. (2009): “Improving the performance of focused web crawlers”, In the Proceeding of Data & knowledge Engineering ( ) CrawlersFocused crawlers 45/45


Κατέβασμα ppt "ΔΙΑΧΕΙΡΙΣΗ ΠΕΡΙΕΧΟΜΕΝΟΥ ΣΤΟΝ ΠΑΓΚΟΣΜΙΟ ΙΣΤΟ & ΓΛΩΣΣΙΚΑ ΕΡΓΑΛΕΙΑ 4 ο Προσκομιστές Πληροφορίας 11/3/2013."

Παρόμοιες παρουσιάσεις


Διαφημίσεις Google