Captura de contenido web mediante procesos autónomos: Crawler de Aragón Open Data

El Crawler de Aragón Open Data es un sistema que permite recuperar información institucional ofrecida en los distintos portales del Gobierno de Aragón, con la finalidad de poder ser explotada y reutilizada por terceros (otras webs institucionales, medios de comunicación, desarrolladores o ciudadanos) de manera estructurada y controlada.

Imagen del crawler de Aragón Open Data

Por qué surge esta necesidad

La gran cantidad de webs, subdominios y portales que existen bajo el dominio aragon.es u otros fruto de las competencias autonómicas, dificultan el acceso y uso de la información por parte de usuarios, reutilizadores y por los propios servicios del Gobierno de Aragón.

En general, la información, datos y contenido institucional se encuentran en las webs de manera dispersa, no homogénea, no controlada y no explotable.

En este contexto, surge la necesidad de ofrecer toda esta información de manera estructurada y controlada. En un principio, ITAINNOVA desarrolló un prototipo experimental que ha sido revisado y actualizado durante el 2021 para su puesta en servicio en Aragón Open Data, siempre teniendo por objeto mejorar la calidad de los datos del portal de datos abiertos y favorecer su explotación.

Cómo funciona y qué ofrece Aragón Open Data Crawler

Periódicamente y de forma automatizada, el proceso de captura webweb crawling se ejecuta semanalmente para disponer de datos actualizados de diferentes webs, subdominios o portales. El sistema rastrea con el objetivo de extraer la máxima información textual mediante el pre-procesamiento, depuración y limpieza de texto evitando procesar elementos de no interés (imágenes, código css, javascripts,...).

Actualmente, el crawler está lanzado para procesar las siguientes webs, subdominios o portales considerados de mayor relevancia para el Gobierno de Aragón y que pertenecen a distintos sectores o categorías en los que se clasifican de acuerdo a la taxonomía de sectores primarios de la Norma Técnica de Interoperabilidad (NTI) (PDF, 1,5 MB)

  • https://transparencia.aragon.es (sector-publico)
  • https://www.saludinforma.es (salud)
  • https://educa.aragon.es/ (educacion)
  • https://www.turismodearagon.com (turismo)
  • https://acpua.aragon.es/ (educación)
  • https://arasaac.org/ (sociedad-bienestar)
  • http://patrimonioculturaldearagon.es/ (cultura-ocio)
  • https://inaem.aragon.es/ (empleo)
  • https://sda.aragon.es/ (ciencia-tecnologia)
  • https://aragoncircular.es/ (economía)

Sin embargo, el sistema está preparado para añadir tantas webs, subdominios o portales de base que se deseen. Adicionalmente, el sistema se encarga de detectar si una web, subdominio o portal ha cambiado para su re-procesamiento.

A partir del contenido textual, se calcula un código CRC (Cyclic Redundancy Check) que permite detectar cambios derivados de una posible actualización de contenidos. Cuando se lanza el proceso de crawling, en el caso de que este código almacenado de una web, subdominio o portal coincida con el código nuevamente calculado, querrá decir que no ha habido modificaciones o actualizaciones con respecto al último procesamiento, y por lo tanto no es necesario volver a procesar el texto. En el caso de que el código CRC no coincida se realizan las actualizaciones correspondientes.

Previo al proceso de semantizar la información de acuerdo a la nueva versión de la Estructura de Información Interoperable de Aragón (EI2A) , el texto es procesado a través de la conversión del mismo a minúsculas, la lematización de las palabras, la eliminación de signos de puntuación, la eliminación de palabras vacías stopwords,...  Tareas de procesamiento del lenguaje natural que permiten ofrecer la información analizada y procesada relativa a entidades (personas, organizaciones, localizaciones) que han sido citadas en una determinada web, subdominio o portal, las categorías asociadas a dichos portales, un resumen de los mismos, y el organismo del Gobierno de Aragón al que pertenece esos portales.

Tecnología aplicada y disposición de los datos capturados

Para el desarrollo del sistema Aragón Open Data Crawler se han aplicado técnicas de web crawling, de Inteligencia Artificial, y en particular, de procesamiento de lenguaje natural,  además de técnicas de Web Semántica y Big Data.

Aunque durante la actualización del piloto Aragón Open Data Crawler, y para los procesos y trabajos desarrollados, se ha usado el repositorio GitHub de Aragón Open Data  de manera privada, se espera que sean publicados en el repositorio público para su libre disposición.

Representa la detección de entidades de una página web concreta. Crawler de Aragón Open Data

Disposición, Extracción  y Búsquedas de los datos capturados de los diferentes portales

La información capturada, procesada y semantizada de los diferentes portales del Gobierno de Aragón está actualmente disponible a través del endpoint SPARQL.  Asimismo, también se encuentran a disposición en el catálogo de Aragón Open Data como conjuntos de datos.

Para cada una de las webs, subdominios o portales obtenidos a través del crawler implementado, se identifica si es HTML (Lenguaje de Marcas de Hipertexto) o un archivo pdf.

En el caso de extraer texto de un HTML, hay elementos que no se procesan tales como imágenes, css, javascript, etc. Adicionalmente, se aplican tareas de procesamiento para obtener un texto más limpio. En particular, se aplican tareas para eliminar cabeceras y pies de páginas, eliminar índices, etc.

En el caso de extraer texto de un archivo pdf, se utiliza PyMuPDF, un módulo de Python con soporte para MuPDF, un visor que ofrece un gran rendimiento y alta calidad de renderizado, además de un kit de herramientas para este tipo de ficheros.

En particular, MuPDF puede acceder a archivos en formato PDF, XPS, OpenXPS, CBZ, EPUB y FB2 (libros electrónicos). Para evitar problemas de memoria en el procesado de texto de ficheros pdf de gran extensión, estos ficheros no son procesados, ya que la extracción de un número determinado de páginas del fichero podría no tener sentido.

Como resultados de estas tareas previas, los datos se han estructurado de acuerdo a la Estructura de Información Interoperable de Aragón EI2A con los datos relativos a personas, organizaciones y lugares, roles, puestos,... Información que está almacenada a modo de tripletas semánticas en la base de datos de Virtuoso.

Una tripleta semántica o terna semántica (en inglés, semantic triple) es la entidad atómica de datos en el modelo de datos Resource Description Framework (RDF). Como su nombre indica, una terna es un conjunto de tres entidades que codifica una declaración sobre datos semánticos en forma de expresiones sujeto–predicado–objeto.

En este contexto, y a través de consultas al Virtuoso de Aragón Open Data por su punto de consulta SPARQL, estas entidades son recuperadas y buscadas en el texto extraído de las webs, subdominios o portales rastreadas.  En el caso de encontrar mapeos o coincidencias, y dependiendo de la entidad que se trate, se insertan contenidos semánticos nuevamente en Virtuoso para estructurar y facilitar información relativa a que esa identidad ha sido citada en una determinada web, subdominio o portal.

Generación de resúmenes

Para generar el resumen del texto contenido en cada web, subdominio o portal se utiliza la técnica del resumizador de textos (Text Summarization, en inglés). A través de algoritmos se acortan los textos más largos y se genera resúmenes para transmitir la información deseada.

Es lo que se define como “Resumen Automático de Texto” y es un problema común en el aprendizaje automático y el procesamiento del lenguaje natural. En la actualidad existen diversos algoritmos e implementaciones para llevar a cabo la tarea de resumir textos. En el contexto del Crawler de Aragón Open Data se ha utilizado el paquete de Python “summa 1.2.0” de resumen de textos y extracción de palabras clave basado en el algoritmo TextRank. Este algoritmo es un modelo de clasificación basado en grafos para el procesamiento de textos, como el algoritmo PageRank de Google. Básicamente, en el algoritmo TextRank, se mide la relación entre dos o más palabras.

Ejemplo de Resumen Automático de Texto. Crawler de Aragón Open Data

Información estructurada de acuerdo al esquema EI2A v.2

Como resultado de la iniciativa de Aragón Open Data y la necesidad de incorporar elementos que ayudasen en la mejora de la estructuración de la información y en la estandarización de los datos del Gobierno de Aragón, fomentando así su automatización, llevaron a la creación de la Estructura de Información Interoperable de Aragón (EI2A). Recientemente ha sido actualizada con el objetivo de simplificar la versión anterior y facilitar su reutilización y mantenimiento.

Estos cambios han conducido a actualizar el sistema Aragón Open Data Crawler, y de esta forma, poder ofrecer de manera estructurada y controlada la información institucional recuperada de los distintos portales del Gobierno de Aragón, a esta nueva versión de la Estructura de Información Interoperable de Aragón EI2A v.2.

A modo de ejemplo, a continuación se muestra información que se estructura de una web, subdominio o portal de acuerdo al EI2A:

  • schema:url → url procesada
  • schema:title → título de la página web  o del documento pdf procesado
  • schema:version → CRC para comprobar si la página ha cambiado desde el ultimo procesado
  • schema:abstract → resumen del contenido de la web o pdf
  • schema:concept → categoría en la que se clasifica la página según la taxonomía de sectores primarios NTI
  • schema:sdDatePublished → fecha en la que se ha procesado la página, si la página no ha cambiado se mantiene el fecha anterior
  • schema:about → para relacionar con las personas, lugares cargo y organizaciones de los que se habla en la página o documento

Última actualización: 01/03/2023

¿Te ha resultado útil esta página?

Me ha sido útil

Ayúdanos a mejorar esta página

Enviar Enviar valoración con comentario Enviar sin comentario Enviar valoración sin comentario

Tu respuesta nos ayudará a mejorar la web