Volviendo a la recuperación de información, me gustaría contextualizar un poco más el tema que me (pre)ocupa. Se requiere crear un método no supervisado de extracción de especificaciones que funcione en un grupo de dominios en idioma castellano que aún no decido. Lo de "no supervisado" no es un dato menor, considerando que la inteligencia de las máquinas sólo puede ser artificial. En consecuencia, si no le explico a mi programita cómo diferenciar un nombre de atributo del valor del mismo, voy a tener escasas probabilidades de éxito; y cuando digo "no supervisado" quiere decir que esta aplicación tiene que poder trabajar sobre fuentes que no ha visto nunca, de las cuales no conoce estructura o formato.
En el post anterior comentaba de una de las dificultades que puede encontrarse un investigador que trabaje en la extracción de especificaciones: las inconsistencias. Pueden ser, según dice Chuang, de dos tipos: fragmentaciones y compuestos. Ahora bien, de qué forma se podrían solucionar las inconsistencias al momento de la extracción, bajo un escenario de fuentes con formatos/estructuras desconocidos? Una posibilidad es la corrección cruzada con el uso de múltiples fuentes.
Chuang trabajó con 3 dominios y 20 fuentes de cada uno. Al realizar la extracción observó que la mayoría de las fuentes tenían algunos atributos que fueron extraídos exitosamente, y que la mayoría de los atributos tenían al menos una extracción exitosa en alguna fuente.
A partir de esta observación llegó a dos conclusiones:
- Las fuentes comparten campos comunes que necesitan ser sincronizados.
- Este complemento entre las extracciones de fuentes hace que la sincronización sea posible mediante la referencia cruzada de diferentes fuentes.
Y nuestro amigo Chuang agrega un truquito adicional, que es el formato en el que debe venir la información, particularmente, la fecha. A esta información la vamos a llamar Modelo de Referencia (Reference Model).
La idea, entonces, bajo un contexto de alta ocurrencia de campos en las fuentes y de sobreposición de campos entre las fuentes, es que la información extraída de una fuente ayude a corregir las inconsistencias en las otras, y también viceversa. Paso a ejemplificar.
Siguiendo con el dominio de los libros, consideremos dos fuentes posibles con los siguientes resultados en la extracción:
Recordemos que hay dos tipos de inconsistencias: las fragmentaciones, que se corregirían uniendo los pedazos que quedaron separados equivocadamente; y los compuestos, que se corregirían dividiendo los pedazos que quedaron juntos equivocadamente.
En la figura que se ve acá se puede observar una corrección cruzada en 3 pasos, a partir de la extracción inicial:
Paso 1: Se propaga el atributo "precio" de S1 a S2, al dividir (split) el compuesto formato+precio.
Paso 2: Como ahora el atributo "formato" está bien en S2, sirve para corregir en S1 el compuesto formato+fecha, realizando la división (split) correspondiente.
Paso 3: Gracias al modelo de referencia, notamos que hay una fragmentación en la fecha, en S1 y realizamos una combinación (merge) para corregirla.
Fuente: S.-L. Chuang, K. Chang, and C. Zhai. Context-aware wrapping: Synchronized data extraction. In Proceedings of the Thirty-Third Very Large Databases Conference, pages 699-710, 2007.

No hay comentarios:
Publicar un comentario