La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Detecting DUPLICATE OBJECTS IN XML DOCUMENTS

Presentaciones similares


Presentación del tema: "Detecting DUPLICATE OBJECTS IN XML DOCUMENTS"— Transcripción de la presentación:

1 Detecting DUPLICATE OBJECTS IN XML DOCUMENTS
Mauricio Clausen – Nicolás García Grupo 14

2 Agenda Introducción Objetivo Duplicación Conceptos Filtros
Objetos duplicados Enfoque propuesto Experimentos Conclusiones y trabajo a futuro Crítica

3 Autores Melanie Weis Felix Naumann Expuesto en Paris, Francia - 2004
Areas de investigación Sistemas de Información XML Data Cleaning Calidad de Datos Expuesto en Paris, Francia

4 Introducción Motivación Popularidad de los docs XML
Representación de datos Integración/Intercambio de datos de distintas fuentes Heterogéneas Distribuidas Existen alternativas para BDs pero no para XML

5 Objetivo Presentar una solución al problema de detectar elementos repetidos en documentos XML Estructuras pueden ser distintas No hay información del dominio Eficiente

6 Duplicación Técnica: Datacleansing Aspectos a considerar:
Detectar y corregir los registros corruptos o inexactos de un conjunto, tabla o base de datos. Aspectos a considerar: Alcance de elementos Diversidad de Estructura <pais> <nombre>Estados Unidos</nombre> <ciudades>New York, Los Angeles</ciudades> <ciudad>Paris</ciudad> </pais> Estados Unidos de América <ciudad>New York</ciudad> <ciudad>Los Angeles</ciudad> <pais> Francia <ciudad>Paris</ciudad> </pais> Estados Unidos

7 Duplicación Tipos de errores de duplicación Tipográficos Equivalencia
Información faltante

8 Conceptos Definición de duplicados Estructura Datos
El nombre distingue la entidad Ancestros distinguen la entidad Similaridad de los descendientes Datos 2 formas de almacenar datos en XML: Valor de un atributo Texto en el nodo del elemento Formados por: Datos del nodo texto Valores de atributos Datos de los nodos texto de sus hijos

9 Conceptos Definición de duplicados
Dos elementos XML e y e´ son candidatos a duplicados si: Sus ancestros son iguales o similares e y e´ tienen el mismo nombre Los datos de e y e´ son similares Los hijos de e y e´ tienen datos y estructura similares

10 Conceptos Funciones de similaridad Motivaciones para la medida
Similitud entre multiconjuntos Influencia según el objeto Factor IDF (inverse document frequency): donde fs(o) es la frecuencia de un objeto IDF para un conjunto Medida de similaridad:

11 Conceptos Funciones de similaridad
Distancia de edición dedit(s,s´): menor cantidad de op. de inserción, borrado y reemplazo para transformar s en s´ s y s´ similares si dedit(s,s´)/máx{l(s),l(s´)} < tedit Se divide por el máx. ya que más errores deberían ser permitidos en cadenas más largas. Elementos Strings Tokens

12 Conceptos Funciones de similaridad E conjunto de elementos a comparar
TS(e) tokens que componen datos de CS(e) tokens que componen los datos de los hijos de e

13 Filtros Identificando datos similares
Para reducir cálculos, se aplican filtros al dedit elemento1 elemento2 datos hijos datos hijos stringDatos stringHijos dedit stringDatos stringHijos

14 Filtros Filtro de longitud de distancia
Agrupar strings por largo y descartar grupos completos de pares que no califican para ser similares. Sean dos strings s y s´ de long. l(s) y l(s´): Sean L y L´ grupos de strings de largo l y l´, si: ninguna s de L es duplicada de una s´ de L´ Recordar: 2 cadenas son duplicadas si dedit(s,s´) < tedit

15 Filtros Filtro usando desigualdad triangular
Sean x, y, z strings se puede demostrar: Rango min, max para dedit(x,z) x y z son similares x y z no son similares

16 Filtros Filtro distancia de bolsa Sea un string x en un alfabeto A
ms(x) el multiconjunto de símbolos en x Ej: ms(“casa”) = a, a, c, s Se define distancia de bolsa: Semántica de la operación diferencia: {a,a,a,b} – {a,a,b,c,c} = {a} Se puede demostrar: y usarse como un filtro para dedit

17 Objetos duplicados Detectando pares de objetos duplicados
tdup valor referencia duplicados isDup(e,e´) V si s(e,e´) > tdup F sino

18 Objetos duplicados Filtro de objetos E elemento XML
S(e) = TS(e) U CS(e) G conjunto de strings de todos los elementos Se compara f(e) con tdup, si es menor, e no tiene duplicados

19 Enfoque propuesto Comparación de elementos con mismo nombre Top-Down
Duplicados en elementos padres son detectados antes que en elementos hijos Detección de duplicados en 6 pasos

20 Enfoque propuesto Extracción de objetos Generación de grafo
Detección de tokens e hijos similares Filtrado de objetos Comparación objetos Agupación de duplicados

21 Enfoque propuesto Extracción de objetos
XML contiene elementos de diferentes nombres en varios niveles Es posible buscar duplicados en un dominio menor Se genera XML objeto utilizando XQuery Esquema predefinido, facilita siguiente paso Pierde información del esquema pero mantiene datos Potencialmente menor que el original

22 Enfoque propuesto XML Original XML Objeto

23 Enfoque propuesto Generación del Grafo
Internamente el XML se representa con un Grafo G(V,E) V conjunto de vértices: elementos, tokens e hijos E conjunto aristas: correspondencia de un elemento con sus tokens e hijos Construido a partir del XML Objeto utlizando el parser SAX (Simple API for XML) de Java

24 Enfoque propuesto Se crea un vértice por cada tag element
Por cada token entre element y children un nuevo vértice, unido por una nueva arista al vértice del tag element Un vértice por cada elemento de los hijos, y una nueva arista que lo una al vértice del element

25 Enfoque propuesto Detección de tokens e hijos similares
Determina similitud entre objetos comparando sus tokens y datos de sus hijos (dedit) Se aplican los filtros para disminuir las comparaciones de distancia de edición Longitud de distancia Desigualdad triangular Distancia de bolsa Filtros con alta selectividad

26 Enfoque propuesto Si dos tokens duplicados pertenecen a distintos elementos, se agregan 2 aristas, de cada elemento al token duplicado en el otro elemento

27 Enfoque propuesto Filtrado de objetos
Se aplica la función de filtro a cada vértice correspondiente a un element Unión y diferencia en forma eficiente, considerando el grado de los vecinos Cuando se filtra un vértice Elimina el vértice y sus aristas del grafo Aplica nuevamente el filtro a cada vértice que pertenecía a la intersección del eliminado

28 Enfoque propuesto Detección de duplicados
Se aplica la función de similitud (s) Únicamente es necesario comparar vértices adyacentes Una nueva arista por cada par de vértices duplicados

29 Enfoque propuesto Se calcula la clausura transitiva del Grafo
Como resultado se obtienen agrupaciones de elementos Todos los elementos de una misma agrupación representan el mismo objeto del mundo real

30 Enfoque propuesto Top-Down Traversal
Una vez detectados los duplicados en un nivel, se desciende al siguiente nivel en la jerarquía Para cada agrupación se repiten los pasos anteriores En cada iteración se consideran los elementos con el mismo nombre y cuyos padres pertenecen a la misma agrupación

31 Experimentos Se evalúa la efectividad de la propuesta
¿Qué tan efectivos son los filtros antes descritos? ¿Qué tan efectiva es la propuesta en la identificación de elementos duplicados en un XML?

32 Experimentos Se generó un documento XML con errores a partir de uno correcto 100% de duplicados Introducción de 3 tipos de errores: Errores tipográficos: 20% Errores de equivalencia: 8% Datos faltantes: 10% Los errores fueron generados con la herramienta DirtyXMLGenerator

33 Experimentos Selectividad de los filtros
Distancia de edición Datos de prueba contienen con 711 tokens, requerirían cálculos, que se reducen un 99% (1027) aplicando los filtros: Longitud de distancia: 83% Desigualdad triangular: 23% Distancia de bolsa: 97%

34 Experimentos

35 Experimentos Filtro de objetos
Depende altamente de la cantidad de objetos duplicados Si todos los elementes contienen duplicados, va a tener una selectividad del 100% En caso que no hayan elementos duplicados, la selectividad va a ser del 0%

36 Experimentos Efectividad en la medida de similitud
Se logró una precisión superior al 80% para valores de recall de hasta 80% La co-ocurrencia mejoró la precisión/recall global, aunque para valores entre 30% y 70% fue peor que sin co-ocurrencia

37 Experimentos

38 Experimentos Bajo nivel global de falsos positivos y negativos considerando co-ocurrencia Indica que s es una buena medida

39 Conclusiones y trabajo a futuro
Se plantea el problema de duplicados en XML Analogía dimensión unicidad, factor duplicidad Se distinguen 2 problemas fundamentales: Alcance de los elementos Libertad de estructura de XML Se proponen técnicas de filtrado Se visualizan mejoras a incluir Considerar consumo de memoria en cálculos Tener en cuenta info del esquema (si se dispone)

40 Crítica Puntos fuertes Puntos débiles Uso creciente de XML
Independiente del contexto Claro y autocontenido Buenos ejemplos Considera detalles a mejorar y resultados a comprobar Puntos débiles Varios conceptos explicados únicamente en referencias No define criterios para elegir valores de tedit y tdup

41 Preguntas

42 Mauricio Clausen – Nicolás García Grupo 14
Muchas Gracias !!! Mauricio Clausen – Nicolás García Grupo 14


Descargar ppt "Detecting DUPLICATE OBJECTS IN XML DOCUMENTS"

Presentaciones similares


Anuncios Google