Full text
ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA INFORMÁTICA GRADO EN INGENIERÍA INFORMÁTICA CLASIFICADOR SEMÁNTICO DE MEDIOS SOCIALES MEDIANTE ANÁLISIS BASADO EN EXPRESIONES: APLICACIÓN A BLOGS Y DIARIOS SEMANTIC CLASSIFIER OF SOCIAL MEDIA BY ANALYSIS BASED ON EXPRESSIONS: APPLICATION TO BLOGS AND JOURNALS Realizado por Ramón Guevara Quesada Tutorizado por Dr. José Ignacio Peláez Sánchez Departamento Lenguajes y Ciencias de la Computación UNIVERSIDAD DE MÁLAGA MÁLAGA, (diciembre 2014) Fecha defensa: El Secretario del Tribunal
4
Resumen y palabras claves La reputación corporativa es la percepción que los diferentes públicos de una empresa tienen acerca de la misma. Estos públicos o stakeholders, son aquellos que se relacionan con la empresa de cualquier manera, pudiéndose distinguir entre públicos internos, empleados, accionistas, directivos, …; y públicos externos, clientes, proveedores, fondos de inversión, …. En los últimos años estamos presenciando como las empresas e instituciones dedican importantes esfuerzos a desarrollar políticas de Reputación Corporativa, ya que una disminución de la reputación redunda directamente en la cuenta de resultados de las compañías por lo que las mejoras que se introduzcan en la gestión de la reputación redundaran directamente en su sostenibilidad económica y social del país donde operan. Para poder medir la RC de una empresa o institución es preciso determinar el sentimiento que dicha empresa o institución tiene en sus públicos. Pero llevar a cabo esta medición es cada día más difícil, ya que la sociedad de la información donde estamos inmersos, hace que los canales de comunicación de los públicos sean mucho mayores que hace unos años( redes sociales, blog, diarios, foros, …) y además, la comunicación puede hacerse casi en tiempo real, tal como sucede en las redes sociales. Para hacer estas mediciones, las principales empresas del sector han utilizado principalmente encuestas las cuales las realizaban empresas especializadas, lo que supone un alto coste y además, los resultados son obtenidos a tiempo pasado o no se alcanza un tamaño de población significativa. El objetivo de este trabajo es realizar una aplicación para determinar la reputación de una empresa en medios de comunicación online. Para ello, se ha desarrollado un sistema de lectura de medios online, que permite localizar y extraer la información de los medios de comunicación online; un clasificador semántico para analizar la información recogida y clasificarla en diferentes temáticas extrayendo el sentimiento de los textos; y finalmente, una interfaz para interactuar con el usuario. Palaras claves: Reputación corporativa, RC, análisis semántico, clasificador semántico, diario, blog, stakeholders, Alva in Depth, RepTrak®, TRI * M, Eclipse, JBoss Tools, Hibernate, ROME, Netbeans, Glassfish, SQL Server 2012, social media, web 2.0, sentiment, información, interfaz, RSS, público, empresa, Merco, Expresiones, big data, Java, JSP. 5
Corporate reputation is the perception different public have of a company. These public are those that relate to the company in any way, they being able to distinguish between internal audiences, employees, shareholders, directors, ...; and external audiences, customers, suppliers, investment funds .... In recent years we are witnessing how businesses and institutions devote significant efforts to develop policies of corporate reputation, since a decrease of reputation directly affects the bottom line of the companies making the improvements introduced in the management of reputation redound directly to their economic and social sustainability of the country where they operate. To measure the RC of a company or institution must determine the sentiment that the company or institution has on its publics. But to perform this measurement is becoming increasingly difficult, as the information society in which we operate, makes the communication channels of the public are much greater than a few years ago( social networking, blogs, journals, forums, ...) and also, the communication can be done in near real time, such as in social networks. To make these measurements, the major companies have used mainly surveys conducted by specialized companies, which implies a high cost and also the results are obtained last time or no significant population size is achieved. The objective of this work is an application to determine the reputation of a company in online media. To do this, we have developed a system for reading online media, enabling you to locate and extract information from online media; semantic classifier to analyze and classify the information collected in different thematic extracting the text sentiment ; and finally, an interface for user interaction. Keywords: Corporate Reputation, CR, semantic analysis, SEMANTIC CLASSIFIER, journal, blog, stakeholders, Alva in Depth, RepTrak®, TRI * M, Eclipse, JBoss Tools, Hibernate, ROME, Netbeans, Glassfish, SQL Server 2012, social media, web 2.0, sentiment, information, interface, RSS, public, company, Merco, Expressions, big data, Java JSP. 6
Índice de contenido 1. Introducción.............................................................................................................11 1.1 Motivación del proyecto.....................................................................................11 1.2 Estudio del arte..................................................................................................12 1.2.1 Introducción.................................................................................................12 1.2.2 Big Data.......................................................................................................14 1.2.3 La reputación online....................................................................................15 1.2.4 Análisis de sentimiento................................................................................16 1.2.5 Herramientas para medir reputación corporativa.......................................18 1.2.5.1 Reputation Institute: RepTrak®............................................................18 1.2.5.2 BuzzMometer.......................................................................................20 1.2.5.3 Empresas mundiales más admiradas..................................................21 1.2.5.4 Review 200...........................................................................................21 1.2.5.5 Worlds Most Respected Companies....................................................21 1.2.6 Herramientas para gestionar la reputación corporativa..............................22 1.2.6.1 TRI * M..................................................................................................22 1.2.6.2 Alva in Depth........................................................................................25 1.3. Estructura de la memoria..................................................................................27 2. Especificación y requisitos......................................................................................28 2.1 Nuestra propuesta.............................................................................................28 2.2 Requisitos funcionales:......................................................................................33 3. Implementación.......................................................................................................34 3.1 Base de Datos...................................................................................................34 3.1.1 Modelo Entidad-Relación............................................................................34 3.2 Captura de la información..................................................................................43 3.2.1 Herramientas de desarrollo.........................................................................43 3.2.1.1 Eclipse..................................................................................................43 3.2.1.4 JBoss Tools(Hibernate Tools)...............................................................44 3.2.1.3 Hibernate..............................................................................................45 3.2.1.4 ROME...................................................................................................45 3.2.2 Desarrollo de las clases y el módulo..........................................................46 3.3 Tratamiento de la información...........................................................................48 3.3.1 Herramientas de desarrollo.........................................................................48 3.3.1.1 Eclipse..................................................................................................48 3.3.2 Desarrollo de las clases y el módulo..........................................................49 3.4 Visualización de la información.........................................................................53 3.4.1 Herramientas de desarrollo.........................................................................53 3.4.1.1 Netbeans..............................................................................................53 3.4.1.2 Glassfish...............................................................................................53 4.Conclusiones ...........................................................................................................55 5. Bibliografía...............................................................................................................56 Anexo I. Generar tablas base de datos.......................................................................57 7
Índice de figuras Figura 1. Partes interesadas de una empresa............................................................15 Figura 2. Reputación online........................................................................................20 Figura 3. Reputation Institute y RepTrak®.................................................................22 Figura 4. Modelo Reptrak®.........................................................................................23 Figura 5. Datos RepTrak.............................................................................................24 Figura 6. BuzzMometer. Rastreo de la información....................................................24 Figura 7. Merco Empresas..........................................................................................26 Figura 8. TRI * M Stakeholders..................................................................................27 Figura 9. TRI * M Index 88.........................................................................................28 Figura 10. Alva in Depth..............................................................................................29 Figura 11.Analisis reputacional de una compañía. Fuente: Alva................................31 Figura 12. Esquema sistema.......................................................................................32 Figura 13. Ejemplo RSS..............................................................................................34 Figura 14. Tabla valoraciones ....................................................................................36 Figura 15. Significado RC...........................................................................................36 Figura 16. Pantalla principal interfaz...........................................................................37 Figura 17. Pantalla reputación interfaz.......................................................................38 Figura 18. Modelo Entidad-Relación...........................................................................39 Figura 19. Descarga de eclipse...................................................................................50 Figura 20. Descarga de hibernate...............................................................................51 Figura 21. Descarga de ROME...................................................................................52 Figura 22. Configuración Hibernate............................................................................53 Figura 23. Hibernate.cfg.xml.......................................................................................53 Figura 24. Generación automática de ficheros de mapeo Hibernate.........................54 Figura 25. Página de descarga de NetBeans IDE 8.0................................................62 Figura 26. Gráficos interfaz.........................................................................................63 8
9
1. Introducción 1.1 Motivación del proyecto La reputación corporativa (RC) es la percepción que tienen los diversos públicos que interactúan con la empresa entre los que se pueden distinguir los accionistas, clientes, empleados y otros grupos de interés. Estas percepciones son el resultado del comportamiento desarrollado por la empresa a lo largo del tiempo y describe su capacidad para cubrir las expectativas y aportar valor a los mencionados grupos. La pérdida de RC impacta directamente en los resultados de las compañías, por lo que las mejoras que se introduzcan en la gestión de su RC redundan directamente en su sostenibilidad y en la del país donde operan. Por este motivo, son cada vez más las empresas que se preocupan por generar una buena RC con sus públicos, lo que les está llevando a desarrollar políticas que integran en su desempeño la responsabilidad social, la ética empresarial, el buen gobierno corporativo, las relaciones sostenibles y de confianza, la calidad en los procesos, que impactan en el negocio (cuestiones medioambientales, normativas, del mercado, etc.) y modelos de desarrollo profesional entre otros. La aparición de la web 2.0 ha permitido a los internautas convertirse en un participante activo en cuanto a la creación de contenido, dando lugar a una sociedad que participa, comunica y genera contenido. Algunas de las fuentes de información (también llamados fuentes sociales) que han surgido son los blogs, las wikis y las redes sociales (social media), prensa digital, etc. El desarrollo de la Web 2.0 en la red de redes a diferencia de la Web de finales del siglo pasado, destaca en que los individuos pueden tener tanta importancia como las empresas o los medios de comunicación. Este entorno en el que lo importante son las personas, está teniendo una influencia cada día mayor en la sociedad y en la economía tal y como las conocemos. Según datos de un estudio realizado por el INE sobre la Sociedad de la Información, el 80% de los contenidos existentes en Internet en los años noventa estaba creado por empresas y medio de comunicación y que tan sólo el 20% restante había sido creado por los usuarios. Además, el objetivo de la Web se centraba en ser prácticamente una galería comercial con anuncios, escaparates y tiendas. La participación del usuario final era mínima, algo que ha cambiado mucho. La incorporación de las TIC (Tecnologías de la Información y la Comunicación) a la gestión empresarial mejora la competitividad y consigue una imagen mucho más sólida e innovadora de cara al exterior. La apuesta consiste en saber adoptar una nueva cultura empresarial, coherente, por supuesto, con la era de Internet y con las nuevas tecnologías que facilitan el posicionamiento en el mercado de distintas empresas. Los medios sociales son ricos en la influencia y la interacción entre pares y con una audiencia pública que es cada vez más «inteligente» y participativa. El medio social es un conjunto de plataformas digitales que amplía el impacto del boca a boca y también lo hace medible y, por tanto, rentable por medio de la mercadotecnia de 10
medios sociales y el CRM social. Los responsables de comunidad se encargan de crear y cuidar las comunidades en torno a las empresas generando contenido de valor, creando conversación, animando a las personas a participar, monitorizando la presencia en la red de las marcas, etc. Los medios sociales han cambiado la comunicación entre las personas, y entre las marcas y las personas. Esto ha llamado la atención de las empresas, ya que estas fuentes de información se han convertido en un lugar de donde sacar las opiniones que tiene el público hacia su empresa( ya sean sus productos, política, etc). Estas opiniones juegan un papel crucial en la toma de decisiones, ya que cuando adquirimos un producto o servicio lo hacemos influenciados por las opiniones de los demás usuarios y la experiencia que han tenido con estos. De todo esto nace el concepto de ‘clasificador semántico’ o ‘minería de opinión’, que consiste en el uso de la inteligencia artificial para obtener de forma automática información útil acerca de las opiniones, preferencias y tendencias de los usuarios de las redes sociales. Usando estás técnicas se puede extraer las opiniones de: - Eventos sociales. - Movimientos o partidos políticos. - Estrategias comerciales de empresas. - Imagen de marca. - Productos y servicios. - Personalidades relevantes. - Etc. Una vez extraída la información la minería de opinión también permite valorarla cuantitativamente, de manera que podemos saber si se está hablando de forma positiva, negativa o neutra y también ser capaces de medir la intensidad de dicha opinión. La dificultad en la minería de opinión radica en que las opiniones al estar escritas en lenguaje natural es necesario un gran conocimiento de las reglas semánticas de un idioma, así como de la sintaxis, el léxico y la gran variabilidad existente en los mensajes informales. Esta característica hace que las herramientas existentes no tengan todavía el rendimiento deseado ni puedan aplicarse indistintamente a diferentes idiomas. 1.2 Estudio del arte 1.2.1 Introducción El concepto de reputación corporativa hizo su primera aparición en 1983, presentado por la revista Fortune en su ranking de las empresas más admiradas. En paralelo, comenzaron a identificarse los distintos públicos que evalúan el accionar de una empresa y que unos años después darían lugar al concepto de stakeholders. El estudio del tejido social de la empresa, y su creciente complejidad, se convertía en tema de discusión en el ámbito del management. Stakeholders es un término inglés utilizado por primera vez por Edward Freeman en 11
Es una herramienta que permite monitorizar y analizar la actividad de cualquier marca en la web, desde social media (twitter, facebook) como diarios online, blogs, foros, etc. Algunas de sus características: •Rastrea información de más de 70 millones de fuentes •Permite clasificar la información por fuente, región y género •Analiza el sentimiento de la información recogida Figura 6. BuzzMometer. Rastreo de la información 1.2.5.3 Empresas mundiales más admiradas Desde el año 1987 la consultora Hay Group y la revista Fortune han publicado un ranking de las empresas más admiradas del mundo, que se agrupan en sectores. Esta clasificación se aplica a las empresas con ingresos de un mínimo de 8.000 millones de dólares y la muestra es creado por 10.000 directores y analistas de la compañía. Las dimensiones evaluadas son: la innovación, la calidad de la gestión, el valor de la inversión a largo plazo, la RSE (responsabilidad social empresarial) en la comunidad y en sus alrededores, la capacidad de atraer talento, el servicio y la calidad del producto, la estabilidad financiera, el uso inteligente de los activos y la capacidad de hacer negocios a nivel mundial . 1.2.5.4 Review 200 Este monitor se ocupa de las principales compañías asiáticas y ha sido desarrollado desde 1993 por Far Eastern Economic Review, con la colaboración de DHL Worldwide y AC Nielsen Internacional (Hong Kong). La metodología empleada es una encuesta de opinión / encuesta de los lectores de Far Eastern Economic Review y los editores de las cinco revistas de negocios más importantes de este continente. Los atributos RC medidos son: el servicio al cliente, producto y servicio de calidad, salud financiera, valor de inversión a largo plazo y la innovación. 18
1.2.5.5 Worlds Most Respected Companies Este ranking fue publicado por primera vez en 1998 y ofrece dos tipos de información: en la primera Detallan las compañías más respetadas y en la segunda se examinan los más respetados jefes de empresa. Los atributos por los que se mide la reputación corporativa son: la creación de valor, la integridad y la responsabilidad social corporativa (RSC). 1.2.5.6 Merco empresas Este monitor, fue desarrollado por la firma de consultoría Villafañe y Asociados, que ofrece información acerca de la reputación de las empresas en España y América del Sur en un nivel global y local. La Reputación Corporativa se mide con base en seis dimensiones: resultados económico-financieros, la calidad del producto-servicio, la cultura corporativa y calidad laboral, ética y responsabilidad social, dimensión global y presencia internacional e innovación. En la siguiente figura se pueden observar las mejores empresas según 7 tipos de público o stakeholders (directores y analistas, sindicatos, organizaciones no gubernamentales, medios de comunicación, líderes de opinión, expertos en materia de RSE y los consumidores). Figura 7. Merco Empresas 1.2.6 Herramientas para gestionar la reputación corporativa Las empresas, además de alimentarse de la información obtenida anualmente de los monitores antes mencionados, requieren herramientas que faciliten la toma de decisiones al establecer políticas y estrategias de RC centradas en cada uno de sus públicos estratégicos. Este párrafo se refiere a las principales herramientas utilizadas para la gestión de la reputación corporativa. Ellos son: RepTrak, TRI * M y Alva. Todos ellos han sido desarrollados por empresas de consultoría con una amplia experiencia en el estudio de la reputación corporativa Además, un estudio comparativo se llevó a cabo para comprender cuáles son sus fortalezas y debilidades en la actualidad. 1.2.6.1 TRI * M Desarrollado por la consultora TNS, TRI * M (O'Gorman y Pirner, 2006) es una herramienta que se utiliza para apoyar la reputación en términos de medición, gestión y supervisión o el control de las relaciones con los públicos estratégicos de la compañía. La evaluación de las tendencias a largo plazo de las diferentes 19
unidades de negocio y la identificación de los puntos fuertes en las relaciones con cada uno de sus públicos o stakeholders. TRI * M tiene a su disposición una base de datos de más de 1.000 empresas en todo el mundo, que les permite hacer un análisis comparativo e interpreta los resultados de cada estudio. Con más de 6.000 estudios y más de 10 millones de entrevistas que permite la identificación del público al que la empresa debe dirigir sus acciones para mejorar su RC. Figura 8. TRI * M Stakeholders Figura 9. TRI * M Index 88 20
1.2.6.2 Alva in Depth Desarrollado por la empresa de consultoría Alva (Alva, 2011), es una herramienta para gestionar la reputación de empresa; que permite la medición de la RC, ver que asuntos afectan actualmente a la empresa, la comparación de la RC de la empresa con su sector ya sea a nivel mundial, nacional o regional. Figura 10. Alva in Depth Esta herramienta establece reputación de la empresa mediante el análisis de la misma, las fuentes y los sectores de la reputación. El análisis se lleva a cabo sobre una base global utilizando fuentes más allá de los medios de comunicación, dando una amplia comprensión de las percepciones que tienen los stakeholders. Cerca de un millón de piezas de contenido se procesan diariamente y se actualiza cada 60 segundos. Cuenta con un gran número de fuentes a su disposición; social media, los medios de comunicación tradicionales, publicidad, análisis de expertos, informes de agentes, analistas financieros, encuestas de opinión pública, estudios, datos. También permite analizar la reputación corporativa de un sector, por lo que permite a las organizaciones comparar su reputación con la de sus competidores, contextualizando así su comportamiento y resultados. Por otra parte, esta herramienta proporciona a la compañía una comprensión más profunda de las siguientes áreas con el fin de gestionar su reputación: 1. Mediante el análisis de una serie de atributos, los aspectos del desempeño de la empresa que afectan a su reputación son identificados, así como las zonas de las que proceden y de las medidas necesarias que deben adoptarse con el fin de mejorar el rendimiento. 21
2. La herramienta permite la gestión de los temas de riesgo ante una crisis corporativa. 3. El sistema muestra los puntos de reputación individual de cada empresa y por sectores. En la figura se pueden observar las tendencias y los movimientos del sector y de la empresa de una manera más estructurada mediante el seguimiento de fuentes distintas. Figura 11.Analisis reputacional de una compañía. Fuente: Alva 1.3. Estructura de la memoria Dividimos la memoria en varios apartados: •Un primer apartado donde se habla nuestra propuesta y lo que vamos a desarrollar, explicando cada uno de los distintos apartados que compone nuestro proyecto •Luego en el apartado de implementación se explica las herramientas de desarrollo que se han utilizado, librerías y algunos detalles más. También se explicará la base de datos así como el modelo entidad-relación usado como base de la aplicación. •Conclusiones donde se destaca todo lo que hemos aprendido en el desarrollo del TFG, así como algunas pautas de por donde debería seguir en un futuro. 22
2. Especificación y requisitos 2.1 Nuestra propuesta Nuestra propuesta es desarrollar un sistema que se encargue de calcular la reputación corporativa de una empresa en internet. Para calcular la RC necesitamos tener a disposición un conjunto de datos, los cuales el sistema también se encargará de obtenerlo. Para facilitar la tarea hemos dividido nuestro sistema en tres módulos/niveles que explicaremos a continuación: •Captura de información: Se encarga de capturar información de las empresas a través de la web, para luego ser guardada en una base de datos. •Tratamiento de la información: Haciendo uso de la información guardada en la base de datos, aplicamos un clasificador semántico que se va a encargar de evaluar el sentimiento de cada información para luego poder calcular la reputación de cada empresa con la información analizada. •Visualización de la información: Crear una interfaz gráfica para visualizar el resultado obtenido. Estos módulos son independientes entre sí, cuyo único punto en común es la conexión a la misma base de datos, por lo que en la memoria dedicaremos un capítulo exclusivo explicando la implementación para cada uno de estos módulos. Figura 12. Esquema sistema 2.1.1 Captura de información Este módulo es el que se encargará nutrir nuestro sistema de la información necesaria su funcionamiento. Hemos estado barajando distintos social media desde donde obtener la información que nutrirá a nuestro sistema y nos hemos quedado con la prensa digital por las 23
siguientes razones: Facilidad para recoger datos: la mayoría de los diarios tienen implementado en sus webs RSS para compartir el contenido web, por lo que facilita la recolección automática de la información sin tener el cuenta el diseño de la página web. Analisis semántico: La forma de escribir en estos medios y en la redes sociales son distintas por el tipo de usuario que escribe el mensaje. Mientras que en redes sociales se suele limitar mucho el lenguaje (faltas ortográficas, limitación en el número de palabras, etc) en diarios y blogs se suele escribir de una manera correcta, que facilita luego el análisis del texto. Por esto es que nos centraremos en los diarios digitales que ofrezcan el formato RSS para difundir la información. El RSS da toda la información de cada uno de las noticias que son publicadas en su web, así como de su título, cabecera, fecha de publicación, autor, etc… Nuestro sistema se encargará de filtrar los datos obtenidos de la lectura de RSS para obtener sólo las noticias que contengan en su título el nombre de alguna de las empresas guardadas en la base de datos y de la que queremos obtener su RC. Por ejemplo, si tenemos guardada en la base de datos la empresa Telefónica, una posible noticia podría ser: “La Fundación Santa María la Real y Telefónica unen fuerzas en la conservación del patrimonio”. 2.1.1.2 RSS RSS son las siglas de Really Simple Syndication, un formato XML para sindicar o compartir contenido en la web. Se utiliza para difundir información actualizada frecuentemente a usuarios que se han suscrito a la fuente de contenidos. El formato permite distribuir contenidos sin necesidad de un navegador, utilizando un software diseñado para leer estos contenidos RSS tales como Internet Explorer, entre otros (agregador). A pesar de eso, es posible utilizar el mismo navegador para ver los contenidos RSS. Las últimas versiones de los principales navegadores permiten leer los RSS sin necesidad de software adicional. RSS es parte de la familia de los formatos XML, desarrollado específicamente para todo tipo de sitios que se actualicen con frecuencia y por medio del cual se puede compartir la información y usarla en otros sitios web o programas. A esto se le conoce como redifusión web o sindicación web (una traducción incorrecta, pero de uso muy común). 24
Figura 13. Ejemplo RSS 2.1.2 Tratamiento de la información (análisis semántico basado en expresiones) Nuestro clasificador está basado en analizar en sentimiento del texto hacia un concepto, en nuestro caso ese concepto sería la que queremos valorar. Nuestro objetivo es valorar el sentimiento de las palabras que aparecen en el texto y que están relacionadas con la empresa. El primer paso es encontrar el concepto que queremos analizar. El primer módulo del sistema consistió en la búsqueda y captura de información en el que apareciera alguna de las empresas. En la base de datos tenemos asociado a que empresas está asociada cada información, por lo que el concepto al cual queremos analizar ya lo tenemos. El siguiente paso consiste en valorar las palabras que están relacionadas con la empresa, a este concepto le hemos dado el término de expresiones. El concepto de expresión es el mismo que el de expresión regular, es decir una secuencia de caracteres que forma un patrón de busqueda que se buscan dentro de un texto para analizar su sentimiento. Ejemplo de una expresión <ExprCOMPRAR>.*<AdjetivosBUENOS> le hemos dado tono positivo (+1). <ExprCOMPRAR> y <AdjetivosBUENOS> son etiquetas las cuales explicaremos a continuación. 25
Una etiqueta está formada por una serie de palabras asociados a una clase, como puede ser verbos positivos, adjetivos negativos, etc que ayudan a la construcción de las expresiones y se usan para facilitar el entendimiento de las expresiones. Por ejemplo para <AdjetivosBUENOS> la expresión asociada es: (renueva|renova[rc]| innova|mejora|moderniza|actualiza|descubr[ei]|inventa|perfecciona|reforma|progresa| inven[tc]|optimiza), es decir, un conjunto de adjetivos positivos. Ahora vamos a explicar el algoritmo para analizar un texto: •Realizamos un preprocesado del texto (quitar links, letras repetidas, tildes) •Luego se procede a contar el nº de empresas, expresiones encontradas y negaciones. •Si es un caso válido: ◦Ver la figura 14. •En otro caso ◦Dividir el texto en frases (usando los signos de puntuación) ◦Repetir desde el punto 2. ◦La valoración del texto es la suma de las valoraciones de todas las frases. Negacione s Empresas Expresiones Valoración 0 1 1 Tono de la expresión 0 >1 1 A todas la empresas se le asigna la empresa del texto 0 1 >1 A la empresa se le asigna la suma del tono de todas las expresiones Otro caso Implementación en un futuro Figura 14. Tabla valoraciones Si la valoración de un texto es mayor que 2, se deja en 2, para así evitar que el peso de un texto sea demasiado grande a la hora de calcular la reputación de una empresa, lo mismo para una valoración negativa (si es menor de -2 lo dejamos en -2). Para Calcular el RC de una empresa simplemente calculamos la media aritmética de todas las expresiones donde aparece la empresa o uno de sus sinónimos. En la siguiente tabla damos el significado del RC según su puntuación: Intervalo Significado [-2,-1] Muy negativo [-1,0] Negativo [0] Neutro [0,1] Positivo [1,2] Muy positivo Figura 15. Significado RC 26
2.1.3 Visualización de la información Este módulo está formado por una pequeña interfaz que muestra los resultados obtenidos por los dos módulos anteriores. La interfaz estará compuesto por varias pestañas: Una primera pantalla con un menú desplegable con distintas empresas que al seleccionar cualquiera de ellas podemos ver su reputación corporativa. Figura 16. Pantalla principal interfaz En la segunda pantalla se muestra dos gráficos. El primero muestra el número de noticias son positivas, es decir, que hablan bien de la empresa seleccionada y el número de noticias negativas. El segundo gráfica muestra la RC de la empresa. 27
Componentes Nombre Tipo Mult. Atributos ATR–09: Entidad_id ATR–10: Descripción Comentarios Ninguno ATR – 09 ENTIDAD:: Entidad_id Descripción Identificador único para cada entidad Tipo Entero Valor inicial Expresión Comentarios Clave primaria, auto-incremental ATR – 10 ENTIDAD:: Descripción Descripción Nombre o razón social de la empresa o entidad Tipo Cadena de caracteres Valor inicial Expresión Comentarios No nulo ENT – 05 EMPRESA Descripción Una EMPRESA es el tipo de ENTIDAD más importante en nuestro sistema. Supertipos ENTIDAD (ENT-04) Subtipos Componentes Nombre Tipo Mult. Atributos Comentarios Hereda la clave primaria de ENTIDAD ENT – 06 SINÓNIMO Descripción Son cada una de las expresiones alternativas/sinónimos que podemos encontrar en las distintas fuentes de información para referirnos a una misma ENTIDAD. Supertipos Subtipos Componentes Nombre Tipo Mult. 34
Atributos ATR–11: Sinónimo_id (clave primaria) ATR–12: Sinónimo ATR–13: Valoración Comentarios Es una entidad débil de ENTIDAD (ENT – 04) ATR – 11 SINÓNIMO:: Sinonimo_id Descripción Identificador único para cada sinónimo Tipo Entero Valor inicial Expresión Comentarios Clave primaria, auto-incremental ATR – 12 SINÓNIMO:: Sinonimo_str Descripción Nombre del sinónimo Tipo Cadena de caracteres Valor inicial Expresión Comentarios No nulo ATR – 13 SINÓNIMO:: Valoración Descripción Sentimiento del sinónimo. Ejemplo “Vomiestar” es negativo Tipo Entero Valor inicial Expresión Comentarios ENT – 07 ANTISINONIMO Descripción Son expresiones que al incluir el nombre de una entidad, parece que hace referencia a una entidad cuando en realidad no lo está haciendo. Por Ejemplo 'Cabina Telefónica' no está haciendo referencia a la empresa telefónica Supertipos Subtipos Componentes Nombre Tipo Mult. 35
Atributos ATR–14: Antisinonimo_str Comentarios Tiene un atributo para hacer referencia a la entidad a la que pertenece el antisinonimo (Entidad_id) ATR – 14 ANTISINONIMO:: Antisinonimo_str Descripción Nombre del antisinónimo Tipo Cadena de caracteres Valor inicial Expresión Comentarios Clave primaria ENT – 08 GRUPO Descripción Los distintos sectores a los que puede pertenecer una empresa. Por ejemplo telecomunicaciones, construcción, etc. Supertipos Subtipos Componentes Nombre Tipo Mult. Atributos ATR–15: Grupo_id ATR–16: Nombre Comentarios Ninguno ATR – 15 GRUPO:: Grupo_id Descripción Identificador único de cada grupo Tipo Entero Valor inicial Expresión Comentarios Clave primaria, autoincremental ATR – 16 GRUPO:: Nombre Descripción Nombre del sector al que puede pertenecer una entidad Tipo Cadena de caracteres Valor inicial Expresión Comentarios No nulo 36
ENT – 09 VALORACIÓN Descripción Contiene el sentimiento de la INFORMACIÓN una vez procesada Supertipos Subtipos Componentes Nombre Tipo Mult. Atributos ATR–17: Valoracion_id ATR–18: Valor ATR-24: Modo Comentarios Una valoración hace referencia a una información ATR – 17 VALORACIÓN:: Valoracion_id Descripción Identificador único de cada valoración Tipo Entero Valor inicial Expresión Comentarios Clave primaria, autoincremental ATR – 18 VALORACIÓN:: Valor Descripción Indica de 1 a 10 el sentimiento de la información valorada Tipo Entero Valor inicial Expresión Comentarios No nulo ATR – 24 VALORACIÓN:: Modo Descripción Indica si es una valoración manual o se ha usdo el método de expresiones. Valores: 1: Manual 2: Expresiones Tipo Entero Valor inicial Expresión 37
ENT – 10 EXPRESIÓN Descripción Contiene expresiones regulares que se buscan dentro de un texto para analizar su sentimiento, el sentimiento de un texto es la suma de todas las expresiones regulares encontradas en un texto. Ejemplo de una expresión <ExprCOMPRAR>.*<AdjetivosBUENOS> con un tono positivo (+1). El significado de <ExprCOMPRAR> y <AdjetivosBUENOS> lo veremos ahora en la tabla etiqueta, es decir, son etiquetas que a su vez son también expresiones regulares. Supertipos Subtipos Componentes Nombre Tipo Mult. Atributos ATR–19: Expresión_id ATR–20: Definición ATR–21: Tono Comentarios Ninguno ATR – 19 EXPRESIÓN:: Expresión_id Descripción Identificador único de cada expresión Tipo Entero Valor inicial Expresión Comentarios Clave primaria, autoincremental ATR – 20 EXPRESIÓN:: Definición Descripción Definición de la expresión Tipo Cadena de caracteres Valor inicial Expresión Comentarios No nulo ATR – 21 EXPRESIÓN:: Tono Descripción Sentimiento de la expresión Tipo Entero Valor inicial Expresión Comentarios No nulo 38
ENT – 01 ETIQUETA Descripción Son una serie de palabras asociados a una clase, como puede ser verbos positivos, adjetivos negativos, etc que ayudan a la construcción de las expresiones. Supertipos Subtipos Componentes Nombre Tipo Mult. Atributos ATR–22: Etiqueta_str ATR–23: Definicion Comentarios Ninguno ATR – 22 ETIQUETA:: Etiqueta_str Descripción Representa la clase de la etiqueta (verbos, adjetivos buenos, etc.) Tipo Cadena de caracteres Valor inicial Expresión Comentarios Clave primaria ATR – 23 ETIQUETA:: Definicion Descripción Expresión regular asociada a la etiqueta. Por ejemplo para <AdjetivosBUENOS> la expresión asociada es: (renueva|renova[rc]|innova|mejora|moderniza|actualiza| descubr[ei]|inventa|perfecciona|reforma|progresa| inven[tc]|optimiza), es decir, un conjunto de adjetivos positivos. Tipo Cadena de caracteres Valor inicial Expresión Comentarios No nulo 3.2 Captura de la información Comenzaremos explicando cómo hemos construido el módulo de nuestro sistema que se encarga de la recogida de información por las distintas webs. Para eso comencemos explicando las herramientas que hemos usado 3.2.1 Herramientas de desarrollo 39
3.2.1.1 Eclipse Es el entorno de desarrollo que hemos elegido para desarrollar el código de programación de este módulo, el cual te permite programar usando distintos lenguajes de programación como C, C++, Java, HTML. En nuestro caso hemos usado JAVA, por su gran uso y al ser el lenguaje de programación que más hemos usado a lo largo de la carrera, también nos resulta muy familiar. Eclipse es un programa informático compuesto por un conjunto de herramientas de programación de código abierto que puede ser descargado desde su página web https://www.eclipse.org/downloads/ De todas las versiones hemos elegido la versión standard la cual tiene todos los paquetes de Java necesarios para realizar el módulo más algunas librerías que le añadiremos y explicaremos a continuación (usaremos la versión 4.2 a diferencia de la que aparece en la imagen que es la 4.4, ya que es la versión que instalamos en su día en nuestro ordenador). Figura 19. Descarga de eclipse 3.2.1.4 JBoss Tools(Hibernate Tools) JBoss es un servidor de aplicaciones Java EE de código abierto implementado en Java puro. Al estar basado en Java, JBoss puede ser utilizado en cualquier sistema operativo para el que esté disponible la máquina virtual de Java. JBoss Inc., empresa fundada por Marc Fleury y que desarrolló inicialmente JBoss, fue adquirida por Red Hat en abril del 2006. 40
Las características destacadas de JBoss incluyen : •Producto de licencia de código abierto sin coste adicional. •Cumple los estándares. •Confiable a nivel de empresa •Incrustable, orientado a arquitectura de servicios. •Flexibilidad consistente •Servicios del middleware para cualquier objeto de Java. •Soporte completo para JMX. Para el proyecto se ha usado Jboss Tools, el cual es es un conjunto de plugins para Eclipse que complementa, mejora y va más allá del apoyo que existe para JBoss y las tecnologías relacionadas en la distribución por defecto Eclipse. Uno de los módulos que componen Jboss Tools es Hibernate Tools, 3.2.1.3 Hibernate Hibernate es la librería que hemos elegido para poder operar con la base de datos usando código JAVA. Hibernate es una herramienta de Mapeo objeto-relacional (ORM) para la plataforma Java (y disponible también para .Net con el nombre de NHibernate) que facilita el mapeo de atributos entre una base de datos relacional tradicional y el modelo de objetos de una aplicación, mediante archivos declarativos (XML) o anotaciones en los beans de las entidades que permiten establecer estas relaciones. Hibernate es software libre, distribuido bajo los términos de la licencia GNU LGPL, el cual puede ser descargado desde el siguiente enlace http://hibernate.org/orm/downloads/. Figura 20. Descarga de hibernate 41
3.2.1.4 ROME ROME es una librería para Java usada para leer y generar contenido en formato RSS, es un software de código abierto bajo la licencia Apache 2.0. . ROME puede ser descargado desde el siguiente enlace http://rometools.github.io/rome/ROMEReleases/ROME1.0Release.html. Figura 21. Descarga de ROME 3.2.2 Desarrollo de las clases y el módulo Ahora explicaremos las clases más importantes que hemos desarrollado para nuestra aplicación. El primer grupo de clases son las clases que forman el modelo de la base de datos, hay que crear una clase por cada entidad de la base de datos. La siguiente clase corresponde con la clase leerRSS.java, que es la clase que se encarga de leer los distintos RSS de las páginas. Clases Modelo base de datos: Con ayuda de Hibernate Tools, creamos la conexión a la base de datos: Figura 22. Configuración Hibernate 42
La forma de configurar hibernate es usando el fichero XML de configuración llamado hibernate.cfg.xml. Este fichero deberemos guardarlo en el paquete raíz de nuestras clases Java, en este fichero contiene distintos datos como la conexión de la base de datos y los archivos usados para el mapeo de entidades (en el siguiente párrafo indicamos como se generan). Figura 23. Hibernate.cfg.xml El último paso es generar los archivos .java y hbm.xml para realizar el mapeo de las tablas de base de datos a clases de java. Figura 24. Generación automática de ficheros de mapeo Hibernate 43
Figura 25. Página de descarga de NetBeans IDE 8.0 3.4.1.2 Glassfish GlassFish es un servidor de aplicaciones de software libre desarrollado por Sun microsystems, compañía adquirida por Oracle Corporation, que implementa las tecnologías definidas en la plataforma Java EE y permite ejecutar aplicaciones que siguen esta especificación. Es gratuito, de código libre y se distribuye bajo un licenciamiento dual a través de la licencia CDDL y la GNU GPL. La versión comercial es denominada Oracle GlassFish Enterprise Server (antes Sun GlassFish Enterprise Server). GlassFish está basado en el código fuente donado por Sun y Oracle Corporation; este último proporcionó el módulo de persistencia TopLink. GlassFish tiene como base al servidor Sun Java System Application Server de Oracle Corporation, un derivado de Apache Tomcat, y que usa un componente adicional llamado Grizzly que usa Java NIO para escalabilidad y velocidad. Glassfish es el servidor de aplicaciones que usaremos para conectarnos a nuestra BBDD, viene de serie cuando se instala NetBeans IDE 8.0 3.4.1.3 JfreeChart JFreeChart es un marco de software open source para el lenguaje de programación Java, el cual permite la creación de gráficos complejos de forma simple. Esta libería es la que se ha usado para crear los gráficos que aparecen en la página web. 50
Figura 26. Gráficos interfaz 51
4.Conclusiones Conclusiones del Trabajo Desarrollado En este trabajo se ha desarrollado un sistema de para determinar la reputación de las empresas en medios de comunicación online. Para ello se ha desarrollado un sistema de lectura de medios online, que permite localizar y extraer la información de los medios de comunicación online; un clasificador semántico que analizar la información recogida y la clasifica en diferentes temáticas extrayendo el sentimiento de los textos; y finalmente, una interfaz para interactuar con el usuario. Se ha desarrollado un sistema de lectura de información en medios de información online, en concreto el sistema lee información de diarios y blog de información general, a través del sistema RSS que incorporan dichos medios. De manera que se extraiga la información de los titulares y cabecera de las noticias. Una vez que la información se ha extraído el sistema pasa dicha información al sistema de clasificación semántica. Se ha desarrollado un clasificador semántico que analiza el sentimiento de la información y la clasifica como información positiva, neutra o negativa. El sistema está basado en el método de expresiones y tiene un porcentaje de acierto de tonalidad del 85%. Finalmente, se ha desarrollado una interfaz para el sistema que permite gestionar los procesos anteriormente descritos de manera amigable para el usuario. Conclusiones del Proceso de Aprendizaje Personal A nivel personal he encontrado interesante las siguientes actividades: Poner en práctica el conocimiento adquirido en la carrera a la hora de desarrollar este trabajo: Hemos tenido la oportunidad de usarlos conocimiento adquiridos a través de distintas asignaturas de la carrera, por ejemplo: Planificación de un proyecto, aprendizaje computacional, base de datos, programación, etc); y ponerlos a trabajar en grupo. Estudiar un nuevo campo como es la reputación corporativa: Cada vez va cobrando más importancia y eso se puede ver en cómo muchas consultoras y agencias han creado departamentos para la gestión de la reputación y la monitorización online. Ser capaces de desarrollar e implementar un clasificador semántico que analice el sentimiento de la información obtenida para luego poder calcular la reputación corporativa de una empresa. Desarrollar sistema de lectura para medios comunicación online. 52
5. Bibliografía Una de las fuentes principales de bibliografía es la web de Hibernate. De donde he sacado toda la información para aprender a manejar la librería (http://hibernate.org/orm/documentation/). También he usado la bibliografía de Java para despejar dudas referentes al código (http://download.oracle.com/javase/6/docs/api/overview-summary.html). Bibliografías que me han sido útiles a la hora de desarrollar el TFG: [1] - Ana María Casado, José Ignacio Peláez (2014). Intangible Management Monitors and Tools: Trends in the International Companies. [2] - Leonard J Ponzi, Charles J Fombrun and Naomi A Gardberg (2011). RepTrak™ Pulse: Conceptualizing and Validating a Short-Form Measure of Corporate Reputation. [3] - Ana Maria Casado, José Ignacio Peláez and Juan Cardona. Managing Corporate Reputation: a perspective on the Spanish market. [4] - Alicia Vaquero Collado (2011). La reputación online en el marco de la comunicación corporativa. Una visión sobre la investigación de tendencias y perspectivas profesionales [5] - Dolores Alonso y Victoria Pino. Reputación corporativa https://www.iae.edu.ar/antiguos/Documents/Revista21/iae21_65a66.pdf [6] - Indurkhya N., Damerau F.J. (eds.) Handbook of natural language processing (2ed., CRC, 2010)(ISBN 9781420085921) 53
Anexo I. Instrucciones DDL generar tablas en SQL Server 2012. A continuación el código necesario para generar las tablas en SQL Server 2012, la explicación de las tablas puede ser encontrada en el apartado 3.1.1 del TFG. CREATE TABLE ANTISINONIMO ( Antisinonimo_str VARCHAR (100) NOT NULL , Sinonimo_id SMALLINT , CONSTRAINT Antisinonimo_PK PRIMARY KEY CLUSTERED (Antisinonimo_str) WITH ( ALLOW_PAGE_LOCKS = ON , ALLOW_ROW_LOCKS = ON ) ON "default" ) ON "default" GO CREATE TABLE ENTIDAD ( Entidad_id INTEGER NOT NULL , Identidicador VARCHAR (900) NOT NULL , CONSTRAINT entidad_PK PRIMARY KEY CLUSTERED (Entidad_id) WITH ( ALLOW_PAGE_LOCKS = ON , ALLOW_ROW_LOCKS = ON ) ON "default" ) ON "default" GO CREATE TABLE ETIQUETA ( Etiqueta_str NVARCHAR (300) NOT NULL , Definición NVARCHAR (MAX) NOT NULL , CONSTRAINT Etiqueta_PK PRIMARY KEY CLUSTERED (Etiqueta_str) WITH ( ALLOW_PAGE_LOCKS = ON , ALLOW_ROW_LOCKS = ON ) ON "default" ) ON "default" GO 54
CREATE TABLE EXPRESION ( Expresión_id SMALLINT NOT NULL , Definición VARCHAR (MAX) NOT NULL , Tono SMALLINT , CONSTRAINT Expresion_PK PRIMARY KEY CLUSTERED (Expresión_id) WITH ( ALLOW_PAGE_LOCKS = ON , ALLOW_ROW_LOCKS = ON ) ON "default" ) ON "default" GO CREATE TABLE FUENTE ( Fuente_id BIGINT NOT NULL , Descripción VARCHAR (1000) NOT NULL , CONSTRAINT Fuente_PK PRIMARY KEY CLUSTERED (Fuente_id) WITH ( ALLOW_PAGE_LOCKS = ON , ALLOW_ROW_LOCKS = ON ) ON "default" ) ON "default" GO CREATE TABLE NOTICIA ( Informacion_id BIGINT NOT NULL , Fecha DATE NOT NULL , Hora TIME , Titulo VARCHAR (1000) NOT NULL , Cabecera TEXT , URL VARCHAR (300) NOT NULL , Fuente_id BIGINT NOT NULL , CONSTRAINT noticia_PK PRIMARY KEY CLUSTERED (Informacion_id) WITH ( ALLOW_PAGE_LOCKS = ON , ALLOW_ROW_LOCKS = ON ) ON "default" ) 55
ON "default" GO CREATE TABLE RSS ( URL VARCHAR (500) NOT NULL , Fuente_id BIGINT NOT NULL , CONSTRAINT RSS_PK PRIMARY KEY CLUSTERED (URL) WITH ( ALLOW_PAGE_LOCKS = ON , ALLOW_ROW_LOCKS = ON ) ON "default" ) ON "default" GO CREATE TABLE Relation_10 ( SINONIMO_Sinonimo_id SMALLINT NOT NULL , NOTICIA_Informacion_id BIGINT NOT NULL , CONSTRAINT Relation_10_PK PRIMARY KEY CLUSTERED (SINONIMO_Sinonimo_id, NOTICIA_Informacion_id) WITH ( ALLOW_PAGE_LOCKS = ON , ALLOW_ROW_LOCKS = ON ) ON "default" ) ON "default" GO CREATE TABLE SINONIMO ( Sinonimo_id SMALLINT NOT NULL , Sinonimo_str VARCHAR (100) NOT NULL , Valoración SMALLINT , Entidad_id INTEGER NOT NULL , CONSTRAINT SINONIMO_PK PRIMARY KEY CLUSTERED (Sinonimo_id) WITH ( ALLOW_PAGE_LOCKS = ON , ALLOW_ROW_LOCKS = ON ) ON "default" ) 56
ON "default" GO CREATE TABLE VALORACION ( valoración_id BIGINT NOT NULL , valor FLOAT , Entidad_id INTEGER NOT NULL , Informacion_id BIGINT NOT NULL , modo SMALLINT , CONSTRAINT valoracion__PK PRIMARY KEY CLUSTERED (valoración_id) WITH ( ALLOW_PAGE_LOCKS = ON , ALLOW_ROW_LOCKS = ON ) ON "default" ) ON "default" GO CREATE UNIQUE NONCLUSTERED INDEX VALORACION__IDX ON VALORACION ( Informacion_id ) ON "default" GO ALTER TABLE Relation_10 ADD CONSTRAINT FK_ASS_1 FOREIGN KEY ( SINONIMO_Sinonimo_id ) REFERENCES SINONIMO ( Sinonimo_id ) ON DELETE NO ACTION ON UPDATE NO ACTION GO ALTER TABLE Relation_10 ADD CONSTRAINT FK_ASS_2 FOREIGN KEY ( NOTICIA_Informacion_id ) REFERENCES NOTICIA ( Informacion_id 57
) ON DELETE NO ACTION ON UPDATE NO ACTION GO ALTER TABLE VALORACION ADD CONSTRAINT Relation_13 FOREIGN KEY ( Informacion_id ) REFERENCES NOTICIA ( Informacion_id ) ON DELETE NO ACTION ON UPDATE NO ACTION GO ALTER TABLE SINONIMO ADD CONSTRAINT Relation_14 FOREIGN KEY ( Entidad_id ) REFERENCES ENTIDAD ( Entidad_id ) ON DELETE NO ACTION ON UPDATE NO ACTION GO ALTER TABLE NOTICIA ADD CONSTRAINT Relation_15 FOREIGN KEY ( Fuente_id ) REFERENCES FUENTE ( Fuente_id ) ON DELETE NO ACTION ON UPDATE NO ACTION GO 58
ALTER TABLE RSS ADD CONSTRAINT Relation_16 FOREIGN KEY ( Fuente_id ) REFERENCES FUENTE ( Fuente_id ) ON DELETE NO ACTION ON UPDATE NO ACTION GO ALTER TABLE ANTISINONIMO ADD CONSTRAINT Relation_2 FOREIGN KEY ( Sinonimo_id ) REFERENCES SINONIMO ( Sinonimo_id ) ON DELETE NO ACTION ON UPDATE NO ACTION GO ALTER TABLE VALORACION ADD CONSTRAINT Relation_5 FOREIGN KEY ( Entidad_id ) REFERENCES ENTIDAD ( Entidad_id ) ON DELETE NO ACTION ON UPDATE NO ACTION GO 59