FiVaTech Ahmed Riveras Capote. 2008/09
FiVaTech Introducción Algoritmo I.Esquema General. II.Alineación de Matriz Par III.Extracción de Patrones Repetitivos. IV.Agrupar Nodos Opcionales Conclusiones
FiVaTech Introducción Algoritmo I.Esquema General. II.Alineación de Matriz Par III.Extracción de Patrones Repetitivos. IV.Agrupar Nodos Opcionales Conclusiones
Introducción FiVaTech Generación de Páginas Web: Datos Plantilla Páginas Web β <T><T> (T)? {T}{T}
Introducción FiVaTech
Paginas Web de Entrada Arboles DOM Detección del Schema Schema & Plantilla Datos 1.Etiquetado. 2.Alineación Matriz Par. 3.Extracción de Patrones Repetitivos. 4.Agrupar Nodos Opcionales
FiVaTech Introducción Algoritmo I.Esquema General. II.Alineación de Matriz Par III.Extracción de Patrones Repetitivos. IV.Agrupar Nodos Opcionales Conclusiones
I. Esquema General FiVaTech. HTML BODY lih b ib HTML BODY hlib ib HTML BODY hlib bi D.E=4 RR R Umbral D=5 (1)(2)(3) h ib b tdtr table h tdtr table li bi b database Carlos José
I. Esquema General FiVaTech. HTML BODY lih b ib HTML BODY hlib ib HTML hlib bi D.E=4 Umbral D=5 (1)(2)(3) h ib b tdtr table h tdtr table li bi b BODY
I. Esquema General FiVaTech. HTML BODY lih b ib HTML BODY hlib ib HTML hlib bi Umbral D=5 (1)(2)(3) h ib b tdtr table h tdtr table li bi b BODY b b
I. Esquema General FiVaTech. HTML BODY lih b ib HTML BODY hlib ib HTML hlib bi Umbral D=5 (1)(2)(3) h ib b tdtr table h tdtr table li bi b BODY c c
I. Esquema General FiVaTech. HTML BODY lih b ib HTML BODY hlib ib HTML hlib bi Umbral D=5 (1)(2)(3) h ib b tdtr table h tdtr table li bi b BODY d d
I. Esquema General FiVaTech. HTML BODY lih b ib HTML BODY hlib ib HTML hlib bi Umbral D=5 (1)(2)(3) h ib b tdtr table h tdtr table li bi b BODY e
I. Esquema General FiVaTech. HTML BODY lih b ib HTML BODY hlib ib HTML hlib bi Umbral D=5 (1)(2)(3) h ib b tdtr table h tdtr table li bi b BODY f
I. Esquema General FiVaTech. HTML BODY lih b ib HTML BODY hlib ib HTML hlib bi Umbral D=5 (1)(2)(3) h ib b tdtr table h tdtr table li bi b BODY g
I. Esquema General FiVaTech. HTML BODY lih b ib HTML BODY hlib ib HTML hlib bi Umbral D=5 (1)(2)(3) h ib b tdtr table h tdtr table li bi b BODY h
I. Esquema General FiVaTech. R a cbcd fd R a bcd fd R bcd df (1)(2)(3) b fd d hg e b hg e c df d a Árboles con Etiquetas
FiVaTech Introducción Algoritmo I.Esquema General. II.Alineación de Matriz Par III.Extracción de Patrones Repetitivos. IV.Agrupar Nodos Opcionales Conclusiones
II. Alineación de Matriz Par Conceptos: - Matriz Alineada - Fila alineada - shiftColumn nodo nrc - shiftLength
II. Alineación de Matriz Par Crear matriz de nodos: M 1bbb 2ccc 3bbc 4cdd 5de 6e Nodos de cada Árbol 3 12 c a b cbcbb a bdcc a edde
II. Alineación de Matriz Par Selección de shiftColumn y shiftLength: - span (nrc) = ciclo de máxima longitud (sin rep.) + 1 1, si (r-rup) > span (nrc) - checkSpan (nrc) = 0, si (r-rup) = span (nrc) -1, si (r-rup) < span (nrc) 1, en otro caso M[r][c] = M[up][c’] ?
II. Alineación de 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[rdown][c’] shiftLength = rdown – r R3 – R1 y R2 fallan Dividir fila en 2 partes
II. Alineación de Matriz Par Span (b) = (1) + (1) =2 Span (c) = (1) + (1) =2 Span (d) = 0 Span (e) = 0 CheckSpan (N33)= Si [(3)-(2)<2(Span(c))] Entonces CheckSpan (N33)=-1 Si CheckSpan (N33)=-1Shiftlength=1 M 1bbb 2ccc 3bbc 4cdd 5de- 6e-- M 1bbb 2ccc 3bb- 4cdc 5ded 6e--
II. Alineación de Matriz Par Span (b) = (1) + (1) =2 Span (c) = (1) + (1) =2 Span (d) = 0 Span (e) = 0 CheckSpan (N41)= Si [(4)-(2)=2(Span(c))] Entonces CheckSpan (N41)=0 M 1bbb 2ccc 3bb- 4c-c 5ddd 6ee- M 1bbb 2ccc 3bb- 4cdc 5ded 6e-- Si CheckSpan (N42)=1 Shiftlength= 5-4 =1 Shiftlength=Rdown-Ractual Vector Característico 1b 2c 3b 4c 5d 6e
II. Alineación de Matriz Par Ejemplo CASO 1. CheckSpan=-1 M 1aaa 2bbb 3ccc 4ddb 5bb- Span (a) = 0 Span (b) = (2) + (1) =3 Span (c) = 0 Span (d) = 0 CheckSpan (N41)= 1 CheckSpan (N42)= 1 CheckSpan (N43)= Si [(4)-(2)<3(Span(b))] Entonces CheckSpan (N43)=-1 Si no existe el mismo símbolo en una fila superior entonces su valor de CheckSpan = 1 Si CheckSpan (N43)=-1Shiftlength=1 M 1aaa 2bbb 3ccc 4dd- 5bb
II. Alineación de Matriz Par Ejemplo CASO 2. CheckSpan= 1 M 1aaa 2bbb 3cdd 4dcc Span (a) = 0 Span (b) = 0 Span (c) = 0 Span (d) =0 CheckSpan (N31)= 1 CheckSpan (N32)= 1 CheckSpan (N33)= 1 Si CheckSpan (N31)=1 M 1aaa 2bbb 3-dd 4ccc 5d-- Shiftlength= 4-3 =1 Shiftlength=Rdown-Ractual
II. Alineación de Matriz Par Ejemplo CASO 3. CheckSpan=0 M 1aaa 2bbb 3ccc 4ccb Span (a) = 0 Span (b) = (1) + (1) =2 Span (c) = (0) + (1) =1 CheckSpan (N41)= ((4-3)=1 Span(c))=0. CheckSpan (N42)= ((4-3)=1 Span(c))=0. CheckSpan (N43)= ((4-2)=2 Span(b))=0 Si CheckSpan =0 Se divide la fila de acuerdo a la magnitud del símbolo que más se repita M 1aaa 2bbb 3ccc 4cc- 5--b C=2 B=1 Se procede a bajar la columna de “b” una fila
FiVaTech Introducción Algoritmo I.Esquema General. II.Alineación de Matriz Par III.Extracción de Patrones Repetitivos. IV.Agrupar Nodos Opcionales Conclusiones
III. Extracción Patrones Repetitivos - Descubrir patrones repetitivos datos Tipo conjunto - Patrones anidados dentro de otros. - Desde longitud pequeña a longitud grande. tipo conjunto bc Vector Característico 1b 2c 3b 4c 5d 6e - bcbcde {bc}de
FiVaTech Introducción Algoritmo I.Esquema General. II.Alineación de Matriz Par III.Extracción de Patrones Repetitivos. IV.Agrupar Nodos Opcionales Conclusiones
IV. Agrupar nodos opcionales - Vector ocurrencia (b1,b2,…, bn) - Regla: 1. nodos adyacentes mismo vect. ocurrencia o comp. V(d)=(1,1,1) V(e) =(1,1,0) Exp.regular (a)={(b)?(c)?}d(e)? V(b) = (1,1,1,1,1,0) V(c) = (1,1,1,0,1,1) 3 12 c a b cbcbb a bdcc a edde
IV. Agrupar nodos opcionales Expresión regular de cada nodo a: {(b)?(c)?}d(e)? b: b c: fd d: d e: gh f: d g: g h: h {(b)?(dd)?}d(gh)? Expresión Regular de nuestra Plantilla
FiVaTech Introducción Algoritmo I.Esquema General. II.Alineación de Matriz Par III.Extracción de Patrones Repetitivos. IV.Agrupar Nodos Opcionales Conclusiones
Conclusiones Combinar múltiples árboles DOM. No supervisado. Nuevos algoritmos para el etiquetado de cada uno de los nodos pertenecientes a cada árbol DOM, y de Alineación de Matriz. Fácil extracción del esquema y la plantilla de un sitio Web. Eficiencia va a depender de una buena selección del Umbral en la Distancia de Edición
¡Muchas Gracias! ¿Preguntas?