Esercitazione 2 Ranking di pagine Web Ilaria Bordino Ilaria Bordino e Debora Donato Corso di Ricerca dell'informazione nel Web - A.A. 2006/2007.

Slides:



Advertisements
Presentazioni simili
Informatica Generale Marzia Buscemi
Advertisements

Strutture dati per insiemi disgiunti
Code::Blocks Ambiente di sviluppo.
(Appunti da Scott Mitchell, James Atkinsons - Active Server Pages 3.0 – ed. Apogeo) Le pagine ASP.
PHP.
MATLAB.
MATLAB. Scopo della lezione Programmare in Matlab Funzioni Cicli Operatori relazionali Esercizi vari.
Dipartimento di Matematica
File System Cos’è un File System File e Directory
Elaboratore e Sistemi Operativo
Algoritmi e Programmazione
Informatica Generale Marzia Buscemi
1 Informatica Generale Susanna Pelagatti Ricevimento: Mercoledì ore presso Dipartimento di Informatica, Via Buonarroti,
1 Come si avvia un computer... Dove è contenuto il SO ? Come si attiva?
Generazione di Piani attraverso Grafi di Pianificazione
Interfaccia del file system
Breath-first search Visita in ampiezza di un grafo Algoritmo Esempio
Breath-first search Visita in ampiezza di un grafo Algoritmo Esempio
Programmazione Procedurale in Linguaggio C++
Prof.ssa Chiara Petrioli -- corso di programmazione 1, a.a. 2007/2008 Corso di Programmazione 1 a.a.2007/2008 Prof.ssa Chiara Petrioli Corso di Laurea.
Prof.ssa Chiara Petrioli -- corso di programmazione 1, a.a. 2006/2007 Corso di Programmazione 1 a.a.2006/2007 Prof.ssa Chiara Petrioli Corso di Laurea.
Informatica 2. Concetti fondamentali di programmazione Programmare vuol dire scrivere un algoritmo in un linguaggio che faccia funzionare un calcolatore.
MATLAB. …oggi… Programmare in Matlab Programmare in Matlab m-file m-file script script Funzioni Funzioni Cicli Cicli Operatori relazionali Operatori relazionali.
MATLAB.
MATLAB. …oggi… Programmare in Matlab Programmare in Matlab Funzioni Funzioni Cicli Cicli Operatori relazionali Operatori relazionali Indipendenza lineare,
MATLAB. …oggi… Programmare in Matlab Programmare in Matlab Funzioni Funzioni Cicli Cicli Operatori relazionali Operatori relazionali Esercizi vari Esercizi.
OPEN OFFICE e IMPRESS Masucci Antonia Maria.
Algoritmi e strutture dati
Importazione di dati Nellambito dellutilizzo di qualsiasi software statistico una necessità è quella di importare dati esterni forniti dallutilizzatore.
Ranking di pagine Web Ilaria Bordino, Yahoo! Research Barcelona
1 Informazioni generali r Stefano Leonardi m Tel.: m URL: / r Ricevimento:
Ranking di pagine Web Debora Donato. Pagina 2 Ranking delle pagine Raccolta delle pagine html; Costruzione del webgraph; Transformazione dei dati in un.
Ranking di pagine Web Ilaria Bordino, Yahoo! Research Barcelona Ida Mele, Sapienza Universita di Roma.
Hadoop: introduzione (1)
Fondamenti di Informatica
Calcolo di PageRank: esercizio
Raccolta, ranking e query delle pagine di un webgraph Ilaria Bordino.
Maurizio Lenzerini Domenico Lembo Laurea in Ingegneria Informatica - Università di Roma "La Sapienza" Corso di Basi di Dati - A.A. 2003/2004 Prima Esercitazione.
Introduzione alla programmazione lll
Ranking di pagine Web Ilaria Bordino Ranking di pagine web.
1 Programmi e funzioni in R Giorgio Valentini e –mail: DSI – Dipartimento di Scienze dell Informazione Università degli Studi di.
CAPITOLO 2 INTRODUZIONE AL LINGUAGGIO JAVA E ALL'AMBIENTE HOTJAVA.
Fondamenti di Informatica Laurea in Ingegneria Civile e Ingegneria per lambiente e il territorio Ambienti di programmazione Stefano Cagnoni e Monica Mordonini.
Elaborazione di Franco Grivet Chin
C# LE BASI 2007 Prima lezione - Introduzione.
File I record.
Università degli Studi di Bari Laurea in Chimica Di spense di Informatica - Dott. F. Mavelli Programmare in Matlab Funzioni di Libreria Funzioni definite.
Strutture dati per insiemi disgiunti
ISTITUTO STATALE DI ISTRUZIONE SUPERIORE F. ENRIQUES CORSO JAVA – PROVA INTERMEDIA DEL 12 MARZO 2007 NOME: COGNOME: ________________________________________________________________________________.
B trees.
14 marzo 2002 Avvisi:.
BIOINFO3 - Lezione 111 CGI-BIN CGI-BIN sono chiamati i programmi la cui esecuzione può essere richiesta attraverso il WEB. Il server web (httpd) della.
Grafi Rappresentazione mediante liste di adiacenza:
File e Funzioni Si possono distinguere tre tipi di file che vengono utilizzati in MATLAB: M-file: hanno estensione .m e in essi vengono memorizzati i.
Prof.ssa Chiara Petrioli -- corso di programmazione 1, a.a. 2006/2007 Corso di Programmazione 1 a.a.2006/2007 Prof.ssa Chiara Petrioli Corso di Laurea.
Informatica A.A. 2009/2010 Parte 4 Dai diagrammi di flusso alla programmazione strutturata: le istruzioni if, for, while, … Corso A: Prof. Stefano Berardi.
1 Esercitazione Sistemi distribuiti: sistemi che risisedono su più calcolatori interconnessi da una rete di comunicazione Algoritmi distribuiti: programmi.
Arduino: introduzione alla programmazione
Allievi Elettrici - AA Le funzioni ricorsive in C
Paola Disisto, Erika Griffini, Yris Noriega.  Insieme ordinato di operazioni non ambigue ed effettivamente computabili che, quando eseguito, produce.
TW Asp - Active Server Pages Nicola Gessa. TW Nicola Gessa Introduzione n Con l’acronimo ASP (Active Server Pages) si identifica NON un linguaggio di.
13 ottobre Decisioni F. Bombi 13 ottobre 2002.
Scrivere e compilare programmi
1 Informatica Generale Susanna Pelagatti Ricevimento: Mercoledì ore presso Dipartimento di Informatica, Via Buonarroti,
Linguaggio C: Le basi Stefano Cagnoni e Monica Mordonini
Esercizi.
LA FILOSOFIA DEL SAS Concepito per essere facilmente accessibile.
Informatica e Informatica di Base
Eprogram informatica V anno. Introduzione a PHP Introduzione La diffusione di PHP ha avuto un notevole incremento dalla fine degli anni Novanta a oggi,
Algoritmi Avanzati a.a.2013/2014 Prof.ssa Rossella Petreschi Albero ricoprente di costo minimo Lezione n°12.
Transcript della presentazione:

Esercitazione 2 Ranking di pagine Web Ilaria Bordino Ilaria Bordino e Debora Donato Corso di Ricerca dell'informazione nel Web - A.A. 2006/2007

Raccolta delle pagine html; Costruzione del webgraph; Transformazione dei dati in un formato adeguato; Ranking delle pagine del webgraph: –Con Pagerank; –Con Hits. Passi per il ranking delle pagine

Libreria Software per l'analisi di grafi di grandi dimensioni È un tool sviluppato presso il Dipartimento di Informatica e Sistemistica dell' Universita La Sapienza. Disponibile gratuitamente in SIN-Tools.htm Documentazione in: liverableD13.pdf

Libreria Obiettivo: offre una serie di routines in grado di: –Generare grafi in base alla maggior parte dei modelli presenti in letteratura –Calcolare alcune delle misure statistiche proprie del grafo del Web Distribuzione indegree outdegree Pagerank, hits SCCs, Clique Bowtie

Installazione della Libreria Implementata in C++ versione 2.9; Raccomandata almeno 256 MB di RAM; Installazione: –Download e unzip la libreria; –Type cd dis_library (cambia directory) –Type make (compila i source)

Struttura della Libreria Per ogni programma viene creata una cartella. Ogni cartella contiene il codice (*.h, *.cpp, *.cc). Makefile: compila e crea gli eseguibili dei programma; Common: contiene le routine comuni ai diversi algoritmi (memoria secondaria, rappresentazione binaria, etc); bin: contiene gli eseguibili creati durante la esecuzione di Makefile;

Struttura della Libreria Generators: Measures: Search algorithms: Bow-tie discovering: File converters: Miscellaneous:

Programmi che saranno usati per l esercitazione di oggi Della categoria file converters: –text2ips.script: transforma un file testo nella rappresentazione IPS; Della categoria graph measurers: –pagerank: esegue pagerank –hits: esegue hits

Grafo in Formato Testo Grafo esempioFormato testo

Il Formato IPS Per ogni grafo sono presenti 3 tipi di multifile: –.info: contiene lindegree, loutdegree il puntatore alla lista dei successori (memorizzata in.succ), il puntatore alla lista dei predecessori (memorizzata in.pred) –.succ: lista dei successori –.pred: lista dei predecessori

Grafo in Formato IPS

Multifile I file.ips devono essere in grado di contenere le informazioni relative a milioni di nodi e miliardi di archi. Limite: filesystem Soluzione: ogni file viene spezzato in piu file la cui gestione e completamente trasparente allutente ( multiFileWriter, multiFileReader)

Implementazione di PageRank Il calcolo di pagerank e fatto in blocchi: –I blocchi hanno misura fissa che dipende dal numero di float allocabili in memoria principale; numMB = memoria / (1024*1024); numFloat = numMB/sizeof(float); Nblocchi = numNodi/numFloat NnodiPerBlocco = numNodi/Nblocchi –Ogni blocco e caricato in memoria. Il page rank del blocco viene calcolato ed il risultato viene scritto su file;

Inizializzazione Verifica la correttezza dei parametri Partiziona il file dei successori in blocchi. Inizializza tutti nodi a 1/N Esegue il ciclo principale Normalizza e calcola residual Stampa i file dei risultati

Multifile utilizzati fileSorgente : contiene i valori di PR calcolati alla fine del passo precedente. Viene inizializzato allinizio di ogni ciclo con i valori di fileDestinatario fileTemporaneo : contiene i valori di PR alla fine del ciclo principale, prima del passo di normalizzazione. fileDestinatario : contiene i valori di PR dopo il passo di normalizzazione.

Partizionamento del grafo I file Grafo.succ e partizionato in Nblocchi file di misura prefissata; Funzione partizionaFileSuccessori() –Calcola: numSucc, numInfo, numNodi e numNodiPerOgniBlocco; –esegue partizione (pseudocode nella prossima slide);

Partizionamento del Grafo For each structInfo i = readInfo()/* fInfo.read() */ For each successor node of i s = readSuccess()/* fSucc.read() */ insert(s,buffer)/* buffer = fTempo*/ if block_is_full writeToDisk(); } writeToDisk() } writeToDisk(): scrive sul file relativo al blocco corrente l ID del nodo, il numero totale di successori del nodo e la lista dei successori.

Inizializzazione del PageRank Inizializza il file destinatario con il valore di pagerank; –bufferFloatPR [numNodiperOgniBlocco] –For i from 1 to numNodiPerOgniBlocco bufferFloatPR[i] = –scrive bufferFloatPR nel destFile numOfBlocchi volte;

Ciclo Principale while (stop==false){ for each blocco b from 1 to Nblocchi{ pr = 0; //azzera il buffer for each node i del blocco b prende pr(i); identifica tutti i successori di I; for each succ j from 1 to numsucc pr(j) += pr(i)/numsucc; for each succ j from 1 to numsucc pr(j)= c*pr(j)+ (1-c)*(1/N); } scrive su fileDestPR; }

Terminazione stop: lalgoritmo si ferma quando il numero di iterazioni e > che maxIter o il residuo e < residual

Passo di Normalizzazione Si prende la somma di tutti i valori di PR alla fine del ciclo principale: sommaPR Si dividono tutti I valori di PR memorizzati allinterno del fileTemporaneo per sommaPR. Il risultato viene memorizzato in fileDestinatario

Calcolo del residuo Il residuo e la radice quadrata della sommatoria dei quadrati delle differenze dei valori di PR calcolati in due iterazioni successive. – residual = 0; – residual += (fileSorgente-fileDestinatario) 2 – residual= sqrt(residual)

Text2IPS.script INPUT: il nome del file contenente il grafo (ASCII) OUTPUT: i file testo in multifile format –NameMultifile.%d.info –NameMultifile.%d.pred –NameMultifile.%d.succ

Text2IPS.script Uso: text2ips.script –savesource –ram: memoria disponibile in MB –-savesource: non cancella il file originale –%d: DA SPECIFICARE ogni volta che vogliamo un multifile.

Text2IPS.script Creare una directory graphs/graph-name/ nella directory che contiene dis_library ; Mettere alinterno della cartella appena creata larchivio graph-testo-name Posizionarsi in dis_library Creare il grafo IPS: bin/text2ips.script 300 – savesource graphs/graph-name/ graph-testo- name graph-ips-name.%d

Uso di Page Rank INPUT: il grafo in formato IPS OUTPUT: ranking delle pagine secondo lalgoritmo pagerank Uso: pagerank columns > printFile

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

Uso Page Rank –outputFile%d: nome del multifile di output in cui vengono memorizzati i risultati del calcolo 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; –printFile: contiene l'output generato durante l'esecuzione della routine, ad es. Risultati parziali delle singole iterazioni

Eseguire Page Rank bin/pagerank 300 graphs/graph-name/ graph- ips-name.%d outputFile.%d NIOP > print-file.txt File generati: –outputFile.pr_distrib.txt: distribuizione dei risultati di pagerank –outputFile.report.txt: risultati di pagerank

Visualizzazione dei risultati Per entrare nell' ambiente: gnuplot gnuplot> set logscale gnuplot> plot outputFile.pr_distrib.txt using 1:2 w p

Uso di HITS INPUT: grafo in formato IPS OUTPUT: ranking delle pagine secondo lalgorithmo hits Uso: bin/hits Nota: questa routine e` fornita solo in versione interattiva. I parametri devono essere forniti da std input. –InputFile: GraphName.%d –maxResidual: hits si ferma se il residuo e piu piccolo di maxResidual –maxIter: numero massimo di iterazioni

Eseguire Hits bin/hits Insert graph name: graphs/graph- name/graphIPSName.%d Insert maxResidual: Insert maxIteration: 50