La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Raccolta, ranking e query delle pagine di un webgraph Ilaria Bordino.

Presentazioni simili


Presentazione sul tema: "Raccolta, ranking e query delle pagine di un webgraph Ilaria Bordino."— Transcript della presentazione:

1 Raccolta, ranking e query delle pagine di un webgraph Ilaria Bordino

2 Pagina 2 Programma della lezione Nutch: un motore di ricerca configurabile dallutente Esecuzione di Pagerank sul grafoDIS; Esecuzione di HITS sul grafoDIS; Indicizzazione delle pagine html del grafo DIS in MG4J; Query da riga di comando usando MG4J;

3 Pagina 3 db Link structure IPS RankPR Nutch ParserDB WEB readdb graph.txt txt2IPS PageRank HITS RankHITS getfiles files MG4J RankMG4J Query

4 Pagina 4 db Link structure IPS RankPG Nutch ParserDB WEB readdb graph.txt txt2IPS PageRank HITS RankHITS getfiles files MG4J RankMG4J Query

5 Pagina 5 Nutch: motore di ricerca configurabile dall'utente Permette la raccolta delle pagine, lindicizzazione e linterrogazione delle pagine web. INPUT: un set di pagine html OUTPUT: motore di ricerca sulle pagine raccolte USO: raccolta di pagine e ricerca sulla collezione indicizzata

6 Pagina 6 Nutch: download Disponibile gratuitamente in http://www.nutch.org –Tutorial: http://www.nutch.org/tutorial.html –Presentazione generale del codice: – http://www.nutch.org/apidocs/overview-summary.htmlhttp://www.nutch.org/apidocs/overview-summary.html Ultimaversione: http://www.nutch.org/release (il file nutch-0.7.tar.gz)

7 Pagina 7 Nutch: configurazione Java 1.4.x (http://java.sun.com/j2se/downloads.html) – Tomcat di Apache 4.x (http://jakarta.apache.org/tomcat) – Almeno un gigabyte su disco; – Connessione Internet veloce;

8 Pagina 8 Nutch: configurazione Inizializzare NUTCH_JAVA_HOME con la directory radice di Java. –edit.bashrc per inserire export NUTCH_JAVA_HOME =/usr/local/lib/j2sdk1.4.2_03 –MAC OS: export NUTCH_JAVA_HOME=/Library/Java/Home Aggiungere nutch/bin al PATH –edit.bashrc per inserire export PATH =$ PATH:nutch/bin

9 Pagina 9 Raccolta delle pagine del DIS Creare il file urls nella directory public/infoRetr/nutch con linsieme iniziale di pagine html. –Ex: http://www.dis.uniroma1.it Modificare il file nutch-0.6/conf/crawl-urlfilter.txt per personalizzare la raccolta Aggiungere +^http://([a-z0-9]*\.)*dis.uniroma1.it/per limitare la raccolta alle pagine al dominio dis.uniroma1.it

10 Pagina 10 Raccolta delle pagine del DIS Lista di parametri: nutch crawl –-dir : directory dove saranno memorizzati i resultati della raccolta –-depth : profondita dei path a partire dalla pagina radice –delay : intervallo di tempo, in secondi, fra due consecutive richieste su uno stesso host. –-threads : numero di threads eseguiti in parallelo Esecuzione del crawl: – nutch crawl urls –dir mycrawl –depth 3 >& mycrawl.log – NON ESEGUIRE A LEZIONE

11 Pagina 11 db Link structure IPS RankPG Nutch ParserDB WEB readdb graph.txt txt2IPS PageRank HITS RankHITS getfiles files MG4J RankMG4J Query

12 Pagina 12 Nutch WedDB Permette di estrarre webgraph dalle pagine raccolte; DB puo essere aggiornato con nuovi dati; Usata per consultare i dati nel DB (html) Si usa WebDBReader (net.nutch.db.WebDBReader)

13 Pagina 13 Classe WebDBReader: metodi

14 Pagina 14 Interrogazione del DB –nutch readdb: comando usato per esaminare campi arbitrari del db ; –Eseguire: nutch readdb per vedere le opzioni –Dimensione del webgraph: nutch readdb mycrawl/db –stats (sembra dare un errore: il numero di archi e incorretto) –Lista dei links: nutch readdb mycrawl/db –dumplinks –Pagine con ranking piu' alto: nutch readdb mycrawl/db –toppages 2

15 Pagina 15 db Link structure IPS RankPG Nutch ParserDB WEB readdb graph.txt txt2IPS PageRank HITS RankHITS getfiles files MG4J RankMG4J Query

16 Pagina 16 Output di readdb sul webgraph from http://www.dis.uniroma1.it/%7Ecatarci/DBslides/Mod2L1-2/sld006.htm to http://www.dis.uniroma1.it/%7Ecatarci/DBslides/Mod2L1-2/index.htm to http://www.dis.uniroma1.it/%7Ecatarci/DBslides/Mod2L1-2/sld001.htm to http://www.dis.uniroma1.it/%7Ecatarci/DBslides/Mod2L1-2/sld005.htm to http://www.dis.uniroma1.it/%7Ecatarci/DBslides/Mod2L1-2/sld007.htm to http://www.dis.uniroma1.it/%7Ecatarci/DBslides/Mod2L1-2/sld036.htm to http://www.dis.uniroma1.it/%7Ecatarci/DBslides/Mod2L1-2/tsld006.htm from http://www.dis.uniroma1.it/~finzi/didattica/programmaFondI0203.html to http://tibur.dis.uniroma1.it/Fond_Inf_1_INF_DIPL/index.html to http://www.dis.uniroma1.it/~cioffi/homeciof.html from http://www.dis.uniroma1.it/~buriol/infoRetr.html to http://www.dis.uniroma1.it/~cosin/html_pages/COSIN-Tools.htm

17 Pagina 17 db Link structure IPS RankPG Nutch ParserDB WEB readdb graph.txt txt2IPS PageRank HITS RankHITS getfiles files MG4J RankMG4J Query

18 Pagina 18 Parsing del webgraph –graphExtractor.pl: un parser scritto in perl per estrarre il webgraph –Uso: graphExtractor.pl input-fileName output-fileName –./graphExtractor.pl dis0905.crl dis0905.txt –Dis0905edges: lista dei archi del grafo –Dis0905nodes: lista dei nodi del grafo e sue rispettivi html page

19 Pagina 19 Lista degli archi –more dis0905.txtedges –1 2 –13 –4 5 –4 6 –5 22 –5 791 –5 792 –5 793 –5 794 –6 22 –6 1001 –6 3406 –6 3407 –6 3408 –6 3409 –7 8 –7 9

20 Pagina 20 Lista dei nodi: id e url more dis0905.txtnodes 1 http://www.dis.uniroma1.it/~quaglia/pads2002/preliminary.html 2http://www.dis.uniroma1.it/~quaglia/pads2002/bio-mag.html 3 http://www.dis.uniroma1.it/~quaglia/pads2002/panel.html 4 http://www.dis.uniroma1.it/~ai/citations/cado-giov-scha-98.html 5 http://www.dis.uniroma1.it/~cadoli/ 6 http://www.dis.uniroma1.it/~schaerf/ 7 http://www.dis.uniroma1.it/%7Eausiello/InfoTeoIIRM/libro.html 8 http://www.dis.uniroma1.it/%7Eausiello/InfoTeoIIRM/book/bibliography.pdf 9 http://www.dis.uniroma1.it/%7Eausiello/InfoTeoIIRM/book/chapter02.pdf 10 http://www.dis.uniroma1.it/%7Eausiello/InfoTeoIIRM/book/chapter03.pdf 11 http://www.dis.uniroma1.it/%7Eausiello/InfoTeoIIRM/book/chapter04.pdf 12 http://www.dis.uniroma1.it/%7Eausiello/InfoTeoIIRM/book/chapter05.pdf

21 Pagina 21 db Link structure IPS RankPG Nutch ParserDB WEB readdb graph.txt txt2IPS PageRank HITS RankHITS getfiles files MG4J RankMG4J Query

22 Pagina 22 Uso di PageRank - sudo apt-get install libstdc++2.10-glibc2.2 –(per usare la libreria DIS con gcc 4) –INPUT: il grafo in formato IPS –OUTPUT: ranking delle pagine secondo lalgoritmo pagerank –Uso: pagerank columns > pr-printFile

23 Pagina 23 Uso di PageRank InputFile: base-name del file in formato IPS prob: probabilita di scegliere una pagina vicina (e non saltare a altra pagina) residual: pagerank si ferma se il residuo e piu piccolo di residual maxIter: numero massimo di iterazioni eseguite per pagerank;

24 Pagina 24 Uso di PageRank Pr-report: file con i risultati di pagerank columns: stampa vari tipi di informazione: –N: colonna con lid del nodo; –I: colonna con lindegree del nodo; –O: colonna con loutdegree del nodo; –P: colonna con il rank del nodo; Pr-printFile: stampa di varie statistiche su Pagerank (correlazione Indegree/Outdegree, correlazione Indegree/Pagerank, ecc.)

25 Pagina 25 Esecuzione di PageRank –../../bin/pagerank 100 graph-ips-name.%d 0.85 0.001 50 pr-report.%d NIOP > pr-print.txt –File generati: ls pr* Pr-report*listNodes.txt: nodeID, indegree, outdegre, e page rank values per ogni node Pr-results*pr_distrib.txt.: valori de PR e numero di nodi con il rispettivo valori di PR Pr-results*.report.txt.: statistiche sul i risultati

26 Pagina 26 more pr-report-dis.0.listNodes.txt – NODE INDEG OUTDEG PR(0..1) PR(0..N) 0 0 0 0.0000093597 0 1 1 2 0.0000158141 0 2 1 0 0.0000173092 0 3 1 0 0.0000173092 0 4 1 2 0.0000097316 0 5 54 5 0.0002253834 4 6 67 6 0.0002500968 4 7 3 5 0.0000126779 0 8 1 0 0.0000119087 0 9 1 0 0.0000119087 0 10 1 0 0.0000119087 0 11 1 0 0.0000119087 0 12 1 0 0.0000119087 0 13 1 7 0.0000125320 0 14 1 0 0.0000111593 0 15 1 0 0.0000111593 0 16 1 0 0.0000111593 0 17 1 0 0.0000111593 0 18 1 0 0.0000111593 0

27 Pagina 27 Analisi dei risultati –Larger indegree: sort –n –r –k2,3 pr-report-dis0905.0.listNodes.txt > pr-sorted.txt | more pr-sorted.txt –Larger rank: sort –n –r –k4 pr-report-dis0905.0.listNodes.txt > valoriPR.txt –sort: comando linux per ordinare valori -n: ordina secondo valori numerici -r: ordine inverso (decrescente) -k: numero d'ordine delle colonne in base a cui ordinare –more: comando linux che mostra i risultati una schermata alla volta

28 Pagina 28 Analisi dei risultati –Osservare: pagine in ordine crescente di indegree pagine in ordine crescente di outdegree pagine in ordine decrescente di outdegree

29 Pagina 29 Analisi dei risultati –awk BEGIN {while(getline>0) printf(%d %d %d %lf %lf\n,$1,$2,$3,$4,$5)} pr-report-dis0905.0.listNodes.txt | sort –n –r –k4 > pr-valori.txt –more pr-valori.txt –awk: linguaggio di programmazione per text-processing. Utile per modificare testo.

30 Pagina 30 more pr-report-dis.0.pr_distrib.txt – ================================================== Values grouped by 25 (unit 1.66444e-08) %unit 1.66444e-08 %PageRank %num nodes 9.37637e-06 1 9.50952e-06 313 9.52616e-06 96 9.54281e-06 285 9.55945e-06 251 9.5761e-06 71 9.59274e-06 2 9.60939e-06 89 9.62603e-06 79 9.64268e-06 158 9.67596e-06 25 9.69261e-06 60 9.70925e-06 109 9.7259e-06 203 9.74254e-06 350 9.75919e-06 124 9.77583e-06 67 9.79248e-06 254

31 Pagina 31 Visualizzazione dei risultati –Stampa la distribuizione: awk 'BEGIN {getline;getline;getline;getline;while(getline>0 && $2>0) printf("%.25f %lf\n",$1,$2);}' pr-report-dis.0.pr_distrib.txt > pr-distr.txt –Gnuplot: programma a linea di comando per produrre grafici 2D e 3D. –Per entrare nellambiente: gnuplot –gnuplot> plot pr-distr.txt using 1:2 w p –gnuplot> set logscale –gnuplot> replot –gnuplot> quit

32 Pagina 32 Distribuzione di PageRank

33 Pagina 33 Uso di HITS –INPUT: grafo in formato IPS –OUTPUT: ranking delle pagine secondo lalgoritmo hits –Uso: hits –Nota: programma interattivo: parametri forniti da std input InputFile: GraphName.%d maxResidual: hits si ferma se il residuo e piu piccolo di maxResidual maxIter: numero massimo di iterazioni

34 Pagina 34 Esecuzione di HITS –../../bin/hits –Insert graph name: graphName.%d –Insert maxResidual: 0.001 –Insert maxIteration: 50

35 Pagina 35 File generati –hits_distrib_AUTH.txt: valori di authority e numero di nodi con il suddetto valore. –hits_distrib_HUBS.txt: valori di hubs e numero di nodi con il suddetto valore. –hits_distrib_INDEG.txt: distribuzione dell indegree –hits_report_correlaz.txt: risultati della correlazione –hub.listNodes.txt: risultati di hits

36 Pagina 36 more auth0.listNodes.txt – 0.0000e+00 4.6251e-22 4.5167e-25 4.5167e-25 1.9430e-08 2.7154e-02 2.8796e-02 1.6830e-12 4.3075e-21 4.3075e-21 4.3075e-21 4.3075e-21 4.3075e-21 1.3156e-05 1.2460e-19 1.2460e-19 1.2460e-19 1.2460e-19 1.2460e-19 1.2460e-19 1.2460e-19 4.6855e+01 1.3740e+01

37 Pagina 37 Analisi dei risultati –awk BEGIN {no=0;while(getline>0) printf(%ld %.25f\n,++no,$1)} auth0.listNodes.txt > valHits.txt –sort –n –r –k2 valHits.txt | more

38 Pagina 38 sort –n –r –k2 valHits.txt | more – 213 392.9900000000000090949470177 211 387.6299999999999954525264911 214 374.3000000000000113686837722 253 371.2400000000000090949470177 212 366.4800000000000181898940355 252 365.1899999999999977262632456 1623 363.2599999999999909050529823 248 362.8700000000000045474735089 251 362.0099999999999909050529823 249 362.0099999999999909050529823 1621 359.8299999999999840838427190 258 358.9200000000000159161572810 257 358.9200000000000159161572810 256 358.9200000000000159161572810 255 358.9200000000000159161572810 254 358.9200000000000159161572810 250 358.9200000000000159161572810 1622 356.7400000000000090949470177 1620 356.6499999999999772626324557 1615 356.6499999999999772626324557 1628 353.5600000000000022737367544 1627 353.5600000000000022737367544 1626 353.5600000000000022737367544 1625 353.5600000000000022737367544

39 Pagina 39 db Link structure IPS RankPG Nutch ParserDB WEB readdb graph.txt txt2IPS PageRank HITS RankHITS getfiles files MG4J RankMG4J Query

40 Pagina 40 Download delle pagine html –Procediamo all' indicizzazione delle pagine raccolte da Nutch mediante MG4J. –Le pagine devono essere precedentemente scaricate, visto che non e possible ottenerle dal db di Nutch –Generare un file di testo con le pagine che devono essere raccolte: cut -f2 dis0905.txtnodes > pagesList.txt –Scaricare le pagine: wget -N pagine -i pagesList.txt

41 Pagina 41 db Link structure IPS RankPG Nutch ParserDB WEB readdb graph.txt txt2IPS PageRank HITS RankHITS getfiles files MG4J QueryMG4J Query

42 Pagina 42 Impostazione del Classpath per MG4J – export CLASSPATH=$CLASSPATH:/Public/infoRetr/mg4j/BeanShell/bsh- 2.0b2.jar:/Public/infoRetr/mg4j/mg4j- 0.9.2.jar:/Public/infoRetr/mg4j/colt.jar:/Public/infoRetr/mg4j/ jakarta-commons- collections.jar:/Public/infoRetr/mg4j/jal.jar:/Public/infoRetr/ mg4j/jsap.jar:/Public/infoRetr/mg4j/mysql-connector- java.jar:/Public/infoRetr/mg4j/fastutil.jar:/Public/infoRetr/mg 4j/jakarta-commons- io.jar:/Public/infoRetr/mg4j/javacc.jar:/Public/infoRetr/mg4j/l ibreadline- java.jar:/Public/infoRetr/mg4j/pdfbox.jar:/Public/infoRetr/mg4j /gnu.getopt.jar:/Public/infoRetr/mg4j/jakarta-commons- lang.jar:/Public/infoRetr/mg4j/javamail/mailapi.jar:/Public/inf oRetr/mg4j/servletapi5.jar:/Public/infoRetr/mg4j/jaf.jar:/Publi c/infoRetr/mg4j/jakarta-commons- logging.jar:/Public/infoRetr/mg4j/jetty5/jetty5.jar:/Public/inf oRetr/mg4j/mstor.jar:/Public/infoRetr/mg4j/tagsoup.jar:/Public/ infoRetr/mg4j/log4j.jar:/Public/infoRetr/mg4j/velocity.jar

43 Pagina 43 Indicizzazione delle pagine html – Costruzione della base documentale: find../htmlDIS -type f | java it.unimi.dsi.mg4j.document.FileSetDocumentCollectio n -f it.unimi.dsi.mg4j.document.HtmlDocumentFactory htmldis.collection –Creazione dellindice: java -Xmx512M it.unimi.dsi.mg4j.tool.Index -- downcase -S htmldis.collection collectionDIS

44 Pagina 44 MG4J: Scorer – Tra gli scorer di MG4J : – clarkeComarckScorer: documentazione in Class ClarkeCormarkScorer di MG4J – DocumentRankScorer: assegna un rank pre-calcolato alle pagine. Il default e il resultato di query booleana: le pagine sono ritornate in ordine crescente di suei ID.

45 Pagina 45 Interrogazione da riga di comando – java it.unimi.dsi.mg4j.query.Query –help –Uso: java Query -c collection collectionBaseName1 collectionBaseName2 –java -Xmx512M it.unimi.dsi.mg4j.query.Query -c htmldis.collection collectionDIS-text collectionDIS-title –[!help]>Dipartimento –Redirezionare la query su un file di output (outFile) –grep "Document #" outFile | more

46 Pagina 46 db Link structure IPS RankPG Nutch ParserDB WEB readdb graph.txt txt2IPS PageRank HITS RankHITS getfiles files MG4J RankMG4J Query


Scaricare ppt "Raccolta, ranking e query delle pagine di un webgraph Ilaria Bordino."

Presentazioni simili


Annunci Google