Algoritm de crawling

1,941 views

Published on

Algoritm de crawling prezentat pentru proiectul de diploma la facultate.

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,941
On SlideShare
0
From Embeds
0
Number of Embeds
37
Actions
Shares
0
Downloads
0
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Algoritm de crawling

  1. 1. Algoritm de crawling pe baza analizei de similaritate a documentelor web si a textului de link Coordonator stiintific Conf. dr. ing. Stefan Stancescu Universitatea Politehnica Bucureşti Facultatea Electronică, Telecomunicaţii şi Tehnologia Informaţiei Student Popa Ionut Dan
  2. 2. Cuprinsul lucrarii: <ul><li>Ce este un web crawler </li></ul><ul><li>Aplicatii ale web crawlerelor </li></ul><ul><li>Tipuri de crawlere </li></ul><ul><li>Algoritmi de crawling </li></ul><ul><li>Arhitectura si algoritmul crawlerului proiectat </li></ul><ul><li>Evaluarea crawler-ului si prezentarea rezultatelor obtinute </li></ul>
  3. 3. 1. Ce este un web crawler <ul><li>Un web crawler sau spider sau robot este un program care downloadeaza documente web automat . </li></ul><ul><li>Se foloseste de structura web-ului pentru a naviga intre pagini si a aduna informatie. </li></ul><ul><li>web-ul este o entitate dinamica care evolueaza rapid, deci exista nevoia continua ca acesti roboti sa ajute applicatiile sa fie la curent cu evolutia documentelor web . </li></ul>
  4. 4. 2. Aplicatii ale unui web crawler <ul><li>colectarea de informatii despre competitorii unei organizatii sau despre potentiali colaboratori ; </li></ul><ul><li>monitorizarea site - urilor web si documentelor web de interes pentru ca un user sau o comunitate sa poate fi notificata cand apar informatii noi </li></ul><ul><li>rau intentionate aduna rea de adrese de email si date personale care vor fi folosite de spammeri sau pentru a colecta informatii personale care pot fi folosite in furtul de identitate si spamming </li></ul><ul><li>colecteaza documente pentru ca motoarele de cautare sa isi construiasca indexii </li></ul>
  5. 5. 3. Tipuri de web crawlere <ul><li>Crawler-ele folosite de motoarele de cautare sunt universale: </li></ul><ul><ul><li>Aduc cantitati mari de documente indiferent de subiectul lor </li></ul></ul><ul><ul><li>Incearca sa creeze o imagina cat mai reala a web-ului local </li></ul></ul><ul><ul><li>Avand in vedere miliardele de documente din web-ului aceste crawlere nu satisfac nevoile </li></ul></ul><ul><li>Crawler-ele orientate pe un domeniu ( topic/focused crawlers ) </li></ul><ul><ul><li>Au fost introduse pentru a satisface nevoile expertilor sau cunoscatorilor unui domeniu de a crea si mentine colectii de documente local despre anumite subiecte; </li></ul></ul><ul><ul><li>Incearca sa donwloadeze pagini relevante la un subiect anume tinand numarul de documente nerelevante cat mai mic posibil </li></ul></ul>Data Numarul de pagini indexate de Google Junie 2000 1 miliard Decembire 2000 1.3 miliarde August 2002 2.5 miliarde Decembrie 2002 4 miliarde Februarie 2004 4.28 miliarde Decembrie 2004 8 miliarde August 2005 8.2 miliarde
  6. 6. 4. Algoritmi de crawling (1) <ul><li>Breadth-first: </li></ul><ul><ul><li>Cea mai simpla metoda de crawling </li></ul></ul><ul><ul><li>Breadth-first foloseste frontiera de crawl ca si o coada FIFO parcurgand linkurile in ordinea in care sunt gasite </li></ul></ul><ul><li>Naïve Best-First </li></ul><ul><ul><li>calculeaza similaritatea dintre pagina si domeniul de interes si calculeaza un scor pentru URL-urile nevizitate de pe pagina pe baza acesteia. </li></ul></ul><ul><ul><li>URL-urile sunt apoi adaugate la o frontiera care este mentinuta ca o coada cu prioritati bazate pe scorul obtinut </li></ul></ul>Rezultat Rezultat
  7. 7. 4. Algoritmi de crawling (2) <ul><li>Page Rank </li></ul><ul><ul><li>Page Rank-ul unei pagini reprezinta probabilitatea ca un „surfer” oarecare sa acceseze pagina respectiva la orice moment </li></ul></ul><ul><ul><li>Paginile sursa isi distribuie PageRankul catre toate linkurile ei externe </li></ul></ul><ul><ul><li>PageRank este folositin combinatie cu criterii bazate pe continut pentru a „ordona” seturi de documente parcurse . </li></ul></ul>
  8. 8. 5. Arhitectura si algoritmul crawlerului proiectat (1) <ul><li>Este un crawler preferential care urmareste sa creeze o baza de date locala cu documente web de interes pentru un anumit domeniu. </li></ul><ul><li>Algoritmul folosit este (ca pentru majoritatea crawlerilor preferentiali) o variatie a algoritmului Best-First. </li></ul><ul><li>Fata de Best First acorda importanta sporita linkurilor : </li></ul><ul><ul><li>Pe baza similaritatii dintre link si domeniul de interes </li></ul></ul><ul><ul><li>Daca linkul indica catre acelasi domeniu primeste un scor mai mare </li></ul></ul>
  9. 9. 5. Arhitectura si algoritmul crawlerului proiectat (2) <ul><li>Datele initiale de proiectare </li></ul><ul><li>Definitia domeniului pentru care se vor cauta documente relevante prin crawling. </li></ul><ul><ul><li>Printr-o lista de cuvinte cheie toate avand ponderi egale in definitia acestuia (1) </li></ul></ul><ul><ul><li>Se pot alege ponderi diferite pentru fiecare termen </li></ul></ul><ul><li>Precizarea URL-urilor de start (seed URLs) considerate relevante pentru domeniul de interes; </li></ul><ul><li>Precizarea numarului maxim de pagini crawlate. </li></ul>BF_Link(domeniu, seed_ur){ foreach link(starting_urls){ enqueue(frontier, link, 1); } while(visited < MAX_PAGES){ link := dequeue_top_link(frontier); doc := fetch(link); doc_score := sim(topic, doc); link_sim_score := sim((link_text + link_anchor), topic); link_score := 1/3(doc_score) + 1/3(link_sim_score) + 1/3(domain_score); enqueue(frontier,extract_links(doc),link_score); if(#frontier > MAX_BUFFER){ dequeue_bottom_links(frontier); } } }
  10. 10. 5. Arhitectura si algoritmul crawlerului proiectat (3)
  11. 11. 5. Arhitectura si algoritmul crawlerului proiectat (4)
  12. 12. <ul><li>Exemplu </li></ul><ul><li>p 1 = 2t 1 + 3t 2 + 5t 3 </li></ul><ul><li>p 2 = 3t 1 + 7t 2 + 1t 3 </li></ul><ul><li>d = 0t 1 + 0t 2 + 2t 3 </li></ul>5. Arhitectura si algoritmul crawlerului proiectat (4) sim(p 1 , d) = 10 /  (4+9+25)(0+0+4) = 0.81 sim(p 2 , d) = 2 /  (9+49+1)(0+0+4) = 0.13 t 3 t 1 t 2 d 1 = 2t 1 + 3t 2 + 5t 3 d 2 = 3t 1 + 7t 2 + t 3 q = 0t 1 + 0t 2 + 2t 3 7 3 2 5
  13. 13. 6. Evaluarea crawlerului si prezentarea rezultatelor obtinute <ul><li>Il voi compara cu algoritmul Naïve Best-First ; </li></ul><ul><li>Voi masura Rata de achizitie pentru amandoua; </li></ul><ul><li>Experimentul s-a desfasurat pe un set de 2000 de pagini ; </li></ul><ul><li>Domeniul de interes va fi definit de urmatoarele cuvinte cheie: “ java,language,platform, programming, software” </li></ul><ul><li>Url-urile de initializare (seed URLs): </li></ul><ul><ul><li>http://en.wikipedia.org/wiki/Java_language </li></ul></ul><ul><ul><li>http://en.wikipedia.org/wiki/Java_Platform </li></ul></ul><ul><ul><li>http://java.sun.com/ </li></ul></ul><ul><ul><li>http://en.wikipedia.org/wiki/Java_(Sun) </li></ul></ul><ul><ul><li>http://www.java.com/en/ </li></ul></ul><ul><ul><li>http://www.answers.com/topic/java-programming-language </li></ul></ul>
  14. 14. 6. Evaluarea crawlerului si prezentarea rezultatelor obtinute
  15. 15. Va multumesc!

×