Crawling the Web Presentado por Rocío o Luján n Cecchini 1
Introducción Qué es un crawler? Infraestructura Algunos algoritmos Métricas de evaluación 2
Qué es un web crawler? www... www... www... www... www... www... www... Básicamente es un algoritmo que aprovecha la estructura de la red para moverse de página a página. Motivación abastecer un repositorio local. 3
Algunas cuestiones Tendría sentido si la web fuera una entidad de carácter estático? Tipos de crawlers Exhaustivos. Preferenciales. Diseño de crawlers Cómo lograr la selectividad? Cómo llevar a cabo el crawling? Hay distintas características que pueden conducir a distintos diseños e implementaciones. Ej.: criterios de entrada utilizados, características deseadas en las páginas. Si encontramos un óptimo puede haber otro mejor? 4
Infraestructura de un crawler Cómo trabaja un crawler? START Inicializar con URLs seeds Chequear terminación Listo FIN No listo Frontera Elegir URL de la frontera URL No URL Traer páginap Repositorio Parsing Agregar URLs a la lista 5
Infraestructura de un crawler Cómo trabaja un crawler? START Inicializar con URLs seeds Chequear terminación Listo FIN No listo Frontera Elegir URL de la frontera URL No URL Traer páginap Repositorio Parsing Agregar URLs a la lista 6
La frontera Tamaño o máximo? m Frontera Que podemos hacer una vez alcanzado este límite? Implementación? n? Trampas 7
Historial (url 1,t 1 ) (url 2,t 2 ) (url 3,t 3 ) (url 4,t 4 ) (url 5,t 5 ) Utilidad? Análisis post-crawler Marcar ciertos sitios de interés. Disco o memoria? Ambas, en memoria nos puede servir para hacer una búsqueda rápida de links visitados. 8
Repositorio Cómo se puede implementar el repositorio? La forma más simple es guardar cada página como un archivo separado, esto implica que cada página sea mapeada a un único nombre de archivo. Cómo se puede lograr esto? Hash. Ejemplo: MD5 traduce cada URL en un código de 128 bits, el cual se transforma en un string de 32 caracteres hexadecimales. //www.uiowa.edu/ se traduce en 160766577426e1d01fcb7735091ec584 9
Fetching START Inicializar con URLs seeds Chequear terminación Listo FIN No listo Elegir URL No URL de la frontera Frontera URL Traer páginap Repositorio Parsing Agregar URLs a la lista 10
Fetching Cómo se obtiene la página? Por medio de una comunicación de un Cliente HTTP con un Servidor HTTP Cosas a tener en cuenta Timeouts Información que se trae Análisis de la respuesta Chequeo de errores Robot Exclusion Protocol 11
Parsing START Inicializar con URLs seeds Chequear terminación Listo FIN No listo Elegir URL No URL de la frontera Frontera URL Traer páginap Repositorio Parsing Agregar URLs a la lista 12
Parsing Una vez que tenemos la página qué hacemos?? www.bla.bla..... Extracción y forma canónica de URLs Para extracción Parsers Cuestiones una vez que obtenemos un URL: URLs relativos Diferentes URLs que conducen a la misma página forma canónica ( pasos?). Stoplisting y steeming. Tag tree HTML Tidyng. 13
Crawlers multi-hilados Cuál l es el problema del crawler monohilado? Cómo sería a un crawler multi-hilado? Frontier add get add get Fin? Fin? Listo Fin? Listo No Listo No Listo Elegir URL Elegir URL Lock Traer páginap Traer páginap Parsing Unlock Parsing Agregar URL Agregar URL 14
Algoritmos Primero el mejor Ingenuo Usa similaridad por coseno. Se calcula el valor de similaridad de la página de la cual extrae los URLs con la consulta: sim( q, p) = v v q q v p v p Donde q es la consulta, p es la página de la cual extraje los URLs, v q y v p son las representaciones vectoriales de las frecuencias de los términos, para la consulta y la página respectivamente. sim(q,p) es puntaje que se le da a los nuevos URLs. 15
Algoritmos Shark search Usa un medida de similaridad que tiene en cuenta el anchor text, el texto que rodea al link y es influenciada por el puntaje de los ancestros de la página de la cual sacamos los nuevos URLs. Tiene un límite de profundidad a recorrer sin encontrar info importante. Requiere de la especificación de varios parámetros: d: la profundidad a recorrer. γ y δ: factores de peso para el puntaje heredado. β: factor de peso para el anchor text. 16
Algoritmos Shark seach formulerío score( URL) = γ herencia ( URL) + (1 γ ) vecindad ( URL) δ sim( q, p) δ herencia ( p) si sim( q, p) > 0 en otro caso β anchor ( URL ) + (1 β ) contexto ( URL )} 1 sim( q, contexto _ aum) si anchor( URL) > 0 en otro caso Valores sugeridos: δ = 0.5, γ = 0, β = 0.8. 17
Algoritmos Crawlers enfocados FER La idea básica de estos crawlers es clasificar las páginas en una taxonomía de temas. El usuario puede ir agregando nuevas categorías e ir marcando algunas como buenas. Además se deben dar unos URLs ejemplo que el crawler usa para construir un clasificador capaz de encontrar la probabilidad de que una pagina pertenezca a cierta categoría. Se calcula un puntaje de relevancia de a cuerdo a que tan buena es la categoría en la cual cae la página. 18
Algoritmos Crawlers enfocados en el contexto Es un poco más elaborado que el anterior, usa también clasificadores, pero no descarta inmediatamente las páginas que no le parecen importantes. Espera unos links más, con la esperanza de que haya algo importante unos pasos más allá en la red. 19
Métricas de Evaluación Cómo hacemos para determinar que crawler es mejor? En base a su habilidad de devolver buenas páginas. Cómo hacemos para saber que una página es buena? Métricas de evaluación: Se enfocan en dos dimensiones: Importancia de las páginas. Performance 20
Métricas de evaluación Importancia de las páginas Palabras claves en el documento. Similaridad con la consulta. Similaridad con páginas semillas. Clasificador Retrieval system rank. Popularidad basada en links. 21
Métricas de evaluación Performance Analogía con RI Precisión fracción de páginas recuperadas (crawleadas) que son relevantes Recall (cobertura) fracción de páginas relevantes que son recuperadas (crawleadas) Qué problema se nos presenta? NO conocemos la totalidad de las páginas relevantes presentes en toda la web. 22
Métricas de evaluación Para aproximar precisión Tasa de adquisición Promedio de importancia Para aproximar recall Target recall URLs relevantes t _ recall = Pt P t P c URLs targets URLs seeds 23
Métricas de evaluación Pt P c P c P t Pr P c P r Robustez: Se separa el conjunto de seeds anterior en dos, y se da c/u como seeds de entrada para dos instancias del mismo crawler. Luego se mide la superposición de las páginas resultantes en las dos instancias. Mayor superposición implica mayor robustez. 24
Métricas de Evaluación Ejemplo Average target recall (%) 25 20 15 10 5 0 Breadth-First Naive Best-Fisrt 0 2000 4000 6000 8000 0 10000 Paged crawled Average precision 25 20 15 10 5 Breadth-First Naive Best-Fisrt 0 0 2000 4000 6000 8000 0 10000 Paged crawled 25