Gajus - stock.adobe.com

El raspado web de IA aumenta la recopilación de datos

El raspado web automatiza el proceso de recopilación de datos y refina la canalización de datos, pero requiere una cuidadosa atención para elegir las herramientas, los lenguajes y los programas adecuados.

El raspado web (web scraping) ha existido casi desde que ha habido una web que raspar. La tecnología constituye la piedra angular de los servicios de búsqueda como Google y Bing, y puede extraer grandes cantidades de datos.

La recopilación de datos en la web tiende a estar a merced de cómo estos se presentan, y muchos sitios desaconsejan activamente el raspado web. Sin embargo, los desarrolladores pueden crear aplicaciones de raspado web en lenguajes como Python o Java para ayudar a llevar datos a una variedad de aplicaciones de IA. Es crucial que los desarrolladores piensen detenidamente en las secuencias que utilizan para adquirir sus datos. Cada paso de este proceso –obtener los datos correctos, limpiarlos y luego organizarlos en el formato apropiado para sus necesidades– debe revisarse.

Estas secuencias son un trabajo continuo en progreso. Es posible que las secuencias de raspado web perfectas para hoy deban renovarse por completo para mañana. Sabiendo esto, existe una variedad de herramientas y mejores prácticas que pueden ayudar a automatizar y refinar estas secuencias, y mantener a las organizaciones en el camino correcto.

Aplicaciones de raspado web e IA

El raspado web implica escribir un robot de software que puede recopilar automáticamente datos de varias páginas web. Los bots simples pueden hacer el trabajo, pero los bots más sofisticados usan IA para encontrar los datos apropiados en una página y copiarlos en el campo de datos apropiado para que una aplicación de análisis los procese.

Los casos de uso basados ​​en raspado web de IA incluyen comercio electrónico, investigación laboral, análisis de la cadena de suministro, captura de datos empresariales e investigación de mercado, dijo Sarah Petrova, cofundadora de Techtestreport. Este tipo de aplicaciones depende en gran medida de los datos y la sindicación de datos de diferentes partes. Las aplicaciones comerciales utilizan raspado web para realizar análisis de opinión sobre lanzamientos de nuevos productos, seleccionar conjuntos de datos estructurados sobre empresas y productos, simplificar la integración de procesos comerciales y recopilar datos de manera predictiva.

Un proyecto específico de raspado web incluye la selección de datos de lenguaje para modelos de procesamiento de lenguaje natural (NLP) que no están en inglés o la captura de estadísticas deportivas para construir nuevos modelos de IA para el análisis de deportes de fantasía. Burak Özdemir, un desarrollador web con sede en Turquía, usó raspado web para construir un modelo de red neuronal para tareas de PNL en turco.

"Aunque hay tantos modelos pre-entrenados que se pueden encontrar en línea para inglés, es mucho más difícil encontrar un conjunto de datos decente para otros idiomas", dijo Özdemir. Él ha estado experimentando con la extracción de Wikipedia y otras plataformas que tienen texto estructurado para entrenar y probar sus modelos, y su trabajo puede proporcionar un marco para otros que buscan desarrollar y entrenar PNL en idiomas distintos del inglés.

Las herramientas de raspado web

Hay una variedad de herramientas y bibliotecas que los desarrolladores pueden usar para impulsar sus proyectos de raspado web. Principalmente, Python tiene tecnología de raspado web fácilmente disponible a través de bibliotecas en línea.

Python juega un papel importante en el desarrollo de IA con un enfoque en raspado web, dijo Petrova. Recomendó considerar bibliotecas como Beautiful Soup, lxml, MechanicalSoup, Python Requests, Scrapy, Selenium y urllib.

Cada herramienta tiene su propia fuerza y, a menudo, pueden complementarse entre sí. Por ejemplo, Scrapy es un marco colaborativo y de código abierto para extraer datos que son útiles para la minería de datos, el monitoreo y las pruebas automatizadas. Beautiful Soup es una biblioteca de Python para extraer datos de archivos HTML y XML. Petrova dijo que lo implementa para modelar scripts de extracción, ya que la biblioteca proporciona métodos simples y modismos de Python para navegar, buscar y modificar un árbol de análisis.

Aumentar los datos con raspado web

Los algoritmos de IA a menudo se desarrollan en la interfaz para saber qué secciones de una página web contienen campos como datos de productos, reseñas o precios. Petrova señaló que al combinar raspado web con IA, el proceso de aumento de datos puede volverse más eficiente.

"El raspado web, especialmente las soluciones inteligentes de extracción, limpieza, normalización y agregación de datos impulsadas por IA, puede reducir significativamente la cantidad de tiempo y recursos que las organizaciones tienen que invertir en la recopilación y preparación de datos en relación con el desarrollo y la entrega de soluciones", dijo Julia Wiedmann, ingeniera de investigación de aprendizaje automático en Diffbot, un servicio de búsqueda web estructurado.

Petrova dijo que las técnicas comunes de aumento de datos incluyen:

  • extrapolación (los campos relevantes se actualizan o se les proporciona valores);
  • etiquetado (los registros comunes se etiquetan en un grupo, lo que facilita su comprensión y diferenciación para el grupo);
  • agregación (usando valores matemáticos de promedios y medias; los valores se estiman para campos relevantes, si es necesario); y
  • técnicas de probabilidad (basadas en heurística y estadísticas analíticas; los valores se completan en función de la probabilidad de los eventos).

Uso de IA para raspado resiliente

Los sitios web están diseñados para ser legibles por humanos y no legibles por máquinas, lo que dificulta la extracción a escala y en diferentes diseños de página. Cualquiera que haya tratado de agregar y mantener datos sabe lo difícil que puede ser esta tarea, ya sea una base de datos compilada manualmente con errores tipográficos, campos faltantes y duplicados o la variabilidad de las prácticas de publicación de contenido en línea, dijo Wiedmann.

Su equipo ha desarrollado algoritmos de inteligencia artificial que utilizan las mismas señales que un humano para detectar la información que debe extraerse. También descubrió que es importante integrar primero los resultados en la investigación aplicada o en los entornos de prueba. Puede haber una variabilidad oculta ligada a las prácticas de publicación de las fuentes. Las rutinas de aseguramiento de la calidad de los datos pueden ayudar a minimizar el mantenimiento manual de los datos.

"Diseñar sistemas que minimicen la cantidad de mantenimiento manual reducirá los errores y el mal uso de los datos", dijo Wiedmann.

Mejorar la estructura de datos

La IA también puede estructurar los datos recopilados con raspado web para mejorar la forma en que otras aplicaciones pueden utilizarlos.

"Aunque el raspado web existe desde hace mucho tiempo, el uso de IA para la extracción web se ha convertido en un punto de inflexión", dijo Sayid Shabeer, director de productos de HighRadius, una empresa de software de IA.

El raspado web tradicional no puede extraer datos estructurados de documentos no estructurados automáticamente, pero los avances recientes crearon algoritmos de inteligencia artificial que funcionan en la extracción de datos de manera similar a los humanos y que también continúan aprendiendo. El equipo de Shabeer usó este tipo de bots para extraer información de remesas para solicitudes de efectivo de socios minoristas. El motor de agregación web inicia sesión periódicamente en los sitios web de los minoristas y busca información sobre las remesas. Una vez que la información está disponible, los agentes virtuales capturan automáticamente los datos de las remesas y los proporcionan en formato digital.

A partir de ahí, se puede aplicar un conjunto de reglas para mejorar aún más la calidad de los datos y agruparlos con la información de pago. Los modelos de IA permiten que los bots dominen una variedad de tareas en lugar de que se centren en un solo proceso.

Para construir estos bots, el equipo de Shabeer recopiló los nombres de clase comunes y las etiquetas HTML que se usan en varios sitios web de minoristas y los introdujo en el motor de IA. Esto se usó como datos de capacitación para garantizar que el motor de IA pudiera manejar cualquier portal minorista nuevo que se agregara con una intervención manual mínima o nula. Con el tiempo, el motor se volvió cada vez más capaz de extraer datos sin ninguna intervención.

Limitaciones del raspado web

En un caso reciente, en el que LinkedIn intentó evitar que HiQ Labs extrajera sus datos con fines analíticos, la Corte Suprema de EE. UU. dictaminó que el raspado web para análisis e IA puede ser legal. Sin embargo, todavía hay una variedad de formas en que los sitios web pueden romper de forma no intencional o accidentalmente las aplicaciones de raspado web.

Petrova dijo que algunas de las limitaciones comunes que ha encontrado incluyen:

  • Raspado a escala. Extraer una sola página es sencillo, pero existen desafíos al extraer millones de sitios web, incluida la administración de la base de código, la recopilación de datos y el mantenimiento de un almacén de datos.
  • Cambios de patrón. Cada sitio web cambia periódicamente su interfaz de usuario.
  • Tecnologías anti-raspado. Algunos sitios web utilizan tecnologías anti-raspado.
  • Contenido dinámico basado en JavaScript. Los sitios web que dependen en gran medida de JavaScript y Ajax para generar contenido dinámico dificultan la extracción de datos.
  • Trampas de honeypot. Algunos diseñadores de sitios web colocan trampas honeypot dentro de los sitios web para detectar arañas web y entregar información falsa. Esto puede implicar la generación de enlaces que los usuarios normales no pueden ver, pero los rastreadores sí.
  • Calidad de los datos. Los registros que no cumplan con las pautas de calidad afectarán la integridad general de los datos.

Navegador frente a back-end

El raspado web generalmente lo realiza un navegador sin cabeza que puede explorar páginas web independientemente de cualquier actividad humana. Sin embargo, existen complementos de chatbot de IA que extraen datos como un proceso en segundo plano que se ejecuta en el navegador, y que pueden ayudar a los usuarios a encontrar nueva información. Estos programas front-end utilizan IA para decidir cómo comunicar la información adecuada a un usuario.

Marc Sloan, cofundador y director ejecutivo de Scout, un chatbot de raspado web de IA, dijo que originalmente hicieron esto usando un navegador sin cabeza en Python que extraía el contenido de la página web a través de una red de proxies. La información se extrajo del contenido usando una variedad de técnicas. Sloan y su equipo usaron Spacy para extraer entidades y relaciones de texto no estructurado en gráficos de conocimiento usando Neo4j. Se utilizaron redes convolucionales para identificar características como el tipo de sesión, la similitud de la sesión y los puntos finales de la sesión.

Desde entonces, han trasladado el procesamiento al navegador del usuario que se ejecuta en JavaScript para preservar la privacidad. Y para funcionar mejor en el navegador, han simplificado los modelos de datos. Sloan dijo que cree que esto es solo el comienzo. El desarrollo de diferentes tipos de agentes de IA que se ejecutan localmente para ayudar a las personas a automatizar sus interacciones con varios sitios continuará en el futuro.

Investigue más sobre Inteligencia artificial y automatización