Descargar la presentación
La descarga está en progreso. Por favor, espere
Publicada porMonica Espejo Aguilera Modificado hace 7 años
1
FiVaTech: Extracción de datos Web a partir de plantillas de páginas Antonio R. Gómez Sotelo
2
Índice Introducción Algoritmo Experimentos Conclusiones
3
Índice Introducción Algoritmo Experimentos Conclusiones
4
Introducción Generación de Páginas Web: DatosPlantillaPáginas Web
5
Introducción Definición 1: Datos Estructurados 1.Tipo Básico β = Cadena de tokens. 2.Listas ordenadas T=. a.Tupla b.Opcional ( T )? c.Conjunto { T } d.Disyunción T1| T2|...| Tn
6
Introducción Ejemplo: { >, {“Feature1_1”}, >, {“Feature1_1”, “Feature2”}}
7
Introducción Características de FiVaTech - Entrada: Árboles DOM de páginas Web. - Objetivo: Deducir la plantilla y el esquema de datos del sitio Web. - Modo: Combinando múltiples árboles DOM - Automático - Problema: ¿Cómo fusionar múltiples árboles al mismo tiempo? - Solución: Tratar árboles como cadenas. Árbol patrón.
8
Índice Introducción Algoritmo Experimentos Conclusiones
9
Algoritmo
10
Suposiciones Iniciales: 1.Nodos internos Pertenecen a plantilla Datos en nodos hojas 2. Toda instancia de un conjunto mismo nodo padre
11
Algoritmo Pasos: 1.Tomar Raíz común 2.Reconocimientos nodos iguales 3.Expandir 3.1 Alineación de la matriz par 3.2 Extracción de Patrones 3.3 Fusionar nodos opcionales 4.Extraer plantilla y esquema Crear Árbol patrón
12
Algoritmo (Paso 1) 1. Tomar nodo raíz común: Trivial Tomar R = Árbol vacío Paso 1. R
13
Algoritmo (Paso 2) 2. Identificación nodos iguales: Comparar si dos nodos (con la misma raíz) son similares Distancia de edición Umbral d Asignar símbolo a cada subárbol (nodo).
14
Algoritmo (Paso 3) 3. Expandir: - Hacer los siguientes 3 pasos por cada nodo interno n. - De forma recursiva. 3.1 Alineación de la matriz par 3.2 Extracción de Patrones 3.3 Fusionar nodos opcionales
15
Algoritmo (Paso 3.1) 3.1 Alineación Matriz Par: - Crear matriz de nodos: M 1aaa 2bbb 3ccc 4ddb 5bec 6c d 7b e 8c 9d 10e
16
Algoritmo (Paso 3.1) 3.1 Alineación Matriz Par : row = 1 Mientras M no alineada Mientras filaNoAlineada (row, M) Obtener shiftColumn y shiftLength Desplazar (row, shiftColumn,shiftLength,M) row ++ childList = alignmentResult
17
Algoritmo (Paso 3.1) 3.1 Alineación Matriz Par : - Conceptos: - Matriz Alineada - Fila alineada - shiftColumn nodo n rc - shiftLength
18
Algoritmo (Paso 3.1) 3.1 Alineación Matriz Par : - Selección de shiftColumn y shiftLength: - span (n rc ) = ciclo de máxima longitud (sin rep.) + 1 1, si (r-rup) > span (n rc ) - checkSpan (n rc ) = 0, si (r-rup) = span (n rc ) -1, si (r-rup) < span (n rc ) 1, en otro caso M[r][c] = M[up][c’] ?
19
Algoritmo (Paso 3.1) 3.1 Alineación Matriz Par : span(b)= span(c)= span(d)= 3 span(a)= span(e)= 0 nodos libres checkSpan(n 41 ) = checkSpan(n 42 )=1 checkSpan (n 43 ) = -1 r-rup = 4 – 2 = 2 < 3 (span b) M 1aaa 2bbb 3ccc 4ddb 5bec 6c d 7b e 8c 9d 10e p abcdbcbbcdeedc d p abc cba p e
20
Algoritmo (Paso 3.1) 3.1 Alineación Matriz Par : - Selección de shiftColumn y shiftLength: - Una vez tenemos span y checkSpan de los nodos, - Aplicar Reglas (en orden): R1 - izq. checkSpan = -1 shiftLength = 1 R2 - checkSpan = 1 y M[r][c]=M[r down ][c’] shiftLength = r down - r R3 – R1 y R2 fallan Dividir fila en 2 partes
21
Algoritmo (Paso 3.1) 3.1 Alineación Matriz Par : Ej. Filas 1, 2, 3 Alineadas Fila 4: span(d) = 3 span(b) = 3 checkSpan(n 41 ) = 1 checkSpan(n 42 )=1 checkSpan (n 43 ) = -1 r-rup = =4 – 2 = 2 < 3 Aplicar R1 sobre n 43 M 1aaa 2bbb 3ccc 4ddb 5bec 6c d 7b e 8c 9d 10e M 1aaa 2bbb 3ccc 4dd- 5beb 6c c 7b d 8c e 9d e
22
Algoritmo (Paso 3.1) 3.1 Alineación Matriz Par : Ej. ChildList M 1aaa 2bbb 3ccc 4ddb 5bec 6c d 7b e 8c 9d 10e M 1aaa 2bbb 3ccc 4dd- 5beb 6c c 7b d 8c e 9d e … M 1aaa 2bbb 3ccc 4dd- 5b-b 6c-c 7--d 8b-- 9c-- d-- 11eee a b c d b c d b c d e
23
Algoritmo (Paso 3.2) 3.2 Extracción Patrones Repetitivos : - Descubrir patrones repetitivos datos Tipo conjunto - Patrones anidados dentro de otros. - Desde longitud pequeña a longitud grande. - Ej. abcdbcdbcde abcde + nodo padre virtual tipo conjunto bcd
24
Algoritmo (Paso 3.3) 3.3 Agrupar nodos opcionales : - Vector ocurrencia (b1,b2,…, bn) - Regla: 1. nodos adyacentes mismo vect. ocurrencia o comp. V(a)=(1,1,1) V(b) =(1,1,1,1,1,1) V(d) = (1,0,1,1,0,1)
25
Algoritmo (Ejemplo) - b4 y 2º asterisco mismo vector de ocurrecia nodo virtual común
26
Algoritmo (Paso 4) 4. Detección Esquema de Datos : - Pasos anteriores: Detección datos tipo básico, conjuntos y opcionales. - Paso actual: Centrarnos en detección de tuplas y obtener el esquema común. - Ignorar datos no variantes. - Cada nodo interno no virtual Considerar para Tupla
27
Algoritmo (Paso 4) 4. Detección Esquema de Datos : }>, }>
28
Índice Introducción Algoritmo Experimentos Conclusiones
29
Experimentos 1.FiVaTech como extractor de esquema 2.FiVaTech como extractor de SRRs Nota: Siempre 2 ó 3 páginas web como entrada
30
Experimentos 1.FiVaTech como extractor de esquema
31
Experimentos 1.FiVaTech como extractor de SRRs
32
Índice Introducción Algoritmo Experimentos Conclusiones
33
Combinar múltiples árboles DOM. No supervisado. Nuevo algoritmo alineación cadenas (datos opcionales y datos tipo conjunto). Fácil extracción del esquema y la plantilla de un sitio Web. Eficiencia 2 o 3 páginas Web como entrada
34
¡Gracias! ¿Preguntas?
Presentaciones similares
© 2024 SlidePlayer.es Inc.
All rights reserved.