EVOLUCIÓN Y TENDENCIAS ACTUALES DE LOS WEB CRAWLERS
WEB CRAWLERS: EVOLUTION AND CURRENT TRENDS
Fernando Iván Camargo Sarmiento, Universidad Distrital. Bogotá, Colombia. ficamargo@hotmail.com
Sonia Ordóñez Salinas, Universidad Distrital. Bogotá, Colombia. soniaords@gmail.com
Recibido: 08/04/2013 - Aceptado: 06/12/2013
RESUMEN
La información disponible en redes de datos como la Web o las redes sociales se encuentra en continuo crecimiento, con unas características de dinamismo especiales. Entre los mecanismos encargados de rastrear los cambios en dicha información se encuentran los Web crawlers, los cuales por la misma dinámica de la información, deben mejorarse constantemente en busca de algoritmos más eficientes. Este documento presenta el estado actual de los algoritmos de rastreo de la Web, sus tendencias, avances, y nuevos enfoques dentro del contexto de la dinámica de las redes sociales.
Palabras clave: Procesamiento de Lenguaje Natural, rastreador, buscador, Web crawler, redes sociales, rastreador social.
ABSTRACT
The information available on the Web (and more recently on social networks) is continuously growing following an updating dynamics of its own. In order to meet such a dynamics the algorithms that are used to track the changes to keep directories up to date, need to be also continuously revised and improved. This document presents the current status of tracking algorithms of the Web (Web crawlers), its trends and developments, and its approach towards managing the new challenges emerging from information gathered from novel web services such as social networks.
Key words: Natural Language Processing, crawler, search engine, Web crawler, social network, social network crawler.
1. INTRODUCCIÓN
Los servicios de redes sociales actuales involucran a millones de usuarios en internet. Entre el año 2008 y el 2013, dicho número de usuarios en Latinoamérica ha pasado de 53.248.000 [1] a 139.000.000 [2], lo que representa un crecimiento de más del 250% en 4 años.
Debido a esto, la información almacenada a través de dichos servicios se convierte en una fuente creciente de información útil para la búsqueda de relaciones y patrones implícitos en ella; pueden verse como repositorios de información con unas características de dinamismo especiales. Con tales características, el hecho de explorar periódicamente el contenido y mantenerlo catalogado para su utilización representa un reto creciente.
Los mecanismos diseñados para tal fin son llamados rastreadores. Son herramientas que permiten (como su nombre lo indica), rastrear un sitio web para extraer de él cualquier contenido existente. Los rastreadores hacen uso de la estructura de los documentos, sus etiquetas de hipertexto y sus meta-etiquetas para catalogar el contenido.
Sin embargo, los rastreadores que utilizan estos conceptos están diseñados para obtener datos generalizados, que por su dinámica pueden actualizar sus catálogos en periodos que oscilan entre días y semanas [3]. El tiempo promedio en que un usuario actualiza su información en sus servicios de redes sociales es menor a 3 días [4]. Esta dinámica implica la necesidad de técnicas de rastreo cada vez mas eficientes, enfocadas a ciertos temas e incorporando métodos de clasificación basados en el procesamiento de lenguaje allí contenido.
A continuación se presenta la revisión de dichos rastreadores (Web crawlers), sus tendencias y avances, y su enfoque hacia el manejo de redes sociales. Para ello, se ha consultado diferentes librerías académicas como Springer, IEEE y ACM, con búsqueda desde 1995 hasta 2013. A partir de una búsqueda de todos los trabajos sobre crawlers, rastreadores y arañas, se han revisado un promedio de 250 trabajos organizados por relevancia y por número de citaciones.
2. CONTEXTUALIZACIÓN
Para entender la evolución de los rastreadores actuales (especialmente los rastreadores focalizados que se explicarán más adelante) es necesario conocer el tema en el cual se enmarcan, es decir, el Procesamiento del Lenguaje Natural (PLN). En el siguiente capítulo se presentan los conceptos relevantes sobre dicho tema, y luego se aborda el estado del arte de los rastreadores Web, especificando sus objetivos, arquitecturas y avances.
2.1. Procesamiento de lenguaje natural
El término “procesamiento de lenguaje natural” es normalmente utilizado para describir la función de componentes de hardware o software en su sistema de cómputo, que analizan lenguaje hablado o escrito [5]. Combinado con la minería de datos, definida como la “tarea de identificar patrones de interés y describirlos de una forma concisa y con significado [6]”, presenta variantes como la minería de texto y la minería Web.
2.1.1. Minería de texto y minería Web
La minería de texto es el proceso de extraer patrones interesantes a partir de grandes colecciones de textos para descubrir conocimientos [7]. Es también el descubrimiento de reglas de asociación importantes dentro de un corpus de texto [8].
En la Web, dicha minería podría ser aplicada a una serie de tareas como la recuperación de información (obtención de documentos ante una solicitud de búsqueda [9]), la extracción de información (búsqueda de información a partir de documentos previamente recuperados), resolución de pregunta – respuesta , entre otras, lo cual hace aparecer otra rama de investigación llamada minería Web, definida como el proceso global de descubrir información o conocimiento, potencialmente útil y previamente desconocido a partir de datos en la Web [10].
En la literatura también se encuentran a su vez tres subdivisiones de la minería Web [11]: Minería de contenido (analiza el contenido disponible en documentos Web), minería de estructura (se enfoca en la información vinculada, es decir, los enlaces entre documentos) y minería de uso (que analiza los datos transaccionales generados cuando los usuarios interactúan en la Web).
2.1.2. Los Rastreadores y el procesamiento del lenguaje natural
Uno de los grandes retos a la hora de utilizar la información existente en la Web es la recolección, clasificación y adaptación de la misma. Dichas tareas a su vez son propias del procesamiento del lenguaje natural.
Si bien es cierto que existen grandes volúmenes de información en los diferentes servidores Web listos para ser procesados, también es cierto que la consecución de dicha información actualizada y organizada no es una tarea fácil [12]. Generalmente para recolectar esta información se utilizan los Web crawlers que permiten “visitar” los diferentes repositorios Web de información y extraer lo que allí resida. Del producto de las “visitas” depende la calidad y fiabilidad de los resultados de la tarea en cuestión [13]. Para aclarar estos conceptos se expondrá una de las tareas que se han mencionado y su relación con los Web crawlers.
2.1.3. Recuperación de información
La recuperación de información consiste en buscar material de naturaleza no estructurada, que satisfaga una necesidad de información dentro de grandes colecciones [14]. Se ocupa del pre-procesamiento, la representación, el almacenamiento, la organización y el acceso a ítems de información [15]. Puede abarcar la localización y presentación a un usuario de información relevante a una necesidad de información expresada como una pregunta [16].
Los sistemas de recuperación de información pretenden determinar entonces qué contenido es relevante dado uno o varios criterios. Para ello, se deben tener en cuenta dos etapas o instancias [17]:
2.1.4. Clasificación de texto
Los Web crawler, - como se ya ha mencionado - permiten recolectar (copiar) información de diferentes servidores Web. Sin embargo, este tipo de información puede provenir de diferentes servicios (páginas, documentos pdf, redes sociales) que hacen que presenten diferentes formatos, lenguajes y estructuras [24]. Con el fin de poder homogenizar dicha información de acuerdo a un fin particular como la indexación o la extracción de patrones se hace necesario utilizar técnicas propias de la minería de texto como la clasificación.
Un clasificador es una técnica capaz de diferenciar elementos de acuerdo con sus características y agruparlos en órdenes o clases [25]. Estos algoritmos se pueden dividir en dos grandes grupos. Por un lado, se encuentran los que parten de un conjunto de datos para los que se desconocen las clases en las que se pueden agrupar (clasificación no supervisada). Por otro lado están los algoritmos de aprendizaje supervisado, en los que se dispone de un conjunto de datos con ejemplos de entrenamiento que han sido etiquetados previamente [26].
Dentro de los algoritmos de clasificación supervisada, que se utilizan habitualmente para clasificar texto, pueden encontrarse entre otros los algoritmos de SVM (Support Vector Machine o Máquinas de Vectores de Soporte [27]), ANN (Artificial Neural Networks o Redes Neuronales Artificiales [28]), Regresión [29], clasificadores Bayesianos (probabilísticos) [30], k-NN (clasificador de vecinos más cercano) [31] y árboles de decisión [27]. Cada uno de ellos presenta características diferentes de rendimiento según su uso [27].
2.2. Rastreadores (crawlers)
Para definir qué es un rastreador, es importante primero definir el entorno: para ello, se explica qué es un buscador Web, sus diferentes componentes y posteriormente se explicará en detalle el concepto de crawler.
2.2.1. Crawlers y buscadores Web
Un buscador Web es un sistema de recuperación de información en Internet, basado en páginas previamente catalogadas, y cuyos resultados son enlaces a las páginas reales que contengan ciertos parámetros o criterios. El buscador habitualmente toma como referencia meta-etiquetas de marcado como títulos, descripción o palabras clave dentro de los documentos, y con base en ello clasifican o ponderan los documentos. De esta forma, un documento con sus meta-etiquetas completas y con contenido relevante será mejor ponderado por un buscador web que un documento que no contenga tales etiquetas [32]. A esta optimización se le conoce como “Optimización para Motores de Búsqueda”, o SEO por sus siglas en inglés (Search Engine Optimization) [33, 34].
Los creadores de Google, Larry Page y Sergei Brin [35] definen un buscador Web en función de cinco componentes: un Web crawler, un indexador, un ponderador (o algoritmo de ponderación), un motor de búsqueda y un repositorio de páginas. El Web crawler es el componente responsable de descargar la información disponible en la Web hacia el repositorio del motor de búsqueda, para su procesamiento posterior. El indexador genera un índice de términos, información del archivo y algunas otras características importantes de la información descargada por el Web crawler. El motor de búsqueda es responsable de procesar una consulta de usuario con una o más palabras y combinaciones de comodines y conectores lógicos. El ponderador es responsable de ordenar la mayoría de entradas del indexador. El repositorio de páginas es a menudo un medio físico para alojar una versión de las páginas rastreadas, en un formato útil para el motor de búsqueda.
2.2.2. Funcionamiento de un crawler
El objetivo principal de un Web crawler es proporcionar datos actualizados a un motor de búsqueda [36]. Son utilizados principalmente para crear una copia de todas las páginas rastreadas para su posterior procesamiento por un motor de búsqueda luego de ser indexadas para proporcionar resultados de una forma rápida [37]. Las metas de un crawler óptimo son su fácil escalabilidad, su habilidad de determinar qué contenido es susceptible de descarga y cuál se debe desechar, mantener su “responsabilidad social y ética” [38, 39], y su competencia directa con adversarios [40].
A nivel conceptual, el funcionamiento de un crawler es sencillo: tomar una dirección URL (o identificador de un sitio Web) a partir de una lista, descargar su contenido (sus páginas HTML), clasificarlo y aprovechar los enlaces de dichas páginas para hacer una nueva búsqueda con cada documento vinculado. A su vez, cada nuevo documento vinculado se clasifica nuevamente. En la Figura 1 se puede observar cómo es realizado dicho proceso: un componente llamado “gestor de descargas” examina el contenido de un sitio web, crea un documento con sus metadatos y almacena el contenido en un repositorio. A su vez, busca en dicho sitio más enlaces o URLs, los cuales son enviados a una cola de espera para su procesamiento posterior. Por otro lado, hay un módulo llamado “programador”, que se encarga de tomar los enlaces de la cola de espera para enviarlos al programador y realizar con él un nuevo proceso, llamado barrido de segundo nivel.
Sin embargo, debido al a cantidad de sitios web y la cantidad de páginas con que cuenta cada uno de ellos, un crawler debe considerar una forma rápida de seleccionar las páginas por descargar, y una forma óptima de verificar qué cambios han tenido dichas páginas a través del tiempo.
Para mantener un corpus actualizado, 10 mil millones de páginas en un estado razonable de actualización, por ejemplo de 4 semanas, el crawler debe descargar alrededor de 4.000 páginas por segundo; para hacerlo, el crawler se debe distribuir sobre múltiples computadores y procesar las búsquedas en paralelo [3]. Por dicha velocidad de actualización, y por el crecimiento de internet planteado, el desarrollo de técnicas, algoritmos y arquitecturas ha sido constante y el tema permanece vigente.
Uno de los tipos de crawlers por estudiar son los denominados crawlers focalizados [41]. El principal atributo de los crawlers focalizados es que no necesitan coleccionar todas las páginas Web, sino que se enfocan en aquellas relevantes o importantes respecto de un conjunto predefinido de tópicos antes de comenzar a rastrear [42]
2.2.3. Evolución histórica
Los crawlers más conocidos son UbiCrawler [43], Viuva Negra[44], y el módulo de rastreo distribuido de Google [35], además de otros de naturaleza comercial previos a Google (Altavista, Infoseek, Lycos, Excite y HotBot). En cuanto a crawlers de código abierto, se destacan Heritrix [45], Nutch [46], Combine [47] y WIRE [48].
El primer crawler oficialmente reconocido es el “Wanderer” de Matthew Gray; fue un algoritmo de rastreo simple en la Web desarrollado en 1993 [49]. Fue presentado como un rastreador para el MIT, con el único propósito de generar estadísticas, y no fue publicado o expuesto a la comunidad científica. Posteriormente aparecen otros cinco en un periodo de dos años: JumpStation [50], RBSE [51], WebCrawler[52], WWWWorm [53] y MOMspider [54]. Dichos crawlers han dado origen a la mayoría de los actuales.
Sin embargo, el algoritmo de referencia obligatoria es PageRank, propuesto por Lawrence Page y Sergei Brin [35]; en él se expone cuál debería ser la estructura de un motor de búsqueda Web, incluyendo crawler, indexación y búsqueda. En un artículo posterior [55], resultado de un proyecto de investigación de la Universidad de Stanford, los autores describen públicamente este algoritmo que sería el fundamento de Google durante sus primeros diez años. En este documento, definen métricas importantes en el rastreo como similaridad de página (medida para descartar páginas iguales en la Web), “conteo regresivo” (para aumentar el peso a una página entre más referenciada esté en otras páginas), PageRank (ponderar mejor las páginas referenciadas por portales importantes), completitud de la información y ubicación (según el lugar del código en el que se encuentre un resultado). Igualmente presentan un algoritmo simple de rastreo basado en estos criterios.
En el año 2002, se presenta un crawler llamado WebRACE [56], con capacidades de procesamiento distribuido, almacenamiento temporal de objetos y servicio de filtrado. Para ello, se utilizó un motor desarrollado por la Universidad de California, llamado eRACE, capaz de recolectar, anotar y diseminar información de fuentes heterogéneas. Los autores establecieron que en promedio, 1 de cada 10 documentos cambiaba luego de una semana, con lo que no era necesario reprocesarlo. Para evitar que el crawler descargase de nuevo páginas que no habían sido actualizadas, planteó adicionar a cada sitio web un “meta-documento” en XML con la información necesaria para ser descartado o reprocesado.
Otra propuesta que merece mencionarse es Ubicrawler, un crawler distribuido, programado en Java con todas las funciones descentralizadas, el cual es presentado por Boldi et al. en 2004 [57]. Ya que su algoritmo es distribuido, los autores reportan que en cada CPU en la cual se ejecute el crawler se pueden procesar hasta 660 páginas por segundo. Este trabajo fue actualizado en el 2009 [43] y [58] donde se expusieron aspectos para tener en cuenta en la optimización de sus resultados .
En ese mismo año se desarrolló un crawler para idioma español en Java y Oracle como repositorio de base de datos, capaz de extraer información de Facebook e ingresarla a un modelo relacional [59]. Este crawler actualmente no permite extraer la información debido a los cambios de seguridad implementados pro Facebook desde entonces.
En el año 2010 hubo una serie de trabajos alrededor de métodos de rastreo; por ejemplo Tadapak [60] propone un crawler para un idioma específico (Thai), con métodos supervisados. Shaojie y otros [61] proponen una mejora al algoritmo de PageRank utilizando medidas de similaridad, bajo el nombre de SimRank. Qureshi y otros autores [62] diseñan un crawler llamado “visionerBOT”. Su principal aporte es el uso de MAPreduce [63], el framework de Google para manejo de computación distribuida.
También en 2010, se presenta un proyecto de crawler focalizado en base de datos de tópicos (DTB) [64]. Una de las propuestas del trabajo es que se cuente con una base de tópicos estáticos, y una base de tópicos dinámicos con auto-aprendizaje.
En el año 2011, Anbukodi [65] propone el uso de “agentes móviles” para reducir la sobrecarga de máquinas de los crawlers actuales. La arquitectura sugiere que cada agente cuente con un conjunto de páginas iniciales (llamadas “semilla”) y rastree los vínculos que contenga dicha página recursivamente (cada página contiene vínculos de un nuevo nivel, los cuales contienen a su vez vínculos de un segundo nivel y asís sucesivamente); Cuando un vínculo tenga una gran cantidad de niveles debajo de él, el agente tiene la capacidad de pasar dicho vínculo a un nuevo agente, liberando recursos y balanceando su carga.
2.2.3.1. Crawlers focalizados
Este concepto fue introducido por Chakrabarti en 1999 [66], y ha sido ampliamente utilizado en los últimos años como herramienta para rastrear las web para problemas específicos. Un crawler focalizado ( o focused crawler por su nombre original) es un tipo de crawler que recibe uno o varios parámetros de entrada (como frases o palabras) y rastrea la web para localizar sitios con contenido relevante a dichos términos. La característica prin-cipal de los crawlers focalizados es que no necesitan coleccionar todas las páginas web visitadas, sino que se enfo-can en URLs relevantes o importantes respecto de un conjunto predefinido de tópicos antes de comenzar a ras-trear [42].
Puesto que los crawlers focalizados se utilizan para seleccionar contenido sobre un tema en particular, es usual que incorporen técnicas de clasificación y conceptos tradicionales del procesamiento de lenguaje natural. Por esto mismo, es importante tener en cuenta los retos que implica el uso de lenguaje humano, como la dependencia del idioma, el tratamiento de excepciones y la desambiguación de términos, entro otros [5, 9, 67], que son temas tradicionales en el procesamiento de lenguaje natural.
A partir de 2007 los trabajos sobre crawlers focalizados han sido frecuentes. En ellos ha habido diferentes modelos y técnicas de clasificación como el bayesiano ([68]), k-Nearest Neighbours [31], modelos de asociación semántica [42], en ontologías [69] y algunos mezclando diferentes modelos como clasificación Bayesiana con el algoritmos de lógica disfusa [70]. Los más utilizados por la precisión y exactitud son aquellos basado en Máquinas de Vectores de Soporte (SVM). A nivel de arquitectura, se han utilizado principalmente sistemas multiagente [71]. En términos generales, los crawlers expuestos en las diferentes librerías consultadas se basan en idioma inglés.
2.2.3.2. Crawlers sociales
Existen estudios sobre Web crawlers dirigidos al contenido de redes sociales, tales como el propuesto por S. Ibrahim [72]; aunque el objetivo de dicho estudio era el desarrollo de una red social, propone utilizar agentes multicrawler o MCA (Multi Crawler Agents). Los autores centran el trabajo en la extracción de información relevante para los negocios, pero no utilizan un crawler focalizado para ello. Lo que hacen es limitar los enlaces del estudio, de modo que solamente se consulten ciertas páginas web previamente seleccionadas. Con ello, el índice de precisión en la búsqueda posterior, es del 100% al consultar 100 documentos, y del 93% con 500 documentos.
Este mismo año se publica un artículo sobre técnicas de minería Web para redes sociales [73], Los autores hacen una revisión documental sobre el tema, y clasifican dichas técnicas en 3 diferentes tipos según su uso: Minería de contenido web (se analiza el contenido de la web como textos y gráficos y se enfoca en el procesamiento de texto), minería de estructuras web (se centra en el análisis de la estructura de los sitios web a partir de los enlaces de los sitios) y minería de uso web (se basa en analizar cómo son utilizados los sitios web, es decir, analizar el comportamiento de los usuarios cuando visitan cada sitio). Los autores concluyen que un crawler para redes sociales debería estar construido con la técnica de “minería de estructuras Web” debido a que la comprensión de la estructura de los sitios podría mejorar la forma en que los crawlers sociales se construyen.
Fard, [74] introduce el concepto de “minería colaborativa”, en un proyecto para descubrir patrones de grupos criminales dentro de las redes sociales; utiliza un sistema multiagentes, con un reglas de asociación basadas en el algoritmo “a priori” (el algoritmo a priori es uno de los 10 algoritmos más conocidos en la minería de datos según la IEEE hasta el 2007 [75] , y consiste en la creación de clases candidatas basadas en agrupamiento dinámico). El trabajo es presentado en documentos en inglés.
2.2.4. Métricas
Aún cuando los buscadores tienen métricas de evaluación de acuerdo con la confiabilidad de sus resultados, los crawlers no tienen una definición comúnmente aceptada sobre la forma de ser evaluados. En los crawlers tradicionales hay trabajos que proponen parámetros de medición como la exactitud o “accuracy” (número de fallas / número de fallas corregidas) y la disponibilidad o “availability” (exactitud en el tiempo) [76] pero estos parámetros no son utilizados en la mayoría de estudios. Sin embargo, en los crawlers focalizados sí hay una aceptación generalizada de dos métricas de evaluación: a partir de 2004, Menczer [77] propuso utilizar los índices de exhaustividad ( recall) y precisión (precision) [9] en ellos.
El índice de recall es la proporción de documentos recuperados que son relevantes para la búsqueda, y su índice viene dado por la siguiente fórmula [5]:
Dicho índice busca determinar qué porcentaje de los documentos recuperados son realmente relevantes, debido a que cualquier modelo de recuperación de información puede retornar documentos que no son relevantes a juicio de un experto en el tema, y cuanto mayor sea el porcentaje de documentos relevantes, más preciso será el método estudiado.
El índice de precisión es la proporción de documentos relevantes a la consulta que se han recuperado satisfactoriamente, y su índice viene determinado por la siguiente fórmula:
El índice de precision busca determinar cuántos documentos relevantes han sido excluidos de los resultados. Cuando este índice se utiliza combinado con el índice de recall, se puede determinar la efectividad de determinado modelo.
2.2.5. Arquitecturas
La mayoría de sistemas de recuperación de información en la Web se basan en las siguientes arquitecturas [17] [35]:
Los buscadores con arquitectura centralizada se utilizan en entornos con capacidades limitadas; por ejemplo en proyectos que residen en una sola máquina. Los buscadores con arquitectura distribuida pueden ser alojados en diferentes servidores, y es habitual que utilicen agentes para gestionar cada rastreador. Uno de ellos es el propuesto por Risvik, como tesis doctoral [78], quien habla de un crawler escalable, encargada de repartir el trabajo en cada uno de los nodos del crawler, de modo que puedan trabajar en paralelo.
En 2008, [79] se plantea utilizar dos componentes: un servidor para despertar cada proceso de crawling como un hilo (servidor multi-hilo) y crawlers cliente, cada una de las cuales se encuentra en su propio equipo haciendo rastreo en una parte de la Web. La técnica no difiere de los ya tradicionales crawlers en paralelo, pero ofrece algoritmos de sincronización entre cada cliente. Igualmente sugiere un único crawler ejecutándose sobre cada equipo. Dos años más tarde, Horowitz & Kamvar [80] hacen una analogía con el algoritmo propuesto por Page y Brin, pero incorporando un concepto básico de redes sociales: las personas. Además de catalogar el contenido de las páginas, localiza “entidades nombradas” (busca personas en cada página), y las relaciona con el contenido de la página. De esta forma, cuando el motor de búsqueda recibe una petición, el algoritmo intenta localizar “qué persona podría contestar dicha petición”, asignando relevancia a los documentos que tengan personas relacionadas, e incluyendo en la búsqueda otros documentos de dicha persona. En este trabajo se menciona explícitamente el concepto de “social crawling”.
También en 2010, se puede encontrar una propuesta de arquitectura de crawler desarrollada por Hsieh, Gribble, & Levy [81]. En ella se indica que cada página debe ser tratada con dos posibles algoritmos: enfocado o generalizado. Si la página es por ejemplo un blog, o una página con una serie de enlaces, debe generalizarse, adicionando la tarea dentro de una lista de tareas controladas por un agente llamado “programador”, pero si es un sistema frecuente como una fuente RSS (tecnología para intercambio de noticias en formato XML) o un portal de noticias de actualización frecuente, debe utilizarse el algoritmo focalizado, y mantener el hilo abierto para los hijos de dicho enlace; El autor plantea que la búsqueda de segundo nivel no se ejecute directamente después de la primera, sino que en principio se agrupe y se determine qué hacer con cada uno de los enlaces, y según se decida, programarlos en la cola (cabe recordar que un crawler examina un sitio web y posteriormente examina los enlaces que contenga, y asís sucesivamente por múltiples iteraciones llamadas niveles).
Igualmente en 2010, se presenta una mejora a la arquitectura en paralelo [82] por medio de un bróker. que asigne dinámicamente las URL a cada hilo del crawler. Lo novedoso del trabajo es que dicha asignación se hace mediante lógica difusa.
Hay trabajos sobre arquitecturas extensibles [81]; estas arquitecturas buscan permitir que el crawler pueda crecer con el tiempo a varios equipos o nodos sin que ello implique cambios en los algoritmos, sino que contengan técnicas de distribución de carga flexibles para su crecimiento posterior.
3. CONCLUSIONES
La investigación sobre rastreadores y minería Web en el ámbito mundial es actual, y el interés se ha incrementado en los últimos años, como se desprende del número de publicaciones sobre este tema; la mayoría de trabajos encontrados han sido desarrollados desde el año 2008 al 2012, variando técnicas, métodos y resultados.
Los rastreadores como elementos de exploración se han direccionado principalmente a la búsqueda de documentos html hay diferentes tipos de rastreadores, según su nivel de especificidad, arquitectura o algoritmo de rastreo. La tendencia en los últimos años ha sido la de especializar la búsqueda, y para ello han surgido los crawlers focalizados. La cantidad de información en Internet y la velocidad de actualización de la misma, ha hecho que sea necesario este tipo de rastreo.
Pese a que la arquitectura distribuida ha sido adoptada debido al crecimiento que puede tener un buscador, y a que el uso de agentes ha sido una técnica utilizada para lograrlo, no hay más temas que hayan sido adoptados como norma en la creación de crawlers. En la actualidad no existe un método generalizado de rastreo, y tampoco hay consenso en cómo se debe abordar el procesamiento de lenguaje natural cuando se trata de crawlers focalizados. De hecho, hay una gran debilidad en cuanto al manejo de diferentes idiomas, y las técnicas y metodologías dependen en muchos casos del problema específico a tratar con dicho crawler.
Si bien el tema ha sido ampliamente explorado, no solo por la comunidad académica sino por las grandes multinacionales del software, es claro que los crawlers aún no presentan los resultados esperados. Este hecho se refleja, por ejemplo, en que la mayoría de los buscadores incluyen dentro de sus resultados, contenidos iguales bajo diferentes direcciones (urls), fuentes que no se corresponden al contexto deseado por el usuario y resultados que direccionan a sitios que han dejado de existir. Situaciones que pueden obedecer a cualquiera de los componentes propios de los crawlers como son los métodos de indexación (ya que se repite una misma fuente), los métodos de recorrido, la frecuencia del recorrido, los métodos de proximidad para saber si dos páginas o elementos digitales son iguales, o los métodos para identificar cual es la fuente real. Lo anterior permite concluir que el tema de los crawlers amerita continuar su investigación.
REFERENCIAS BIBLIOGRÁFICAS
Este trabajo está autorizado por una Licencia Attribution-NonCommercial-NoDerivs CC BY-NC-ND.