UNIVERSIDAD NACIONAL DE ASUNCION Facultad Politécnica Extracción Automática de Conocimiento WEB MINING PARA EXTRACCION DE CONOCIMIENTO ESTRUCTURADO Alumno: Edgar Luis Báez Ruíz Díaz. Tutor: Dr. Prof. Gustavo Daniel Sosa Cabrera. 2 Web Mining es la aplicación del data mining a los sitios web, para la extracción y descubrimiento automático de información y conocimiento. Dependiendo del tipo de web a procesar, web mining se divide en tres grandes categorías: contenido, estructura y uso. El análisis de estos datos permite a las instituciones signicativas mejoras en la estructura y contenido de los sitios web corporativos, así como la aplicación de complejos sistemas informáticos destinados a personalizar la experiencia de los usuarios. El presente articulo muestra una revisión cientíco-técnica de los fundamentos del web mining, sus principales técnicas, métodos y algoritmos, con especial atención a aquellos que permiten extrapolar las preferencias de navegación de los usuarios. Resumen Keywords: ning. 1. Web Mining · Data Mining · Algoritmos · Machine Lear- Introducción L a minería de datos de la Web (denominada comúnmente por su nombre en ingles Web Mining) es un área de las Ciencias de la Computación que involucra el uso de técnicas y acercamientos basados en la minería de datos Data Mining orientados al descubrimiento y extracción automática de información de documentos y servicios de la Web. La Minería Web ha despertado gran interés en la actualidad, particularmente debido a los avances de la comunidad cientíca en distintas lineas de investigación relacionadas con la Minería de Datos orientados a las paginas Web. Se ha potenciado fuertemente en virtud del gran aumento en el volumen del tráco, tamaño y complejidad de las fuentes de información disponibles y creciente interés en el desarrollo del comercio electrónico, por su siglas en inglés e-commerce . El proceso de recuperar datos a través del Web Mining (que podrían ser en linea o fuera de linea) pueden realizarse de fuentes disponibles en la web como boletines de noticias, grupos de noticias, documentos HTML, bases de datos, etc. Una vez que estos recursos han sido descubiertos comienza la etapa de selección y transformación de los datos recuperados en información procesada, las transformaciones pueden consistir en remover palabras, cadenas, o realizar un pre-procesamiento que apunte a obtener una representación adecuada de la información. Posteriormente se tiene una etapa de generalización donde típicamente son usadas técnicas de Minería de Datos y Aprendizaje de Máquina (Machine Learning). Minería de Datos es un proceso de extracción no trivial de información implícita, previamente desconocida y potencialmente útil a partir de grandes volúmenes de datos (por ejemplo, para capturar el comportamiento de usuarios a partir de un archivo bitácora). Aprendizaje de Maquina involucra distintas técnicas y algoritmos de aprendizaje para automatizar la extracción de conocimiento a partir de grandes conjuntos de datos (como por ejemplo el uso de 3 programas araña "spiders" en la web). Una araña web es un programa informático que escanea la web de forma automática, leyendo todo lo que encuentra, analizando la información y clasicando la misma en la base de datos o indices del buscador. Los analistas juegan un rol importante en el proceso de descubrimiento de conocimiento debido que esta es un medio interactivo, este hecho es importante al momento de validar e interpretar la información obtenida. Con el tiempo se han perfeccionado las diversas técnicas de automatización en el proceso, recurriendo a técnicas avanzadas de indexación, algoritmos de búsquedas altamente ecientes y la utilización de agentes inteligentes para la paralelización de consultas y extracción de información. Formalizar adecuadamente el procedo es un desaó por la gran diversidad de formatos existentes y la necesidad de evitar redundancias en la manipulación y representación de la información, este trabajo sintetiza los principales aspectos de una linea de investigación que se ha comenzado a desarrollar para abordar estos problemas. 2. Web Mining L a tarea de Data Mining es la búsqueda o extracción de conocimiento de grandes conjuntos de datos. Usualmente estos están representados en bases de datos. Para descubrir conocimiento se usa diversas técnicas tales como aprendizaje automático, estadística y visualización de la información obtenida. La aplicación de estas técnicas para descubrir y extraer automáticamente información se conoce como Web Mining [1]. La Web pude ser una vista como un gran conjunto de datos que en general se dene como una enorme, diversa y dinámica colección de documentos hipertextuales entrelazados. En consecuencia podemos aplicar técnicas de Data Mining para la búsqueda y extracción de conocimiento. Entre las más destacadas podemos mencionar: Clasicación [2]: El descubrimiento de reglas de clasicación permite de- sarrollar un perl de items que pertenecen a un grupo particular de acuerdo a los atributos que tienen en común. Este perl puede luego ser usado para clasicar nuevos items de datos que son añadidos a la base de datos. En el caso particular de Web Mining, las técnicas de clasicación, por ejemplo, permiten desarrollar un perl de clientes quienes acceden a archivos particulares de un servidor basado en sus patrones de acceso. Reglas de Asociación [3]: Estas proveen un mecanismo útil para descubrir correlaciones, por ejemplo, entre items que pertenecen a transacciones 4 de clientes en una base de datos comercial. En la Web, este problema equivale a descubrir las correlaciones entre referencias a diversos archivos disponibles en un servidor por un cliente dado. Cada transacción esta constituida por un conjunto de hipervínculos accedidos por un cliente en una visita a un servidor. Descubrir este tipo de reglas puede ayudar a una organización en el comercio electrónico a desarrollar estrategias de marketing mas efectivas. Además, reglas descubiertas de bitácoras de accesos, pueden proveer una mejor indicación de como organizar un sitio Web. Episodios Frecuentes [4]: Esta técnica trata de encontrar patrones en- tre transacciones tales que la presencia de un conjunto de items es seguido por otro ítem, en el conjunto de transacciones ordenadas por estampillas de tiempo. En general, en los servidores Web, la visita de un cliente es registrada por un periodo de tiempo. El descubrimiento de patrones secuenciales en bitácoras de acceso a un servidor web permite a organizaciones predecir patrones de navegación de usuarios y ayudar en futuras estrategias de marketing, por ejemplo, a que grupos dirigir las diversas ofertas y promociones. Por el análisis de esta información, puede determinar relaciones temporales entre items de datos. 3. Web Mining en Función de los Datos S egún los datos a ser analizados, Web Mining se divide en tres categorías: Minería Web por Contenidos (Web Content Mining): Es el proceso de extraer el conocimiento de los contenidos de los documentos o sus descripciones. Minería Web por Estructura (Web Structure Mining): Es el proceso de inferir conocimiento de la organización de la Web. Minería Web por Uso (Web Usage Mining): Es el proceso de extraer patrones interesantes a partir de archivos de bitácora (log les) que contengan información sobre el comportamiento de un usuario en relación a su interacción con la Web. Este proceso no es trivial por lo cual podemos identicar distintas subtareas: Descubrimiento de Recursos: La búsqueda de las fuentes o la recupera- ción de información (RI) consiste en la extracción automática de los documentos relevantes, mientras que se asegura al mismo tiempo, tanto como sea posible, que las irrelevantes no sean considerados. El proceso de RI principalmente incluye la representación del documento, uso de índices y búsqueda de documentos. 5 El gran número de páginas en la web, su dinamismo, y la actualización frecuente hace a las técnicas de uso de índices aparentemente imposible. En la actualidad, existen cuatro enfoques para poner índices a los documentos en la web: índice humano o manual, índice automático, índice inteligente o basado en agentes e índice basado en metadatos. Los futuros sistemas de descubrimiento de las fuentes harán uso de la tecnología de categorización de texto automática para clasicar los documentos de la web en categorías. Esta tecnología podría facilitar la construcción automática de directorios de la web como Google, que localiza documentos y los presenta en categorías. Alternativamente, esta tecnología podría ser usada para ltrar los resultados de consultas a los índices de búsqueda. Los estudios en RI incluyen la modelación, desarrollo de interfaces con el usuario, visualización de los datos, y ltros [5]. Un estudio más detallado de RI en la web está disponible en [6]. Extracción de Información: Una vez los documentos se han recuperado, el desafío es extraer conocimiento automáticamente y otras informaciones requeridas sin la interacción humana. La extracción de la información (EI) es la tarea de identicar fragmentos especícos de un documento que constituyen su contenido semántico fundamental. Hasta ahora, los principales métodos de EI involucran codicación de la escritura (wrappers) que asigna los documentos a algún modelo de datos. Los wrappers actúan como interfaces de cada fuente de datos, proporcionando una semiestructura a aquellas fuentes no estructuradas o bien mapean la estructura de datos original en la búsqueda de un patrón común [7]. Los métodos wrapper, aunque son ecaces para eliminar atributos irrelevantes y redundantes, son muy lentos, variando en cada ejecución el número de atributos, siguiendo algún criterio de búsqueda y de parada [8]. Otro método para la EI del hipertexto se describe en [30] donde cada página responde a un conjunto de preguntas estándares. Por consiguiente, el problema es la identicación de los fragmentos de texto que responden a esas preguntas especícas. La EI tiene como objetivo extraer el nuevo conocimiento de los documentos recuperados en la estructura y representación del documento mediante la conversión en mayúsculas, teniendo en cuenta que los expertos de RI consideran que el texto del documento es una bolsa de palabras y no prestan atención a la estructura del documento. La escalabilidad es el mayor desafío más aún para los expertos de EI; no es factible construir sistemas de EI que sean escalables al tamaño y dinamismo de la web. Por tanto, la mayoría de los sistemas de EI extraen información de sitios especícos y se enfocan en 6 áreas denidas. Algunos de los agentes inteligentes de la web han sido desarrollados para buscar información relevante usando características de un dominio particular (y posiblemente un perl de usuario) para organizar e interpretar la información descubierta. Es necesario un sistema de procesamiento robusto para extraer cualquier tipo de conocimiento, incluso a partir de bases de datos medianas. Cuando un usuario solicita una página web, se accede a una variedad de archivos como imágenes, sonido, vídeo, cgi ejecutables y html. Como resultado, el log del servidor contiene muchas entradas que son redundantes o irrelevantes para las tareas de minería. Esto signica, que estas entradas deben eliminarse a través del pre procesamiento. Una de las técnicas de pre procesamiento usadas para EI es el índice semántico latente, del inglés latent semantic index, que busca transformar los vectores del documento original a un espacio dimensional más bajo mediante el análisis de la estructura correlacional en esa colección del documento de modo que documentos similares que no comparten los mismos términos se colocan en la misma categoría (tema). Generalización: Una vez que se ha automatizado el descubrimiento y la extracción de la información procedente de los sitios web, el siguiente paso es tratar de generalizar a partir de la experiencia acumulada. Para ello, la minería web ha adaptado técnicas de minería de datos (reglas de asociación, agrupamiento, entre otras), de la RI (algunas técnicas para la categorización y la clasicación de textos) y ha desarrollado algunas técnicas propias, como por ejemplo el análisis de caminos, que ha sido usado para extraer secuencias de patrones de navegación desde archivos log [9]. Actualmente, la mayoría de los sistemas de aprendizaje desplegados en la web se dedican más a aprender acerca de los intereses de sus usuarios, en lugar de aprender sobre el propio contenido y organización de la web. El problema del etiquetado es un obstáculo importante cuando se aprende sobre la web, ya que los datos son abundantes pero no están etiquetados [10]. Algunas técnicas, como las pruebas de incertidumbre, reducen la cantidad de datos no etiquetados necesarios, pero no eliminan el problema del etiquetado. Un enfoque para resolver este problema se basa en el hecho de que la web es mucho más que una colección enlazada de documentos, es un medio interactivo. Por ejemplo, A hoy [13] toma como entrada el nombre de una persona y su aliación y se intenta localizar la página principal (homepage) de esa persona, de esta forma se le pregunta a los usuarios acerca de las páginas recuperadas, para etiquetar sus respuestas como correctas o incorrectas [11]. 7 Las técnicas de agrupamiento (clustering) no requieren las entradas etiquetadas y se han aplicado con éxito a las grandes colecciones de documentos. De hecho, la web ofrece un terreno fértil para investigaciones de agrupamientos y clasicación de documentos. Las reglas de asociación también son una parte íntegra de esta fase. Básicamente, las reglas de asociación son expresiones del tipo X ⇒ Y , donde X e Y son conjuntos de elementos X ⇒ Y expresa que siempre que una transacción T contenga a X entonces probablemente T también contiene a Y . La probabilidad o conanza de la regla se dene como el porcentaje de transacciones que contienen a Y y además a X en relación con el total de transacciones que contienen a X Análisis y Validación: En [12] se explica que en el caso de la minería web los datos pueden ser obtenidos desde el lado del servidor, del cliente, de los servidores proxy o de la base de datos corporativa de la entidad a la cual pertenece el sitio. Desde este punto de vista, los datos encontrados en un sitio web en particular, pueden ser clasicados en tres tipos predominantes, véase la Figura 1: Figura 1. Contenido: Son los datos reales que se entregan a los usuarios. Es decir, los datos que almacenan los sitios web, los cuales consisten generalmente en textos e imágenes u otros medios. Este tipo de dato es el más importante y difícil de procesar, por ser multimedial. Estructura: Son los datos que describen la organización del contenido en el interior de un sitio. Esto incluye, la organización dentro de una página, la distribución de los enlaces tanto internos al sitio como externos, y la jerarquía de todo el sitio. 8 4. Uso o Utilización: Son aquellos datos que describen el uso al cual se ve sometido un sitio, registrado en los logs de acceso de los servidores web. Web Mining con PYTHON L as pruebas se han realizado con Python 3.11 y Visual Studio Code 1.85. 4.1. Web Scraping con BeautifulSoup 1 2 3 4 5 6 7 8 9 10 11 12 13 14 import requests r = requests . get ( " https :// www . ultimahora . com " ) # print ( r . text ) import re result = re . findall ( ' <a .*? href ="(.*?) " .*? > ', r . text ) print ( result ) # result = result . split ( ' , ') for i in result : print ( i ) fp = open ( ' ultima_hora_links . txt ' , 'w ') for i in result : fp . write ( i ) fp . write ( '\ n ') fp . close () Resultado Parcial en Figura 2: Figura 2. 9 4.2. Análisis de Sentimientos con vaderSentiment 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 # import SentimentIntensityAnalyzer class # from vaderSentiment . vaderSentiment module . from vaderSentiment . vaderSentiment import SentimentIntensityAnalyzer # funcion para imprimir un setnimiento # desde una sentencia def sentiment_scores ( sentence ) : # Creamos el objeto SentimentIntensityAnalyzer . sid_obj = SentimentIntensityAnalyzer () # polarity_scores metodo de SentimentIntensityAnalyzer # El objeto da un diccionario de sentimientos . # que contine las puntuaciones # pos , neg , neu , and compuesta . sentiment_dict = sid_obj . polarity_scores ( sentence ) print ( " El diccionario de sentimientos general es : " , sentiment_dict ) print ( " Sentencia fue calificada como " , sentiment_dict [ ' neg ' ]*100 , " % Negativo ") print ( " Sentencia fue calificada como " , sentiment_dict [ ' neu ' ]*100 , " % Neutral " ) print ( " Sentencia fue calificada como " , sentiment_dict [ ' pos ' ]*100 , " % Positivo ") print ( " Sentencia calificada en general como " , end = " " ) # decidir el sentimiento como # positivo , negativo y neutral if sentiment_dict [ ' compound '] >= 0.05 : print ( " Positivo " ) elif sentiment_dict [ ' compound '] <= - 0.05 : print ( " Negativo " ) else : print ( " Neutral " ) # Driver code if __name__ == " __main__ " : print ( " Sentencia 1 : " ) sentence = " Geeks For Geeks is the best portal for the computer science engineering students . " # function calling 10 43 44 45 46 47 48 49 50 51 sentiment_scores ( sentence ) print ( " Sentencia 2 : " ) sentence = " study is going on as usual " sentiment_scores ( sentence ) print ( " Sentencia 3 : " ) sentence = "I am very sad today . " sentiment_scores ( sentence ) Resultado en Figura 3: Figura 3. 4.3. Análisis de Reglas de Asociación con Apriori 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 from mlxtend . preprocessing import TransactionEncoder from mlxtend . frequent_patterns import apriori , association_rules import pandas as pd # Datos de ejemplo ( transacciones ) transacciones = [[ ' pan ' , ' leche ' , ' huevos '] , [ ' leche ' , ' cafe '] , [ ' pan ' , ' leche ' , ' cafe '] , [ ' pan ' , ' cafe ' ]] # Codificacion de transacciones te = TransactionEncoder () te_ary = te . fit ( transacciones ) . transform ( transacciones ) df = pd . DataFrame ( te_ary , columns = te . columns_ ) 11 16 17 18 19 20 21 22 23 24 # Aplicar algoritmo Apriori frecuentes = apriori ( df , min_support =0.5 , use_colnames = True ) # Generar reglas de asociacion reglas = association_rules ( frecuentes , metric = " confidence " , min_threshold =0.5) # Imprimir las reglas print ( " Reglas de Asociacion : ") print ( reglas ) Resultado en Figura 4: Figura 4. 5. Conclusiones L as características de la World Wide Web y la necesidad de obtener distintos tipos de información de la misma, presentan un nuevo desafío relativo tanto a los métodos de recuperación de información tradicionales como a las técnicas aplicadas para analizar los datos registrados por los servidores. Se puede observar que en ambos aspectos todavía existen bastantes deciencias en la recolección y análisis de los datos. La minería de uso de la web puede aportar una información valiosa, tanto a los gestores de servicios de información como a los proveedores de comercio electrónico. Esta tecnología, utilizada ampliamente en el mundo del marketing convencional tiene en la web unas aplicaciones potentes e inmediatas. La gran cantidad de datos que se acumulan en los cheros log de los servidores, unidos a los datos de ventas es una fuente de información que no se debe despreciar. Técnicas como el agrupamiento automático de clientes, la clasicación de los usuarios y la personalización de servicios, permiten tomar una posición en el mercado que puede diferenciar a una empresa de sus competidores. El comercio electrónico induce a la introducción de las nuevas tecnologías como un paso natural del comercio tradicional, entre ellas la minería web que analiza los patrones de navegación de los usuarios. Los sistemas de recomendación integran gran variedad de características requeridas en el negocio del comercio electrónico (marketing, tratamiento personalizado del cliente, acceso a grandes bases de datos). La personalización contribuye a incrementar las relaciones de delidad y conanza del usuario en el negocio virtual. La privacidad 12 de los datos de los usuarios constituye un punto importante a resolver en los sistemas de recomendación de ahí la importancia del análisis de los perles de usuarios. El uso de agentes, conjuntos difusos, algoritmos genéticos, entre otros mecanismos, han sido aplicados con éxito en la minería web. Referencias 1. Etzioni, O. The world-wide web: Quagmire or gold mine? Communications of the ACM 39, 11 (1996), 65-68. 2. Han, J. W., Cai, Y. D., and Cercone, N. Data-driven discovery of quantitative rules in relational databases. Ieee Trans. On Knowledge And Data Engineering 5 (Feburary 1993), 29-40. 3. Rakesh Agrawal, T. I., and Swami, A. Mining association rules between sets of items in large databases. In SIGMOD-93 (May 1993), pp. 207-216. 4. Mannila, H., Toivonen, H., and Verkamo, A. I. Discovering Frequent Episodes in Sequences. In Proc. of the 1st International Conference on Knowledge Discovery and Data Mining (KDD-95) (Montreal, Canada, August 1995), U. M. Fayyad and R. Uthurusamy, Eds., AAAI Press. 5. Baeza-Yates, R., Ribiero-Neto, B.: Modern Information Retrieval. Readings, MA, Addison-Wesley Longman, 1999. 6. Kobayashi, M., Takeda, K.: Information retrieval on the web. ACM Computing Surveys (CSUR), vol. 32, 2, 144-173, June 2000. 7. Aldana, J.F., Gómez, A.C., Roldán, M.M., Moreno, N., Nebro, A.J.: Metadata functionality for semantic web integration. Proceedings of the Seventh International of the International Society of Knowledge Organization (ISKO'02) Conference, July 10-13, 2002, Granada. 8. Borges, J., Levene, M.: Mining navigation patterns with hypertext probabilistic grammars. Research Note RN/99/08, Department of Computer Science, University College London, Gower Street, London, UK, February 1999. 9. Hernández-Orallo, J., Ramírez, M.J., Ferri, C.: Introducción a la minería de datos. Pearson Educación, S.A., Madrid, 2004. 10. Breiman, L.: Bagging predictors. Machine Learning, Kluwer Academic Publishers, Boston, Manufactured in The Netherlands, vol. 24, 2, 123-140, 1996. 11. Cachero, C., Gómez, J., Pastor, O.: Modelando aspectos de navegación y presentación en aplicaciones hipermediales. Actas de la V Jornada de Ingeniería del Software y Base de Datos, Valladolid, España, Noviembre 2000. 12. Baeza-Yates, R., Poblete, B.: Una herramienta de minería de consultas para el diseño del contenido y la estructura de un sitio Web. I Congreso Español de Informática, Actas del III Taller de Minería de Datos y Aprendizaje (TAMIDA'2005), 13-16 septiembre 2005, Granada, España, Thomson, 39-48, ISBN 84-9732-449-8. 13. Etzioni, O., Shakes, J., Langheinrich, M.: Ahoy! The homepage nder. Proceedings of the 6th WWW Conference, April 1997, Santa Clara, California.