crawling the web -...
TRANSCRIPT
1
MinerMineríía de la Web a de la Web –– CrawlingCrawling TheThe WebWeb
Crawling the WebPresentado porPresentado por
RocRocíío Lujo Lujáán Cecchinin Cecchini
2
MinerMineríía de la Web a de la Web –– CrawlingCrawling TheThe WebWeb
IntroducciIntroduccióónn
¿Qué es un crawler?
Infraestructura
Algunos algoritmos
Métricas de evaluación
3
MinerMineríía de la Web a de la Web –– CrawlingCrawling TheThe WebWeb
¿¿QuQuéé es un web es un web crawlercrawler??
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.
wwwwww......
wwwwww......
wwwwww......
wwwwww......
wwwwww......
wwwwww......
wwwwww......
4
MinerMineríía de la Web a de la Web –– CrawlingCrawling TheThe WebWeb
Algunas cuestionesAlgunas 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?
5
MinerMineríía de la Web a de la Web –– CrawlingCrawling TheThe WebWeb
Infraestructura de un Infraestructura de un crawlercrawler¿Cómo trabaja un crawler?
Inicializar con Inicializar con URLsURLs
seedsseedsChequear terminaciChequear terminacióónn
Elegir URL Elegir URL
de la fronterade la frontera
Traer pTraer pááginagina
ParsingParsing
Agregar Agregar URLsURLs a la listaa la lista
STARTSTART FINFIN
No listoNo listo
ListoListo
No URLNo URL
URLURL
RepositorioRepositorio
FronteraFrontera
6
MinerMineríía de la Web a de la Web –– CrawlingCrawling TheThe WebWeb
Infraestructura de un Infraestructura de un crawlercrawler
Inicializar con Inicializar con URLsURLs
seedsseedsChequear terminaciChequear terminacióónn
Elegir URL Elegir URL
de la fronterade la frontera
Traer pTraer pááginagina
ParsingParsing
Agregar Agregar URLsURLs a la listaa la lista
STARTSTART FINFIN
No listoNo listo
ListoListo
No URLNo URL
URLURL
¿Cómo trabaja un crawler?
RepositorioRepositorio
FronteraFrontera
7
MinerMineríía de la Web a de la Web –– CrawlingCrawling TheThe WebWeb
La fronteraLa frontera
FronteraFrontera
TamaTamañño mo mááximo?ximo?
Que podemos hacer una Que podemos hacer una vez alcanzado este vez alcanzado este llíímite?mite?
ImplementaciImplementacióón?n?
TrampasTrampas
8
MinerMineríía de la Web a de la Web –– CrawlingCrawling TheThe WebWeb
HistorialHistorial
Utilidad?Análisis post-crawlerMarcar ciertos sitios de interés.
Disco o memoria?Ambas, en memoria nos puede servir para hacer una búsqueda rápida de links visitados.
(url(url22,t,t22)) (url(url33,t,t33)) (url(url44,t,t44)) (url(url55,t,t55))(url(url11,t,t11))
9
MinerMineríía de la Web a de la Web –– CrawlingCrawling TheThe WebWeb
RepositorioRepositorio¿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
10
MinerMineríía de la Web a de la Web –– CrawlingCrawling TheThe WebWeb
FetchingFetching
Inicializar con Inicializar con URLsURLs
seedsseedsChequear terminaciChequear terminacióónn
Elegir URL Elegir URL
de la fronterade la frontera
Traer pTraer pááginagina
ParsingParsing
Agregar Agregar URLsURLs a la listaa la lista
STARTSTART FINFIN
No listoNo listo
ListoListo
No URLNo URL
URLURL
RepositorioRepositorio
FronteraFrontera
11
MinerMineríía de la Web a de la Web –– CrawlingCrawling TheThe WebWeb
FetchingFetching¿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 cuentaTimeoutsInformación que se traeAnálisis de la respuestaChequeo de errores
• Robot Exclusion Protocol
12
MinerMineríía de la Web a de la Web –– CrawlingCrawling TheThe WebWeb
ParsingParsing
Inicializar con Inicializar con URLsURLs
seedsseedsChequear terminaciChequear terminacióónn
Elegir URL Elegir URL
de la fronterade la frontera
Traer pTraer pááginagina
ParsingParsing
Agregar Agregar URLsURLs a la listaa la lista
STARTSTART FINFIN
No listoNo listo
ListoListo
No URLNo URL
URLURL
RepositorioRepositorio
FronteraFrontera
13
MinerMineríía de la Web a de la Web –– CrawlingCrawling TheThe WebWeb
ParsingParsingUna vez que tenemos la página ¿quéhacemos?
Extracción y forma canónica de URLsPara extracción ParsersCuestiones 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.
www.bla.blawww.bla.bla......
¿¿??
14
MinerMineríía de la Web a de la Web –– CrawlingCrawling TheThe WebWeb
CrawlersCrawlers multimulti--hiladoshilados¿¿CuCuáál es el problema del l es el problema del crawlercrawler monohiladomonohilado??
¿¿CCóómo sermo seríía un a un crawlercrawler multimulti--hilado?hilado?
No ListoNo Listo
Fin?Fin?
Elegir URLElegir URL
Traer pTraer pááginagina
ParsingParsing
Agregar URLAgregar URL
Fin?Fin?
Elegir URLElegir URL
Traer pTraer pááginagina
ParsingParsing
Agregar URLAgregar URL
ListoListo
No ListoNo Listo
ListoListo
getget getgetaddadd addadd
FrontierFrontier
LockLock
UnlockUnlock
Fin?Fin?
15
MinerMineríía de la Web a de la Web –– CrawlingCrawling TheThe WebWeb
AlgoritmosAlgoritmosPrimero 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:
||||||||),(
pq
pq
vvvv
pqsim⋅
⋅=
Donde q es la consulta, p es la página de la cual extraje los URLs, vq y vp 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.
16
MinerMineríía de la Web a de la Web –– CrawlingCrawling TheThe WebWeb
AlgoritmosAlgoritmosShark 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.
17
MinerMineríía de la Web a de la Web –– CrawlingCrawling TheThe WebWeb
AlgoritmosAlgoritmosShark seach – formulerío
Valores sugeridos: δ = 0.5, γ = 0, β = 0.8.
)()1()()( URLvecindadURLherenciaURLscore ⋅−+⋅= γγ
⎩⎨⎧
⋅⋅
)(),(
pherenciapqsim
δδ
casootroenpqsimsi 0),( >
})()1()( URLcontextoURLanchor ⋅−+⋅ ββ
)_,(1
aumcontextoqsim ⎭⎬⎫>
casootroenURLanchorsi 0)(
18
MinerMineríía de la Web a de la Web –– CrawlingCrawling TheThe WebWeb
AlgoritmosAlgoritmosCrawlers 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.
19
MinerMineríía de la Web a de la Web –– CrawlingCrawling TheThe WebWeb
AlgoritmosAlgoritmosCrawlers 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.
20
MinerMineríía de la Web a de la Web –– CrawlingCrawling TheThe WebWeb
MMéétricas de Evaluacitricas de Evaluacióónn¿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
21
MinerMineríía de la Web a de la Web –– CrawlingCrawling TheThe WebWeb
MMéétricas de evaluacitricas de evaluacióónnImportancia de las páginas
Palabras claves en el documento.Similaridad con la consulta.Similaridad con páginas semillas.ClasificadorRetrieval system rank.Popularidad basada en links.
22
MinerMineríía de la Web a de la Web –– CrawlingCrawling TheThe WebWeb
MMéétricas de evaluacitricas de evaluacióónnPerformance
Analogía con RIPrecisió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.
23
MinerMineríía de la Web a de la Web –– CrawlingCrawling TheThe WebWeb
Para aproximar “precisión”Tasa de adquisiciónPromedio de importancia
Para aproximar “recall”Target recall
MMéétricas de evaluacitricas de evaluacióónn
URLsURLs
relevantesrelevantes
URLsURLs targetstargets URLsURLs seedsseeds
||||_
t
ct
PPPrecallt ∩
=
24
MinerMineríía de la Web a de la Web –– CrawlingCrawling TheThe WebWeb
MMéétricas de evaluacitricas de evaluacióónn
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.
PPrr
PPtt
PPcc
ct PP ∩
cr PP ∩
25
MinerMineríía de la Web a de la Web –– CrawlingCrawling TheThe WebWeb
Ejemplo
MMéétricas de Evaluacitricas de Evaluacióónn
2525
2020
1515
1010
55
000 2000 4000 6000 8000 2000 4000 6000 8000 100000 10000
Ave
rage
A
vera
ge p
reci
sion
prec
isio
n
PagedPaged crawledcrawled
BreadthBreadth--FirstFirst
NaiveNaive BestBest--FisrtFisrt
2525
2020
1515
1010
55
000 2000 4000 6000 8000 2000 4000 6000 8000 100000 10000
Ave
rage
A
vera
ge ta
rget
targ
etre
call
reca
ll(%
)(%
)
PagedPaged crawledcrawled
BreadthBreadth--FirstFirst
NaiveNaive BestBest--FisrtFisrt