HACIA LA RECUPERACION DE INFORMACIÓN ESPECIFICA DE LA WEB a a Delia Irazú Hernández Farías , Luis Ernesto Mancilla Espinoza , J. Guadalupe Ramos Díaz b a División de Estudios de Posgrado e Investigación, Instituto Tecnológico de León, Avenida Tecnológico S/N, C.P. 37290, dirazuherfa@hotmail.com, lmancilla01@hotmail.com. b Departamento de Sistemas y Computación. Instituto Tecnológico de La Piedad, Av. Tecnológico No. 2000, La Piedad, Mich., México C.P. 59300, jgramos@pricemining.com RESUMEN: Encontrar información de interés particular, en páginas web, con el fin de elaborar reportes significativos es un problema típico de la Web. Para encarar este reto ha surgido la línea de estudio de las ciencias computacionales denominada “recuperación de información”, del inglés information retrieval (IR), cuyo fin es el descubrimiento de información específica a partir de grandes volúmenes de datos. En el caso de la Web existen estándares tales como: XML, OWL, RDF y otros más ligeros como: Microdata, RDFa y Microformatos que permiten agregar metadatos a los documentos web y que han dado lugar a la Web Semántica. Tales metadatos etiquetan el contenido de las páginas web de modo que se posibilita la recuperación de información específica. Sin embargo, existen millones de páginas que no contienen metadatos y para las cuales tales estándares no constituyen una solución. En este sentido existen técnicas de computación suave (soft-computing) que permitirían clasificar documentos web para descubrir, por ejemplo, el tópico expuesto en un documento web. En el presente trabajo, introducimos una descripción acerca de los estándares de metadatos disponibles para recuperar información. Del mismo modo, explicamos cómo pueden ayudar las técnicas de computación suave en la recuperación de información. Finalmente, se documenta la integración de un rastreador de información de la Web que descarga páginas web para su análisis en una computadora local y que emplea tecnologías de código abierto. 1. INTRODUCCIÓN Por años, la búsqueda de información relevante a partir de la Web ha seguido un patrón típico: se consulta un servidor de búsqueda, se analizan los resultados devueltos y finalmente se discrimina la información que puede ser útil al usuario. Este proceso, eminentemente manual, es insuficiente para aprovechar la enorme cantidad de información presente en la Web. Teniendo en cuenta un enfoque moderno para llevar a cabo el filtrado de documentos web, se pueden explotar las anotaciones (etiquetas XHTML) presentes en la Web Semántica, ya que éstas contienen suficientes descriptores a partir de sus metadatos. Sin embargo, existe gran cantidad de documentos web que no tienen tales anotaciones. Consideramos que la incorporación de métodos de clasificación automática de texto (que no requieren anotaciones semánticas), permitirían encontrar páginas web asociadas a un tema específico y reducir el espacio de búsqueda. Así pues, el uso o mejoramiento de técnicas de clasificación para descubrir información más específica, tal como un producto con un posible precio, marca o características es un tema de interés general. Creemos que ambas aproximaciones deberían considerarse en una herramienta de extracción de información de la Web. El presente trabajo forma parte una tesis de Maestría en Ciencias en Ciencias Computacionales que está en desarrollo. En las secciones que siguen se enumeran las tecnologías que emplean metadatos, después se presenta un resumen acerca de métodos de clasificación de texto y finalmente, se menciona un ejercicio de integración de un rastreador de páginas web que formará parte, en un futuro, de un sistema para recuperación de información de la Web. 2. DEFINICIÓN Y RECUPERACIÓN DE INFORMACIÓN EMPLEANDO METADATOS El uso de metadatos está asociado a la Web Semántica, donde se define como objetivo fundamental que los contenidos web incluyan metadatos que describan la información incorporada en las páginas web1, para agregar significado y relaciones a los datos. La Web Semántica permite la extracción precisa de información a partir del aprovechamiento de sus metadatos. Entre las tecnologías para la Web Semántica sobresalen estándares tales como el lenguaje extensible de marcado (XML del inglés extensible markup language), el marco de descripción de recursos (RDF del inglés Resource Description Framework) y el lenguaje de ontologías web (OWL del inglés Ontology Web Language). El primero proporciona un lenguaje de marcado de datos universal, el segundo es propiamente un subconjunto de XML especializado para la descripción de recursos de información y el tercero proporciona un medio para la definición de vocabularios formales (ontologías) para emplear en la descripción de recursos. Ejemplo 1: A continuación introducimos un ejemplo de un archivo escrito en RDF que describe información de una persona y en la derecha, parte de la definición formal del vocabulario empleado en la descripción (escrito en OWL y en RDF Schema, una extensión de RDF). Código RDF que describe contenido <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:foaf=http://xmlns.com/foaf/0.1/ xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"> <foaf:Person> <foaf:name>Juan Pérez</foaf:name> <foaf:mbox rdf:resource="mailto:jperez@dominio.com" /> <foaf:homepage rdf:resource="http://www.jperez.com/" /> <foaf:nick>Juanito</foaf:nick> <foaf:interest> <rdf:Description rdf:about="http://www.abc.org" rdfs:label = "ABC"/> </foaf:interest> <foaf:knows> <foaf:Person><foaf:name>Luz Pérez</foaf:name></foaf:Person> </foaf:knows> </foaf:Person> </rdf:RDF> Vocabulario FOAF (en OWL y RDFSchema) <rdfs:Class rdf:about="http://xmlns.com/foaf/0.1/Person" rdfs:label="Person" rdfs:comment="A person." vs:term_status="stable"> <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#Class"/> <rdfs:subClassOf> <owl:Class rdf:about="http://xmlns.com/foaf/0.1/Agent"/> </rdfs:subClassOf> <rdfs:subClassOf> <owl:Class rdf:about = "http://www.w3.org/2000/10/swap/pim/contact#Person"/> </rdfs:subClassOf> <rdfs:subClassOf> <owl:Class rdf:about = "http://www.w3.org/2003/01/geo/wgs84_pos#SpatialThing"/> </rdfs:subClassOf> ... </rdfs:Class> En el ejemplo, el archivo inicia con la anotación rdf:RDF para indicar que se trata de una marca XML para RDF. A continuación se introducen tres namespaces mediante la anotación xmlns. Las anotaciones namespace tienen el mismo sentido que en XML, es decir, indican el contexto en el cual dos prefijos (e.g., foaf) significan lo mismo, o mejor dicho, poseen la misma semántica. Por ejemplo, si el prefijo rdf se encuentra en dos archivos distintos, pero en cada caso, al declarar el namespace, hacen referencia a URIs (del inglés Uniform Resource Identifier) idénticos, entonces tienen la misma semántica en ambos archivos (namespaces diferentes indicarían significado distinto). Es común que el URI asignado al namespace haga referencia a alguna especificación asociada al prefijo, por ejemplo, http://xmlns.com/foaf/0.1/ apunta a la especificación de la ontología FOAF2 (del inglés Friend Of A Friend) que se emplea para describir datos y relaciones entre personas. Posteriormente, en el ejemplo, aparece un conjunto de etiquetas autoexplicativas que describen datos de la persona y sus relaciones con otras. Tales etiquetas forman parte del vocabulario FOAF. Recientemente, hay una tendencia hacia la incorporación de esquemas de marcado más ligeros como lo son: RDFa, Microdata y Microformatos3. RDFa es un subconjunto de RDF, Microdata es parte del estándar de HTML 5 y Microformatos es una iniciativa independiente impulsada por la empresa Technorati. Tales esquemas permiten incorporar fragmentos de información enriquecidos (rich snippets) que han dado lugar a la llamada web semántica en minúsculas4. A continuación un ejemplo: Microformatos Microdata RDFa <h2> Eventos académicos </h2> <div class="vevent"> Fecha: <span title="2011-05-18" class= "dtstart"> Del 18 al 20 de mayo </span> <span class="summary"> VIII Encuentro Participación de la Mujer en la Ciencia </span> <span class="location"> CIO, Centro de Investigación en Optica, León Gto. </span> <div class="description"> Es un evento que promueve la participación de la mujer en la ciencia y la difusión de sus trabajos científicos. </div> </div> <div itemscope itemtype= "http://data-vocabulary.org/Person"> <span itemprop="name">J. Guadalupe Ramos Díaz </span>, Y mi apodo es: <span itemprop="nickname"> joguar </span>. Soy <span itemprop="title"> Ingeniero en Sistemas Computacionales </span> y trabajo como. <span itemprop="role"> Profesor Investigador </span>. Del <span itemprop="affiliation"> Instituto Tecnológico de La Piedad </span>. </div> <div xmlns:p = http://rdf.data-vocabulary. org/# typeof = "p:Person"> <span property = "p:name"> J. Guadalupe Ramos Díaz </span>, Y mi apodo es: <span property="p:nickname"> joguar </span> Soy <span property="p:title"> Ingeniero en Sistemas Computacionales </span> y trabajo como <span property="p:role">Profesor Investigador</span> Del <span property="p:affiliation"> Instituto Tecnológico de La Piedad </span> </div> En los tres casos se emplean metadatos para describir el contenido que se presenta en una página web. A partir de tales descriptores es fácil rescatar el título, el rol, o la afiliación de una persona, o bien, determinar el resumen, localización o descripción de un evento. 3. TRATAMIENTO DE DOCUMENTOS WEB EN AUSENCIA DE METADADOS El problema general de clasificación está constituido por dos subproblemas que corresponden: primero, a determinar la clase a la que pertenece un objeto a partir de un conjunto de ejemplos de objetos cuya clasificación es conocida; y segundo, se tiene un conjunto de objetos sin ninguna agrupación y se desea determinar tanto el número de clases existente como a la que pertenece cada objeto. Podemos definir un sistema clasificador como un algoritmo que ubica nuevos objetos en una clase perteneciente a un conjunto finito definido previamente, con base en la observación de los atributos o características de los objetos. Las categorías a las que pertenecen los objetos pueden estar definidas de antemano, de forma que existen etiquetas asociadas a cada clase representando conceptos, en este caso, el aprendizaje realizado por el clasificador se considera como supervisado. Sin embargo, las clases existentes pueden ser desconocidas, por lo cual, el clasificador deberá determinarlas, efectuándose en este caso un aprendizaje no supervisado. Una de las principales etapas de un sistema de clasificación es la extracción de características o propiedades. La extracción de características es una de las etapas de la cual depende el desempeño del sistema de reconocimiento. El objetivo principal de esta etapa es extraer la información más discriminante eliminando la información innecesaria. La similitud entre las representaciones de dos objetos debe estar en relación directa con la similitud con la que se suelen percibir dichos objetos. Objetos de la misma clase deberían tener representaciones similares, mientras que objetos de clases distintas deberían tener representaciones claramente diferentes. El entrenamiento básicamente consiste en utilizar alguna forma de aprendizaje que le permita al sistema aprender características que formarán el conjunto de entrenamiento. La clasificación es la última etapa, donde el sistema determina a qué conjunto pertenece el nuevo vector. La Clasificación Automática de Textos tiene sus orígenes en IR y últimamente ha recibido más atención debido al incremento en la cantidad de información disponible en formato electrónico. Es por esta razón, que cada vez es mayor la necesidad de herramientas que ayuden a satisfacer las necesidades del usuario en cuanto a la información que busca, y además encontrar ésta en un tiempo adecuado. El objetivo de la clasificación automática de texto es categorizar documentos dentro de un número fijo de categorías predefinidas en función de su contenido. Un mismo documento puede pertenecer a una, varias, todas o ninguna de las categorías dadas. Cuando se utiliza aprendizaje automático, el objetivo es aprender a clasificar a partir de ejemplos que permitan hacer la asignación a la categoría automáticamente. La construcción de un Clasificador Automático de Texto comienza con la recopilación y clasificación manual de un conjunto de documentos (documentos de entrenamiento), después se llevan los documentos a una representación adecuada para que finalmente se puedan aplicar distintos algoritmos de clasificación y así obtener el clasificador. Para realizar la Clasificación de Texto, lo más importante es contar con una forma consistente de representarlo, de manera que esa representación pueda generarse de manera automática. Existen diferentes formas de efectuar dicha representación como lo son: el modelo vectorial y la estadística textual. A continuación se describen brevemente algunos de los métodos de clasificación más comúnmente utilizados en la clasificación de textos: kNN. El método de los k-vecinos o kNN es un método supervisado cuyo argumento principal es la distancia entre instancias o prototipos. El método consiste básicamente en comparar la nueva instancia a clasificar con los datos k más cercanos conocidos, y dependiendo del parecido entre los atributos el nuevo caso se ubicará en la clase que más se acerque al valor de sus propios atributos. La principal dificultad de este método consiste en determinar el valor de k, ya que si toma un valor grande se corre el riesgo de hacer la clasificación de acuerdo a la mayoría (y no al parecido), y si el valor es pequeño puede haber imprecisión en la clasificación a causa de los pocos datos seleccionados como instancias de comparación. La distancia es el criterio de comparación principal usado en los métodos basados en vecindad, por eso es conveniente mencionar algunas de las diferentes formas usadas para su medición. Entre las principales medidas de distancia que se utilizan encontramos: la Distancia Euclidiana, Manhattan, de Chebychev y de Mahalanobis. NaiveBayes. Es un clasificador estadístico que pueden predecir tanto las probabilidades del número de miembros de una clase, como la probabilidad de que una clase, como la probabilidad de que una muestra dada pertenezca a una clase particular. Este tipo de clasificadores, basados en el teorema de Bayes, han demostrado una alta exactitud y velocidad cuando se han aplicado a grandes bases de datos textuales. La principal razón de implementar el Teorema de Bayes en un problema de clasificación, es poder estimar las probabilidades a priori de cualquier hipótesis consistente con el conjunto de datos de entrenamiento para así escoger la más probable. Dado un ejemplo x, el clasificador se basa en encontrar la hipótesis más probable que describa ese ejemplo. Podemos estimar la probabilidad contando las veces que el ejemplo aparece en el conjunto de entrenamiento y dividiéndolo por el número total de ejemplos que forman este conjunto. Este clasificador asume que los valores de los atributos son condicionalmente independientes dado el valor de la clase. También asume que el efecto de un valor del atributo en una clase dada es independiente de los valores de los otros atributos. Esta suposición se llama independencia condicional de clase. 4. INTEGRACIÓN DE UN CRAWLER PARA DESCARGAR DOCUMENTOS WEB Para el análisis de contenido y recuperación de información de páginas web es necesario primero construir un rastreador (del inglés crawler) de páginas web. El rastredor inicia con un conjunto de URLs (del inglés Uniform Resource Locator), a partir de los cuales extrae y rastrea los hipervínculos existentes que coinciden con el nombre de dominio del URL inicial. De este modo descarga un conjunto de documentos web, que quedan listos para el análisis. En nuestro caso, descargamos el código libre de Yooreeka5, una librería para minería de datos que a su vez hace uso de un conjunto de módulos de tecnología Apache™ (Lucene™, NekoHTML, Xerces, HttpClient, Commons-logging, y Common-codec) que implementan un buscador de contenido web. Integramos Yooreeka en un proyecto en el entorno de desarrollo Netbeans, la interfaz se muestra enseguida. Indicamos como dirección de inicio: http://ciberconta.unizar.es/leccion/introduc/ 482.HTM, un documento que contiene información de agentes inteligentes. Enseguida se lanzó una consulta con la palabra “agente”, el resultado es el que se muestra abajo. Search results using Lucene index scores: Query: agente Document Title: Agentes inteligentes, por Carlos Serrano, Universidad de Zaragoza (España) Document URL: http://www.ciberconta.unizar.es/leccion/INTRODUC/482.HTM --> Relevance Score: 0.036573372781277 5. CONCLUSIONES En el presente trabajo se ha presentado un marco teórico compuesto por un lado, por estándares asociados a la Web Semántica y por otro, técnicas de computación suave de clasificación de texto. Ambos fundamentos constituyen un punto de partida acerca de los programas que se deben construir para la extracción de información específica de la Web. Hemos introducido un ejercicio de integración de un proyecto de código abierto (Yooreeka) para el rastreo de páginas web. El rastreo es propiamente el primer módulo que se requiere en una herramienta para buscar información de la Web. La literatura y tecnologías analizadas hasta el momento evidencian la relevancia del tema y permiten concebir como posibles nuevas aplicaciones de análisis de información con un uso potencialmente comercial. BIBLIOGRAFÍA 1. T. Berners-Lee, J. Hendler, and O. Lassila, “The Semantic Web”, Scientific American Magazine, May 2001. 2. L. Yu, Introduction to the Semantic Web and Semantic Web Services. Chapman & Hall/CRC, 2007. 3. Google, “Rich snippets (microdata, microformats, and RDFa)”, Google webmaster central, 2011, http://www.google.com/support/webmasters/bin/answer.py?answer=99170 4. R. Khare, “Microformats: The Next (Small) Thing on the Semantic Web?,” IEEE Internet Computing, vol. 10, no. 1, pp. 68–75, 2006. 5. H. Marmanis, D. Babenko, "yooreeka: A library for data mining, machine learning, soft computing, and mathematical analysis", 2011, http://code.google.com/p/yooreeka/ 6. René Venegas, Clasificación de textos académicos en función de su contenido léxicosemántico. Revista Signos V. 40, N. 63. Valparaíso, Chile. 7. Carlos G. Figuerola, José L. Alonso Berrocal, Ángel F. Zazo Rodríguez, Emilio Rodríguez, Algunas técnicas de Clasificación Automática de Documentos. Universidad de Salamanca. Grupo REINA. 8. Juan Etxeberría, Eduardo García, Javier Gil, Gregorio Rodríguez, Análisis de Datos y Textos, Editorial RAMA.