La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Crawling the Hidden Web

Presentazioni simili


Presentazione sul tema: "Crawling the Hidden Web"— Transcript della presentazione:

1 Crawling the Hidden Web
Sistemi Informativi LS 7 Marzo 2005 Università di Bologna Crawling the Hidden Web Da: Crawling the Hidden Web Sriram Raghavan Hector Garcia-Molina Computer Science Departement Stanford University Claudio Fusconi Michele Orselli (relatore) Alberto Renzi

2 Agenda Publicly Indexable Web e Hidden Web Hidden Web Crawlers
Modello Generico di un Crawler per Hidden Web HiWE: Hidden Web Exposer LITE: Layout-based Information Extraction Prove sperimentali Conclusioni

3 Introduzione I crawler sono programmi che navigano il web, creando poi repository locali della porzione di web esplorata; percorrono quello che viene chiamato Publicly Indexable Web ossia tutte le pagine raggiungibili tramite link. Con Hidden Web ci si riferisce a tutte quelle informazioni non raggiungibili direttamente ma solo tramite form Parte più estesa del web 500 x PIW [BrightPlanet 2000] InvisibleWeb.com elenca oltre database Come posso realizzare un crawler che riesca a raggiungere anche l’Hidden Web?

4 Sfide e approcci Sfide e approcci
Differenze rispetto ad un crawler PIW: Capacità di processare, analizzare e interagire con i form Raccolta e gestione dei dati di input per le query Approccio basato su: Task-specificity: consiste nel selezionare una porzione dell’hidden web ed estrarne i contenuti basandosi sui requisiti di una particolare applicazione Human-assistance: configuriamo il Crawler e gli forniamo valori ad hoc per la generazione delle query

5 Un Modello Generico Hidden Web Crawler Form page Form Representation
Download form Task specific database Match Hidden Database Set of value assignments Form submission Web search front-end repeat Response Analysis Download response Response page Repository

6 Form Representation Form Representation: F=({E1,E2,…En},S,M)
ogni volta che il crawler incontra una form deve estrarne i contenuti e costruirne una propria rappresentazione interna F: F=({E1,E2,…En},S,M) Form Representation Task specific database Set of value assignments Response Analysis Match Repository E1,E2,…En = elementi contenuti nella form S = informazioni di submission M = meta-informazioni sulla pagina Titolo: Genere: Storico Avventura Commedia Supporto DVD VHS Submit Reset

7 Task Specific DB Task specific database: Stone Scott Matrix Alexander
Form Representation Task specific database Set of value assignments Response Analysis Match Repository Task specific database: contiene tutte le informazioni necessarie alla formulazione di query di ricerca per quel particolare task. La struttura del database così come la forma dei dati che contiene dipende dalla specifica implementazione. Come vedremo successivamente, HiWE utilizza un labeled fuzzy set. Stone Scott Matrix Alexander Polanski Aliens Blade Runner

8 Matching Function Matching function:
Form Representation Task specific database Set of value assignments Response Analysis Match Repository Matching function: prende in ingresso la rappresentazione interna del form e il contenuto del DB e produce in output una serie di possibili valori di assegnamento: Match(({E1,E2,…En},S,M),D) = {[E1v1,,…Envn]} I valori così ottenuti vengono utilizzati per riempire il form. Il procedimento si ripete ciclicamente fino al verificarsi di una condizione di terminazione Titolo: Genere: Storico Avventura Commedia Alexander Stone Supporto DVD Scott VHS Polanski Aliens Submit Reset

9 Response Analysis Response Analysis:
Form Representation Task specific database Set of value assignments Response Analysis Match Repository Response Analysis: la risposta a un invio di una form viene ricevuta e memorizzata nel repository Vengono distinte le pagine che contengono risultati della ricerca e pagine che contengono messaggi di errore. Il feedback può essere utilizzato per fare tuning della funzione di matching

10 Valutazione delle Performance
Come misuro le performance dei Hidden Web Crawler? Uso gli stessi indicatori dei crawler per il PIW (velocità, scalabilità, importanza delle pagine…)? No, si preferisce usare la submission efficiency Ntotal = numero di richieste inviate (submit) Nsuccess = numero di richieste inviate la cui pagina di risposta contiene uno o più risultati positivi Conservativo SEstrict = Nsucces / Ntotal Nvalid = numero di form semanticamente corrette Costoso SElenient = Nvalid / Ntotal

11 HiWE: Hidden Web Exposer
L’Università di Stanford ha costruito un prototipo chiamato HiWE (Hidden Web Exposer) Caratteristiche: Utilizza una Label Value Set (LVS) table come DB interno Label matching realizzato tramite un algoritmo “minimum edit distance” Tecnica layout-based per l’estrazione dell’informazioni dalle form (LITE) Value-Setn Labeln ... Value-Set2 Label2 Value-Set1 Label1 URL List LVS Table URL N URL 2 URL 1 Response Analyzer Form Processor Form Analyzer Crawl Manager Parser WWW Custom data sources Form submission Response Feedback LVS Manager

12 HiWE - Rappresentazione del Form
Dato un form F=({E1,E2,…En},S,Ø) vengono raccolte due informazioni per ogni suo elemento: Label(Ei): descrizione testuale Dom(Ei): insieme di valori che possono essere assegnati ad Ei Possiamo distinguere due tipi di domini: Elementi con dominio finito (checkbox, radiobutton, menu a tendina) Elementi con dominio infinito (textbox, textarea) Elemento E1 Label(E1) = “Titolo” Dom(E1) = { s | s stringa di testo} Titolo: Genere: Giallo Avventura Commedia Supporto DVD VHS Submit Reset Elemento E2 Label(E2) = “Genere” Dom(E2) = { “Giallo”, “Avventura”, “Commedia” } Elemento E3 Label(E3) = “Supporto” Dom(E3) = { “DVD” , “VHS” }

13 Hiwe – Task-specific DB
Informazioni task specific organizzate in categorie, ognuna identificata da una label  tabella LVS (Label Value Set) Per ogni riga (L,V) L  label V = {v1, … , vn}  fuzzy set Funzione di appartenenza Mv assegna ad ogni elemento di V un peso nel range [0,1] Titolo: Genere: Giallo Avventura Commedia Supporto DVD VHS Submit Reset Fuzzy value set Label Value Set (LVS) Table Label Titolo { Blade Runner (1.0) , … , }

14 Hiwe – Matching function (1)
Per ogni elemento Ei si calcola un fuzzy set Vi (possibili assegnamenti ad Ei) In caso di elementi con dominio infinito verifica la corrispondenza tra una label presente nel db e una ricavata dal form Due attività: Label Matching (soglia σ) Ranking Fuzzy value set Label Value Set (LVS) Table Label titolo Titolo: Genere: Giallo Avventura Commedia Supporto DVD VHS Submit Reset { Aliens (0.95),…, Matrix(0.8) } V1 = { Aliens (0.95),…, Matrix(0.8) } V2 = {Giallo (1), Commedia (1), Azione (1)} V3 = {DVD (1), VHS(1) } Match (F) = {[E1  v1, …, En  vn]: vi  Vi }

15 Hiwe – Matching function (2)
Ranking value assignments Calcolo di uno score che quantifica la “bontà” di un assegnamento di valori alle variabili del form utilizzando i pesi dei valori. Ciò permette, utilizzando un  min di migliorare l’efficenza di invio, non inviando delle combinazioni di valori il cui rank è al di sotto di questa soglia. Funzioni di aggregazione: Rank ([E1  v1, …, En  vn]) = Min{M(vi)} (Fuzzy conjunction) 1/n x  M(vi) (Average) 1 -  (1 - M(vi)) (Probabilistic) Esempio (fuzzy conjunction) con min = 0.9 : ([E1  Aliens (0.95), E2  Azione (1), E3  DVD (1)]) = 0.95 ([E1  Matrix (0.8), E2  Azione (1), E3  DVD (1)]) = 0.8

16 HiWE – LVS table Explicit Initialization Built-in entries
HiWE supporta vari meccanismi per inserire oggetti nella tabella LVS: Explicit Initialization Si possono inserire label e relativi set di valori durante l’ inizializzazione del crawler. Questa tecnica è adatta per inserire elementi che è molto probabile incontrare in una particolare ricerca Built-in entries Inserisco categorie comuni e spesso usate (date, giorni della settimana, ecc) Wrapped data sources Il LVS Manager può comunicare e ricevere nuovi elementi per la tabella LVS attraverso interrogazioni di sorgenti dati esterne. Supporto a due operazioni: Inserimento nuove categorie Ampliamento categorie esistenti Crawling experience Se abbiamo nella LVS una label con un dominio chiuso, possiamo usare questi ultimi come set di valori per una label simile ma con infiniti valori

17 LVS table – Wrapped data sources
Servizi di catalogazione online come le Yahoo directory e le Open Directory Project, hanno una struttura che permette di usarle per popolare in modo efficiente la tabella LVS. LVS …. Regioni Marche , Umbria, Molise Abruzzo Molise Lazio ,…,Lazio …. Yahoo Directory 1-Marche Wrapper LVS Manager 2-Umbria 3-Molise Categorie R1)…, Regioni d’Italia {Abruzzo,…,Lazio} ,… R1∩R2∩R3 R2)…, Regioni d’Italia {Abruzzo,…,Lazio} ,… R3)…, Regioni d’Italia {Abruzzo,…,Lazio} ,…

18 LVS Table - Crawler Input
Label Fuzzy value set Genere Giallo (1) , Avventura (1) , Commedia (1) Label Value Set (LVS) Table Titolo: Genere: Giallo Avventura Commedia Supporto DVD VHS Submit Reset Titolo: Genere: Animation Incorporate + LVS table Use + Form 2 Regista: Submit Reset

19 HiWE – Computing weights
Quando inseriamo un elemento nella LVS dobbiamo anche assegnarli un peso. A seconda della tecnica che ho usato per inserire l’elemento avrò casi diversi: Built-in / Explicit Initialization Il peso dell’oggetto è definito a priori (solitamente 1) e non varia Wrapped data sources Il peso inizialmente è calcolato dal Wrapper e viene incrementato/decrementato in caso di successo/insuccesso Crawling Experience Tre casi: Estrazione di label(E) e calcolo LabelMatch(E)  inserimento nuovi valori e aggiornamento valori esistenti Estrazione di label(E) e nessun match  nuova entry in LVS Fallimento nell’estrazione di una label  calcolo insieme più “vicino” e aggiornamento valori

20 LITE (Layout-based Information Extraction)
HiWE – LITE LITE (Layout-based Information Extraction) Estrae il testo basandosi sul layout della form Strategia: pruning dell’albero DOM per isolare il form Problemi: il layout della pagina non si riflette nel codice Tag con semantica poco usati (caption, label) text1 text2 text3 text4 E1 E2 Pagina con form Pruning Form Layout Animation Prune + form Layout + enlarged form “Identify candidate…” + E1, E2 & candidates “Rank…” + labels Candidati Ranking Label(E1) = text1 Label(E2) = text4 E1  {text1, tex2} E2  {text3, text4}

21 HiWE - Parametri di configurazione
1 Siti da navigare 2 Inizializzazione tabella LVS 3 Inizializzazione data source (wrapped) 4 Soglia per label matching (σ) 5 Soglia di ranking (ρmin) 6 Minima dimensione form (α) 7 Funzione di aggregazione Value-Setn Labeln ... Value-Set2 Label2 Value-Set1 Label1 URL List LVS Table URL N URL 2 URL 1 Response Analyzer Form Processor Form Analyzer Crawl Manager Parser WWW Custom data sources Form submission Response Feedback LVS Manager

22 HiWE – Esperimenti Prove sperimentali su tre differenti task:
Articoli, reports e white papers relativi alle industrie di semiconduttori (relativi agli ultimi 10 anni) Recensioni articoli e informazioni storiche su films diretti da registri vincitori di Oscar (negli ultimi 30 anni) Report tecnici su DB di 30 dipartimenti di informatica (degli ultimi 5 anni)

23 HiWE – Effetti della funzione di Ranking
fuz migliore efficienza avg riporta più risultati, ma è meno efficiente (utile se l’obiettivo è recuperare più dati possibili) prob scarsi risultati

24 HiWE - Effetto di α

25 HiWE – Effetti su LVS del crawler

26 Conclusioni Crawler PIW vs Hidden web crawler
Modello generico per un crawler per Hidden web HiWE come Hidden web crawler Limiti: Non considera riempimenti parziali delle form Non tiene conto delle dipendenze tra campi delle form

27 Search Engines for the Invisible Web
AlltheWeb Bright Planet Direct Search Google Scholar IxQuick Search-22 Search Adobe PDF Online Turbo10 Vivisimo

28 Bibliografia “Crawling the Hidden Web” Sriram Raghavan Hector Garcia-Molina Computer Science Departement Stanford University, Available at dbpubs.stanford.edu/pub/ S. Raghavan and H. Garcia-Molina. “Crawling the hidden web” Technical Report , Computer Science Dept., Stanford University, Dec Available at J. Cho and H. Garcia-Molina. “The evolution of the web and implications for an incremental crawler” In Proc. of the 26th Intl. Conf. on Very Large Databases, 2000. J. Cho, H. Garcia-Molina, and L. Page. “Efficient crawling through url ordering” In Proc. of the 7th Intl. WWW Conf., 1998.

29 Questions ?


Scaricare ppt "Crawling the Hidden Web"

Presentazioni simili


Annunci Google