informe tesis mgf n°4 - entregable mti · ¿ºÇ¶Ãĺµ²µ ì´¿º´² ¶µ¶Ãº´À...

36
Universidad Técnica Federico Santa María Departamento de Informática Magíster en Tecnologías de la Información 1 Búsqueda, Descubrimiento y Análisis de Sentimientos en Twitter de la Institución Marcela González Figueroa Centro de Informática y Computación de la Armada Subida Artillería S/N, Valparaíso, Región de Valparaíso [email protected] Resumen: Utilizando técnicas de Análisis de Sentimientos en español e inglés, se desarrolla indicador de “Reputación de la institución en Twitter”, extrayendo la data (tweets) con API gratuita de esta Red Social: Tweepy. Los pasos llevados a cabo son extraer automáticamente la información, para luego limpiarla, clasificarla y transformarla en conocimiento respecto de la reputación que tiene la institución en Twitter. Este conocimiento pretende medir y apoyar la toma de decisiones tendientes a conseguir una buena imagen pública, lo cual constituye parte fundamental de la evaluación que hacen los stakeholders de la institución. Para resolver el problema planteado se utiliza herramienta de código abierto NLTK y Vader y a su vez análisis experto realizado por personas, empleando modo stand alone tanto para extracción de información como para su análisis. Dado que la medición de reputación de la institución ya es realizada por empresas externas y personas, se plantea llegar a resultados similares a los registrados por ellas, pero utilizando una herramienta automatizada como Vader. Con este propósito y dado que Vader está desarrollado nativamente en idioma inglés, se realiza dos análisis, uno con Vader en español y otro con Vader en inglés que ocupa tweets traducidos de español a inglés. Palabras Clave: Búsqueda y descubrimiento de información, Análisis de Sentimientos, NLTK, tweepy, Vader. 1 Introducción Contexto, motivación y problemática. La institución para la que se desarrollará el indicador de "Reputación de la Armada de Chile en Twitter" mediante técnicas de “Búsqueda, descubrimiento y Análisis de Sentimientos en Twitter” es la Armada de Chile, la cual es una institución dependiente del Gobierno y de naturaleza pública. Como parte de las tareas habituales de la Dirección de Comunicaciones de la Armada se debe analizar reputación de la organización y presentar los resultados mensualmente al Alto Mando. Es de vital importancia que se esté al tanto del acontecer nacional que vincula a la institución de forma rápida, segura y certera en todo momento. La contribución más importante del desarrollo de este modelo es aportar rapidez, alta disponibilidad y apoyo en el análisis de reputación de la organización en redes sociales, de manera de no tener que esperar resultados obtenidos de análisis manual hecho por seres humanos. Sin embargo, no se descarta uso de análisis por parte de seres humanos, pero apoyado por la herramienta automática. Los resultados obtenidos de este trabajo son de interés de la organización y de sus stakeholders, debido a que se trata de una institución pública con responsabilidad social hacia el país, que debe asegurar una correcta gestión beneficiando a la comunidad. Por otro lado, las técnicas informáticas de Análisis de Sentimiento han tendido a crecer en su uso general por parte de organizaciones, ya que permiten sensar opiniones del "mercado", de manera rápida respecto de temas de interés, por ejemplo, en áreas como posicionamiento de la organización y marcas (marketing). Este tipo de análisis es un área de investigación del Procesamiento del Lenguaje Natural que cuenta con más de 15 años de desarrollo y va en aumento tanto en el país como en el extranjero gracias, en parte, a la disponibilidad de herramientas que permiten

Upload: others

Post on 28-May-2020

7 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Informe Tesis MGF N°4 - Entregable MTI · ¿ºÇ¶Ãĺµ²µ ì´¿º´² ¶µ¶Ãº´À ²¿Å² ²Ã ² ¶Á²ÃŲ¾¶¿ÅÀ µ¶ ¿·ÀþÍź´² ²¸ ÄŶà ¶¿

Universidad Técnica Federico Santa María

Departamento de Informática Magíster en Tecnologías de la Información

1

Búsqueda, Descubrimiento y Análisis de Sentimientos en Twitter de la Institución

Marcela González Figueroa

Centro de Informática y Computación de la Armada Subida Artillería S/N, Valparaíso, Región de Valparaíso

[email protected]

Resumen: Utilizando técnicas de Análisis de Sentimientos en español e inglés, se desarrolla indicador de “Reputación de la institución en Twitter”, extrayendo la data (tweets) con API gratuita de esta Red Social: Tweepy. Los pasos llevados a cabo son extraer automáticamente la información, para luego limpiarla, clasificarla y transformarla en conocimiento respecto de la reputación que tiene la institución en Twitter. Este conocimiento pretende medir y apoyar la toma de decisiones tendientes a conseguir una buena imagen pública, lo cual constituye parte fundamental de la evaluación que hacen los stakeholders de la institución. Para resolver el problema planteado se utiliza herramienta de código abierto NLTK y Vader y a su vez análisis experto realizado por personas, empleando modo stand alone tanto para extracción de información como para su análisis. Dado que la medición de reputación de la institución ya es realizada por empresas externas y personas, se plantea llegar a resultados similares a los registrados por ellas, pero utilizando una herramienta automatizada como Vader. Con este propósito y dado que Vader está desarrollado nativamente en idioma inglés, se realiza dos análisis, uno con Vader en español y otro con Vader en inglés que ocupa tweets traducidos de español a inglés. Palabras Clave: Búsqueda y descubrimiento de información, Análisis de Sentimientos, NLTK, tweepy, Vader.

1 Introducción

Contexto, motivación y problemática.

La institución para la que se desarrollará el indicador de "Reputación de la Armada de Chile en Twitter" mediante técnicas de “Búsqueda, descubrimiento y Análisis de Sentimientos en Twitter” es la Armada de Chile, la cual es una institución dependiente del Gobierno y de naturaleza pública. Como parte de las tareas habituales de la Dirección de Comunicaciones de la Armada se debe analizar reputación de la organización y presentar los resultados mensualmente al Alto Mando. Es de vital importancia que se esté al tanto del acontecer nacional que vincula a la institución de forma rápida, segura y certera en todo momento. La contribución más importante del desarrollo de este modelo es aportar rapidez, alta disponibilidad y apoyo en el análisis de reputación de la organización en redes sociales, de manera de no tener que esperar resultados obtenidos de análisis manual hecho por seres humanos. Sin embargo, no se descarta uso de análisis por parte de seres humanos, pero apoyado por la herramienta automática. Los resultados obtenidos de este trabajo son de interés de la organización y de sus stakeholders, debido a que se trata de una institución pública con responsabilidad social hacia el país, que debe asegurar una correcta gestión beneficiando a la comunidad. Por otro lado, las técnicas informáticas de Análisis de Sentimiento han tendido a crecer en su uso general por parte de organizaciones, ya que permiten sensar opiniones del "mercado", de manera rápida respecto de temas de interés, por ejemplo, en áreas como posicionamiento de la organización y marcas (marketing). Este tipo de análisis es un área de investigación del Procesamiento del Lenguaje Natural que cuenta con más de 15 años de desarrollo y va en aumento tanto en el país como en el extranjero gracias, en parte, a la disponibilidad de herramientas que permiten

Page 2: Informe Tesis MGF N°4 - Entregable MTI · ¿ºÇ¶Ãĺµ²µ ì´¿º´² ¶µ¶Ãº´À ²¿Å² ²Ã ² ¶Á²ÃŲ¾¶¿ÅÀ µ¶ ¿·ÀþÍź´² ²¸ ÄŶà ¶¿

Universidad Técnica Federico Santa María

Departamento de Informática Magíster en Tecnologías de la Información

2

procesar grandes volumenes de información y extraer conocimiento de ellos. Un desafío adicional a esta tarea es la realización del Análisis de Sentimientos en español, dado que aún no hay madurez de estas herramientas en este idioma.

Definición del problema.

El Objetivo General es: "Crear un sistema de análisis de la percepción de la institución por parte de twiteros, de manera automatizada que sea capaz de arrojar resultados similares al realizado por personas". La propuesta de investigación pretende: "Obtener un nivel de confianza esperado en el análisis automático de 80% respecto del análisis realizado por personas".

Breve descripción sobre la propuesta de solución, los objetivos planteados y el marco teórico adoptado.

Para resolver el problema se plantea extraer la información relevante de redes sociales, específicamente Twitter, usando su API gratuita de Twitter y almacenarlas en computador, realizar análisis de la información extraída con técnicas de Análisis de Sentimientos para dilucidar si comentario es positivo, neutro o negativo, resumir contenido en función del tiempo (día, mes, año), monitorizar, comparar resultado con análisis experto realizados por personas, afinar modelo para llegar a nivel alto de certeza del análisis automatizado, para estos propósitos se realizará análisis en español e inglés. El método de desarrollo del modelo será incremental, hasta lograr un nivel de confianza satisfactorio del conocimiento entregado por la herramienta automatizada.

Para realizar Análisis de Sentimientos se utiliza: Orange Text, NLTK (Natural Language Toolkit) y Vader, las cuales son herramientas de código abierto disponibles en el mercado, donde Orange tiene sus componentes core desarrollados en C++ con wrappers en Python y las otras dos están desarrolladas en el lenguaje de programación Python.

Para realizar este trabajo se ha revisado bibliografía vigente en el tema, tanto en libros, papers, trabajos comparativos de herramientas para realizar Análisis de Sentimientos y sitios de empresas que se dedican a realizar este tipo de estudios. De acuerdo a la información recopilada se ha evidenciado que existe un interés creciente en el desarrollo de este tipo de estudios y se esta incursionando en desarrollo de estudios de Análisis de Sentimientos en Español. Para la realización de Análisis de Sentimientos hay dos grandes enfoques, uno es el uso de diccionarios léxicos o vocabularios y el otro es el uso de maquinas de aprendizaje, donde para este estudio en particular se opta por utilización de herramienta con diccionarios léxicos.

La industria de Big Data y Minería de data ya lleva aproximadamente una década en desarrollo y han surgido diferentes herramientas y técnicas orientadas a satisfacer las necesidades de obtener conocimiento a partir de la data existente en el ciberespacio.

Las nuevas necesidades de la industria son extraer data de fuentes heterogéneas, donde la data está contenida de manera semi-estructurada y no estructurada en el ciberespacio, por lo que técnicas tradicionales de extracción, transformación y carga desde fuentes como bases de datos (estructurada) ya no son suficiente y se ha requerido incursionar en nuevas tecnologías que permitan obtener información desde estas nuevas fuentes de datos las cuales se caracterizan por ser poco estructuradas, de un gran volumen y encontrarse dispersas en muchos sitios.

Definición de hipótesis y metodología aplicada para su validación.

Hipótesis: Un sistema de análisis de la percepción de la institución en Twitter, realizado de manera automatizada, puede arrojar resultados similares al realizado por personas. Donde, el nivel de confianza esperado para ratificar esta hipótesis es un ajuste de 80% respecto del análisis realizado por personas. Variable Independiente (de control): Percepción de la institución.

Page 3: Informe Tesis MGF N°4 - Entregable MTI · ¿ºÇ¶Ãĺµ²µ ì´¿º´² ¶µ¶Ãº´À ²¿Å² ²Ã ² ¶Á²ÃŲ¾¶¿ÅÀ µ¶ ¿·ÀþÍź´² ²¸ ÄŶà ¶¿

Universidad Técnica Federico Santa María

Departamento de Informática Magíster en Tecnologías de la Información

3

Variables dependientes (observables): Medición del sentimiento: positivo, neutro o negativo en una publicación o comentario de persona (tweet).

Para validar la estrategia de analisis se realizará comparación de la data y se establecerá nivel de confianza de la similitud entre estas dos formas de procesamiento. Para lo cual se tomará formato de resultado de análisis existente y se comparará lo registrado por análisis experto con lo encontrado por parte de la herramienta automática. Lo anterior se hará de manera iterativa. Breve descripción de la organización del informe en capítulos.

En el presente trabajo se abordarán los siguientes capítulos: Nº1 Introducción, N°2 Marco Teórico y Estado del Arte, N°3 Desarrollo del Proyecto y Análisis de la Solución, N°4 Conclusiones y N°5 Trabajos Futuros.

2 Marco Teórico y Estado del Arte

2.1 Marco Teórico

2.1.1 Extracción de la información desde Twitter (API Twitter Premium vs Tweepy):

Para realizar extracción de mensajes desde Twitter se puede utilizar API (Application Programming Interface, conjunto de reglas y especificaciones que las aplicaciones pueden seguir para comunicarse entre ellas) de pago como Twitter Premium o Enterprise o API gratuita como Tweepy. Tweepy, permite realizar la descarga de los mensajes o tweets existentes en una o más cuentas de Twitter. El lenguaje de programación que soporta esta API es Python. Las clases de esta API proveen acceso a Twitter por completo mediante métodos RESTful API en el caso de descarga según estado y Streaming API para descargas en tiempo real. Cada método puede aceptar varios parámetros y devolver respuestas [1]. La API Premium de Twitter, también soporta métodos RESTful API y, además, permite dos formas básicas de extracción de datos: a) los últimos 30 días de tweets, o b) todos los tweets recientes e históricos establecidos en ventana de tiempo deseada (a contar de año 2006, inicios de Twitter). Ésta provee baja latencia, fidelidad de data y está basada en consultas para acceder a los archivos de Tweets. Se puede especificar ventanas de tiempo con granularidad (especificidad a la que se define un nivel de detalle) de minuto. Los tweets buscados están disponibles aproximadamente a 30 segundos de haber sido publicados. RESTful API es un servicio. Funciona como un sistema para compartir información. Es de doble vía. Permite especificar parámetros de modo que el servicio sepa lo que se quiere consultar, basándose en una estructura previamente definida y provista por esta API en su documentación. La arquitectura REST (Representational State Transfer) trabaja sobre el protocolo HTTP. Por ende, los procedimientos o métodos de comunicación son los mismos que HTTP, donde los principales son: GET, POST, PUT, DELETE. Otros métodos que se utilizan en RESTful API son OPTIONS y HEAD. Este último se utiliza para pasar parámetros de validación, autorización y tipo de procesamiento, entre otras funciones. Por lo general y como mejor practica, el cuerpo (Body) de la respuesta de una API es una estructura en formato JSON (JavaScript Object Notation, estructura liviana de intercambio de datos), aunque también puede ser una estructura XML (eXtensible Markup Language, meta-lenguaje que permite definir lenguajes de marcas desarrollado por el World Wide Web Consortium - W3C - utilizado para almacenar datos en forma legible) o cualquier otra estructura de datos de intercambio, incluso una personalizada [2]. La diferencia fundamental entre usar la RESTful API y la Streaming API de Tweepy es que la primera permite buscar datos "históricos", es decir, ir atrás en el tiempo; y la segunda mira hacia el futuro, ya que una vez que se abre una conexión se puede ir guardando los tweets que cumplan el criterio establecido. Si se quiere descargar grandes volúmenes de tweets, por lo general, es preferible la utilización de la Streaming API [20]. Sin embargo, se debe tener presente que Twitter restringe la cantidad y calidad de tweets que

Page 4: Informe Tesis MGF N°4 - Entregable MTI · ¿ºÇ¶Ãĺµ²µ ì´¿º´² ¶µ¶Ãº´À ²¿Å² ²Ã ² ¶Á²ÃŲ¾¶¿ÅÀ µ¶ ¿·ÀþÍź´² ²¸ ÄŶà ¶¿

Universidad Técnica Federico Santa María

Departamento de Informática Magíster en Tecnologías de la Información

4

entrega gratuitamente, estableciendo “Rate Limits” (o en español “Tasas Límite”) de descarga y a su vez restringiendo tamaño de texto a 128 bytes en forma gratuita a 1024 bytes si se utiliza API Premium de pago. Los tweets en forma predeterminada están en formato JSON. Tweepy y la API Premium soporta OAuth authentication (Open Authorization), el cual es un estándar abierto que permite flujos simples de autorización para sitios Web o aplicaciones informáticas. Permite autorización segura de una API de modo estándar y simple para aplicaciones de escritorio, móviles y Web. OAuth permite a un usuario del sitio A compartir su información en el sitio A (proveedor de servicio) con el sitio B (llamado consumidor) sin compartir toda su identidad. Para desarrolladores de consumidores, OAuth es un método para interactuar con datos protegidos y publicarlos. Para desarrolladores de proveedores de servicio, OAuth proporciona a los usuarios un acceso a sus datos al mismo tiempo que protege las credenciales de su cuenta. Este mecanismo es utilizado por compañías como Google, Facebook, Microsoft, Twitter y Github para permitir a los usuarios compartir información sobre sus cuentas con aplicaciones de terceros o sitios Web [3]. Además, la API Premium de Twitter permite otro sistema de autenticación llamado “Bearer token”. Las herramientas Python de Twitter han sido liberadas bajo licencia MIT [19].

2.1.2 Traducción automática de Tweets:

Dado planteamiento de Análisis de Sentimientos, se hace necesario contar con traducción automática al inglés de los tweets que se extraen (en español). Con este propósito se ha analizado diferentes herramientas disponibles para realizar esta tarea. Dos de las herramientas que destacan son las de Google y Microsoft, donde ambas disponibilizan API REST para traductor en la nube.

API Translation de Google (parte del Google Cloud Platform) cobra USD $ 20 por millón de caracteres traducidos (referencia Agosto 2018), sin embargo cuenta también con versión de prueba gratis por 12 meses (Nota: Se debe ingresar número de tarjeta de crédito). Dentro de sus características destaca que ofrece una interfaz de programación sencilla con un sistema de traducción automática neuronal de última generación. Es una API REST, donde no hace falta extraer el texto del documento, sino que basta con enviar los documentos HTML y se obtiene el texto traducido [27].

Microsoft Translator’s text and speech, aplica traducciones directamente de Office o bien mediante uso de Translator Text or Speech API, la suscripción es gratis, pero requiere crear cuenta en Azure, el cual permite suscripción gratuita por hasta 12 meses [28]. Dispone de ejemplos de uso de la API en diferentes lenguajes de programación como: Go, Java, Node.js, PHP, Python 3 y Ruby [29].

2.1.3 Teoría del Análisis de Sentimientos

La literatura clarifica desafíos a la hora de realizar Análisis de sentimientos, como por ejemplo:

Determinar si existe opinión en el tweet, dado que podría ser solo un comentario objetivo o una respuesta a otro usuario.

Determinar si el tweet corresponde a información útil, dado que podría referirse a un tema no relevante para la institución.

Reconocer las abreviaciones y modismos típicos. Al tener Twitter un carácter informal el lenguaje usado no siempre es correcto, ya que normalmente no se ocupan acentos y se ocupan palabras populares que no aparecen en el diccionario tradicional.

Determinar la polaridad de una oración pudiendo tener palabras positivas y negativas en la misma frase (Ej. “Me alegro que se haya terminado, pésimo el espectáculo”, “La película no fue nada buena”).

Page 5: Informe Tesis MGF N°4 - Entregable MTI · ¿ºÇ¶Ãĺµ²µ ì´¿º´² ¶µ¶Ãº´À ²¿Å² ²Ã ² ¶Á²ÃŲ¾¶¿ÅÀ µ¶ ¿·ÀþÍź´² ²¸ ÄŶà ¶¿

Universidad Técnica Federico Santa María

Departamento de Informática Magíster en Tecnologías de la Información

5

En el Análisis de Sentimientos es relevante evaluar los tweets que den una opinión, una evaluación o expresen emoción sobre algún tema de interés, dejando de lado los mensajes objetivos o informativos. Para esto existen varios métodos que se pueden aplicar para realizar un Análisis de sentimientos en Twitter. En general, este tipo de problemas se resuelve catalogando una opinión en polaridades, determinando si es positiva o negativa con respecto a un tema específico. Sin embargo, este no es un tema simple de resolver, ya que dependiendo del contexto hay palabras que pueden expresar tanto una opinión positiva como negativa [6].

Respecto de emociones, se distinguen distintos tipos de variables [7]:

Polaridad: indica si el tweet tiene un sentimiento positivo o negativo. En algunos análisis se introduce una tercera categoría para clasificar los mensajes neutros y/o compuestos como es el caso de Vader.

Intensidad: proporciona un valor numérico en relación con la intensidad del sentimiento. Se puede distinguir entre una intensidad positiva y una intensidad negativa.

Emoción: clasifica el texto según los distintos tipos de emociones, como puede ser alegría, tristeza o ira, como en el caso de Análisis de Sentimientos usando Twitter Profiler (herramienta de Orange-Text).

A su vez, la forma de realizar Análisis de Sentimientos se ha clasificado en los siguientes niveles de análisis, donde el sentimiento, entendido de modo general, puede ser evaluado a nivel de documento, oración o entidad. Cuando se evalúa el sentimiento de un documento, se tiene en cuenta el conjunto completo de información. El nivel de análisis de oración se limita a analizar una construcción oracional. El nivel más concreto de análisis corresponde al sentimiento asociado a una determinada entidad, la cual podría ser un partido político, una asociación o un candidato. En este caso, quizá la evaluación del sentimiento de la frase no tiene por qué coincidir con el sentimiento asociado a la entidad estudiada. Este nivel de análisis requiere metodologías más sofisticadas y complejas [7] [8].

2.1.4 Métodos para realizar Análisis de Sentimientos

Los métodos para obtener la polaridad de un tweet son básicamente dos [6]:

Enfoque de máquinas de aprendizaje.

Busca analizar la información de manera automática de una forma supervisada o no supervisada, la primera se basa en sets de entrenamiento, los cuales serán usados para catalogar el resto de las opiniones encontradas en la Web, realizando pruebas y luego validándolas. Las principales técnicas de este método son: Support Vector Machines (SVMs), Redes Neuronales, Naive Bayes, Redes Bayesianas, y clasificadores de Máxima Entropía, entre otras. De esta manera, se utiliza la categoría gramatical de las palabras, la presencia y frecuencia de algunos términos y su composición semántica. La mayoría de estos métodos, sin embargo, van acompañados de algún diccionario que entrega información a priori de los términos para obtener las polaridades respectivas. En algunos casos, estos diccionarios son realizados por personas y en otros se ocupa un sistema semi-automático.

Uso de diccionarios léxicos.

El método del diccionario léxico se basa en una lista de palabras con un determinado peso y/o categoría emocional. Estos diccionarios presentan principalmente adjetivos, que son los que aportan mayor información a la hora de analizar los sentimientos, aunque también incluye verbos, adverbios y sustantivos. La mayoría de los diccionarios están presentes en la Web (una gran parte en inglés, aunque existen en español pero en etapa beta y no tan precisos) de manera de determinar si una frase es negativa o positiva, donde se evalúa la oración dependiendo de la cantidad de palabras presentes en el diccionario y de la fuerza de su sentimiento. Algunos de estos diccionarios son: “Dictionary of Affect in Language (DAL)”, “Linguistic Inquiry and Word Count” (LIWC), “SentiWordNet”,”Q-WordNet”, ”General Inquirer”, ”MPQA Subjectivity Lexicon”, etc.

Page 6: Informe Tesis MGF N°4 - Entregable MTI · ¿ºÇ¶Ãĺµ²µ ì´¿º´² ¶µ¶Ãº´À ²¿Å² ²Ã ² ¶Á²ÃŲ¾¶¿ÅÀ µ¶ ¿·ÀþÍź´² ²¸ ÄŶà ¶¿

Universidad Técnica Federico Santa María

Departamento de Informática Magíster en Tecnologías de la Información

6

Además del método del diccionario léxico, es posible ocupar un sistema alternativo basado en un corpus o corpora. Esta opción se basa en la coexistencia de patrones y en la sintaxis del texto. Para Twitter, Vader y Liu Hu ocupa corpus, correspondientes a los tweets extraídos. Este método parte con unos pequeños diccionarios con palabras, generalmente adjetivos, positivos y negativos, los cuales son usados para identificar otros términos que indiquen sentimientos. Una opción es usar el conector “and” en inglés, que puede usarse para unir adjetivos con similar polaridad. Por ejemplo, “This car is beautiful and spacious (Este auto es precioso y espacioso)”, si “beautiful” ya estaba en el diccionario y era positivo, entonces “spacious” se agrega al diccionario con una polaridad positiva también. De manera similar se usan términos como “but”, “or”, “either”, para usar palabras con polaridades opuestas, por ejemplo “This car is beautiful but difficult to drive (Este auto es precioso pero difícil de manejar)”. Luego de analizar todo un texto y determinando si dos adjetivos que se encuentran juntos tienen sentimientos similares u opuestos, se realiza un cluster para obtener los dos sets de palabras, tanto positivos como negativos [9].

Otros métodos similares, ocupan frases además de palabras, considerando que en una oración se va a seguir hablando de lo mismo con la misma polaridad que en la frase anterior.

Figura 1. Técnicas de clasificación de sentimientos [7] [8] (traducido).

2.1.5 Análisis de Sentimientos con NLTK (Natural Language Toolkit):

NLTK es un proyecto de Edward Loper, Ewan Klein, Steven Bird (Stanford). NLTK es una plataforma, de código abierto y gratis, para construir programas en Python que trabajen con datos de lenguaje humano. Provee de interfaces para más de 50 corpora y recursos léxicos como WordNet. Contiene librerías de procesamiento de texto para clasificación, tokenización, stemming, tagging, parseo y razonamiento semántico, además de librerías robustas para NLP (Natural Language Processing). Permite trabajar con corpus y corpora, categorizar textos, analizar estructuras lingüísticas y más [4].

Page 7: Informe Tesis MGF N°4 - Entregable MTI · ¿ºÇ¶Ãĺµ²µ ì´¿º´² ¶µ¶Ãº´À ²¿Å² ²Ã ² ¶Á²ÃŲ¾¶¿ÅÀ µ¶ ¿·ÀþÍź´² ²¸ ÄŶà ¶¿

Universidad Técnica Federico Santa María

Departamento de Informática Magíster en Tecnologías de la Información

7

Corpora es un conjunto de datos, textos u otros materiales sobre determinada materia que pueden servir de base para una investigación o trabajo. En el contexto de NLTK, tokenización se refiere a tomar cada palabra y signo de puntuación (o conjunto de palabras) de un texto y asignarlo a una estructura de memoria donde a cada una de ellas se le llama token; stemming es un método para reducir una palabra a su raíz o en inglés a un stem; tagging consiste en determinar a que tipo de palabra corresponde un token (artículo, sustantivo, pronombre, adjetivo, verbo, adverbio, preposición, conjunción o interjección) etiquetándolo de acuerdo a la función que cumple en el texto; recursos léxicos se refiere a las palabras y sus significados, claro que se debe tener en cuenta que varias palabras tienen distintos significados de acuerdo al contexto en el que se use, por lo que existen distintos léxicos en áreas como finanzas, medicina, infancia, etc.

Además, en NLTK se incorpora librerías para Análisis de Sentimientos, dentro de las cuales existe una para realizar el análisis en español [4], por lo que se pueden usar dos técnicas para desarrollo de los análisis: usar aplicación para español o traducir texto a inglés y analizarlo con aplicación en inglés para estos propósitos. Por oto lado, se puede utilizar Vader (Valence Aware Dictionary and sEntiment Reasoner) con NLTK, el cual es una herramienta de Análisis de Sentimientos, desarrollada en el MIT por C.J. Hutto y Eric Gilbert en 2014, especialmente diseñada para analizar sentimientos expresados en redes sociales o textos de otros dominios [5].

NLTK puede usarse desarrollando programas en Phython o bien usando entorno gráfico desarrollado en proyecto Orange-Text.

2.1.6 Análisis de Sentimientos con Orange y Orange-Text:

Orange es un paquete visual de programación de software, creado para visualizar datos, ocupar máquinas de aprendizaje, minería de datos y análisis de datos. Sus componentes son llamados widgets (pequeña aplicación o programa, usualmente presentado en archivos o ficheros pequeños que son ejecutados por un motor de widgets o Widget Engine. Entre sus objetivos están dar fácil acceso a funciones frecuentemente usadas y proveer de información visual [24]). La programación visual es implementada a través de una interfaz donde se crean flujos de trabajo que enlazan widgets predefinidos o bien programas diseñados por usuarios. La instalación predeterminada de Orange incluye maquinas de aprendizaje, algoritmos de pre-procesamiento y visualización de datos, en seis conjuntos de widgets (data, visualize, classify, regression, evaluate y unsupervised). Adicionalmente, existen funcionalidades extra, disponibles como add-ons (también conocidos como extensiones, plugins, snap-ins, etc. Programas que sólo funcionan anexados a otro y que sirven para incrementar o complementar sus funcionalidades), para bio informática, data fusion y text-mining [22].

Orange es un software de código abierto bajo licencia GLP (Licencia Pública General de GNU o más conocida por su nombre en inglés GNU General Public License, es una licencia de derecho de autor ampliamente usada en el mundo del software libre y código abierto, y garantiza a los usuarios finales - personas, organizaciones, compañías - la libertad de usar, estudiar, compartir - copiar - y modificar el software). Las versiones sobre la 3.0 incluyen componentes core en C++ con wrappers (subrutina de una librería de software o programa computacional, cuyo propósito principal es llamar a una segunda subrutina o una llamada de sistema con poco computo o nada de el. Se usan para facilitar la escritura de programas computacionales) en Python. Desde la versión 3.0 en adelante, Orange ocupa librerías de código abierto en Python de computación científica, como numpy (extensión de Python, que le agrega mayor soporte para vectores y matrices, constituyendo una biblioteca de funciones matemáticas de alto nivel para operar con esos vectores o matrices) y scikit-learn (es el principal paquete de máquinas de aprendizaje en Python. Es una colección de código abierto de algoritmos de máquinas de aprendizaje que incluye herramientas para acceder y pre-procesar datos, evaluar la salida de un algoritmo y visualizar los resultados [20]), y Qt en la interfaz gráfica (framework multiplataforma orientado a objetos ampliamente usado para desarrollar programas de software que utilicen interfaz gráfica de usuario, así como también diferentes tipos de herramientas para la línea de comandos y consolas para servidores que no necesitan una interfaz gráfica de usuario. Qt es distribuida bajo los términos de GNU Lesser General Public License y otras. Por otro lado, Digia está a cargo de las licencias comerciales de Qt desde marzo de 2011 [25]).

Page 8: Informe Tesis MGF N°4 - Entregable MTI · ¿ºÇ¶Ãĺµ²µ ì´¿º´² ¶µ¶Ãº´À ²¿Å² ²Ã ² ¶Á²ÃŲ¾¶¿ÅÀ µ¶ ¿·ÀþÍź´² ²¸ ÄŶà ¶¿

Universidad Técnica Federico Santa María

Departamento de Informática Magíster en Tecnologías de la Información

8

Las versiones que se utilizan en esta tesina son: Orange versión 3.4.5 y Orange3-Text versión 0.2.5. Ambas soportadas por sistemas operativos macOS, Windows y Linux [23].

Los distintos widgets incluyen:

Data: widgets para entrada de datos, filtrado de datos, sampleo, imputaciones, manipulación de datos y selección de los mismos.

Visualización: widgets para visualizaciones comunes, como gráficos de bloque, histogramas, gráficos scatter; y visualizaciones multivariables, como despliegue de mosaicos, diagramas de tamiz.

Clasificación: conjunto de algoritmos no supervisados de máquinas de aprendizaje para clasificación. Regresión: conjunto de algoritmos de máquinas de aprendizaje supervisados para regresión. Evaluación: comprende cross-validation, procedimientos basados en sampleo, estimación de

confiabilidad y métodos scoring de predicción. No supervisado: algoritmos de aprendizaje no supervisados para clustering (k-means, clustering

jerárquico) y técnicas de proyección de data (escalamiento multidimensional, análisis de componente principal, análisis de correspondencia).

Los distintos Add-ons incluyen:

Asociación: widgets para minería frecuente de conjunto de ítems y reglas de reglas de aprendizaje por asociación.

Bio-informática: widgets para análisis de conjunto de genes, enriquecimiento y acceso a bibliotecas. Data fusion: widgets para fusionar diferentes conjuntos de datos, factorización colectiva de matrices y

exploración de factores latentes. Educacional: widgets para conceptos de enseñanza de máquinas de aprendizaje, como clusters k-means,

regresión polinomial. Geo: widgets para trabajar data geoespacial. Image analytics: widgets para trabajar con imágenes y ImageNet embebidas. Red: widgets para gráficos y análisis de red. Minería de texto: widgets para procesamiento de lenguaje natural (utiliza NLTK) y minería de texto.

Este add-on fue desarrollado en colaboración con Bojana Dalbelo Bašić, Saša Petrović, Frane Šarić, Mladen Kolar (todos de la Facultad de Ingeniería Eléctrica y Computación de la Universidad de Zagreb, Croatia), Annie Morin (IRISA, Universidad de Rennes, Francia) y Jean-Hugues Chauchat (Universidad de Lyon, ERIC-Lyon2, Bron Cedex, Francia).

Series de tiempo: widgets para análisis de series de tiempo y modelado.

En Minería de texto se cuenta, además, con widget de Análisis de Sentimientos, el cual trabaja con el idioma español e inglés y utiliza NLTK, con técnicas Liu Hu y Vader (ambas son técnicas basadas en diccionarios léxicos), donde Liu Hu computa una única puntuación normalizada del sentimiento encontrado en el texto (puntuación negativa para sentimientos negativos, positiva si el sentimiento es negativo y cero si es neutro) y Vader categoriza y asigna puntuación a cada uno de los sentimientos (positivo, negativo o neutro) como también arroja un puntaje total de sentimiento (llamado: "compuesto") [26].

2.2 Estado del Arte

Hasta ahora, la gran mayoría de trabajos de investigación involucran sistemas de Análisis de Sentimientos en inglés. Por este motivo, la comunidad científica está interesada en trabajos diferentes a este lenguaje. En el artículo [10], se hace un resumen de las contribuciones hechas en Análisis de Sentimientos en Español desde 2012 a 2015, muestra los distintos enfoques, niveles, conjuntos de datos y técnicas usadas para Análisis de Sentimientos en Español. A continuación, se presentará un breve resumen de este trabajo a modo de contextualizar el Estado del arte del Análisis de Sentimientos en Español.

Inicialmente, se encuentra que el estado de investigación en Análisis de sentimientos en Español es escaso en comparación con otros lenguajes como el Inglés. En la gran cantidad de trabajos que se revisa se

Page 9: Informe Tesis MGF N°4 - Entregable MTI · ¿ºÇ¶Ãĺµ²µ ì´¿º´² ¶µ¶Ãº´À ²¿Å² ²Ã ² ¶Á²ÃŲ¾¶¿ÅÀ µ¶ ¿·ÀþÍź´² ²¸ ÄŶà ¶¿

Universidad Técnica Federico Santa María

Departamento de Informática Magíster en Tecnologías de la Información

9

encuentra que generalmente se traducen los textos en español al inglés automáticamente y luego se aplica herramientas de Análisis de Sentimientos en inglés.

En cuanto al nivel de análisis, la mayoría se ha hecho a nivel de documento (77%) en vez de a nivel de entidad (8%), lo cual es un inconveniente cuando los textos tienen varias características con polaridades distintas para los productos. Por lo que ahondar en Análisis de Sentimientos en Español a nivel de entidad es una necesidad y hacerlo permitiría capturar características esenciales de documentos complejos y entregar análisis más detallados y precisos de un producto o servicio.

Además, investigar más en Análisis de Sentimientos en Español permitiría potenciar los recursos lingüísticos existentes y construir nuevos modelos de propósito general para analizar diferentes tipos de textos escritos con altos niveles de precisión.

En el estudio realizado se encontró que: el 42% de los trabajos usaron técnicas de diccionarios léxicos, el 35% máquinas de aprendizaje, el 15% usó técnicas híbridas y el 8% técnicas de clasificación. Sin embargo, las técnicas de diccionarios léxicos tienden a perder la batalla frente a las de máquinas de aprendizaje, porque estas dependen en gran medida de la calidad de los recursos lingüísticos, especialmente de los diccionarios de sentimientos. Las técnicas de máquinas de aprendizaje supervisado logran mayor eficiencia, pero la construcción de los datos de referencia, que corresponden a las opiniones con los sentimientos asociados, es costoso y necesita de mucho trabajo por parte de personas. Por otro lado, las técnicas de máquinas de aprendizaje no supervisadas no requieren datos de referencia y se pueden aplicar a otros lenguajes y/o dominios.

En cuanto a quienes están usando Análisis de Sentimientos, se encuentra que en general las empresas lo utilizan para analizar la reputación que tienen, es decir, para medir el posicionamiento en el mercado de acuerdo a las opiniones de sus clientes en las redes sociales.

En artículo [11], el enfoque de investigación se centra en dos aspectos. Primero, determinar si métodos y enfoques utilizados con éxito en inglés, también lo son con tweets en español y, en segundo lugar, identificar el mejor método para procesar tweets en español. Aquí se presenta un conjunto de experimentos, donde se clasifican tweets en español de acuerdo a sus sentimientos y tópicos. En estos experimentos se evalúa el uso de stemmers, lematizadores, n-grams, tipos de palabras, negaciones, valence shifters, procesamiento de links, motores de búsqueda, semánticas especiales de Twitter (hashtags) y diferentes métodos de clasificación. La primera conclusión es que ninguna de las técnicas analizadas es la panacea para clasificar tweets en español. Ninguna hace una diferencia clara cuando se usan los diferentes algoritmos. La segunda conclusión es que los tweets en español son difíciles de tratar, debido principalmente a que son breves a que se pierde el contexto. Los resultados del experimento son alentadores, puesto que muestran que es posible usar métodos clásicos para analizar textos en español, sin embargo, la mayor exactitud obtenida para tópicos fue de 58% y para sentimientos de 42%. Por lo tanto, en el artículo se concluye que hay bastante espacio para hacer mejoras y que se justificarían futuros esfuerzos en esta línea.

En estudio [17], se hace un análisis de once herramientas distintas para realizar Análisis de Sentimientos. Se compara Vader (modelo simple basado en reglas) con herramientas como LIWC (Linguistic Inquiry and Word Count), ANEW, General Inquirer, SentiWordNet y técnicas de máquinas de aprendizaje que utilizan Naive Bayes, Máxima Entropía y algoritmos de Support Vector Machine (SVM). Para la comparación se combina análisis de métodos cuantitativos y cualitativos, donde en primer lugar se construye y valida una lista de “oro” de características léxicas (con sus medidas de intensidad de sentimientos asociadas) sintonizadas al contexto de la temática o dominio a analizar, luego se combina esas características léxicas para cinco reglas generales que contienen convenciones gramaticales y sintácticas para expresiones y enfatizan la intensidad de sentimiento. Los resultados obtenidos son bastante interesantes, dado que, para análisis de sentimientos de tweets, se encuentra que Vader supera tasas de análisis humanos y generaliza los contextos mejor que las otras herramientas analizadas.

Page 10: Informe Tesis MGF N°4 - Entregable MTI · ¿ºÇ¶Ãĺµ²µ ì´¿º´² ¶µ¶Ãº´À ²¿Å² ²Ã ² ¶Á²ÃŲ¾¶¿ÅÀ µ¶ ¿·ÀþÍź´² ²¸ ÄŶà ¶¿

Universidad Técnica Federico Santa María

Departamento de Informática Magíster en Tecnologías de la Información

10

El léxico de Vader se desempeña excepcionalmente bien en el dominio de las redes sociales y las generaliza favorablemente.

Cuando se compara Vader con técnicas sofisticadas de máquinas de aprendizaje, su simplicidad acarrea varias ventajas. Primero, es rápida y computacionalmente económica sin sacrificar exactitud. Corre directamente desde un computador moderno estándar con especificaciones moderadas como por ejemplo, procesador de 3GHz y 6GB RAM, un corpus demora fracciones de segundos en ser analizado con Vader, siendo que usando modelos más complejos como SVM (con entrenamiento) demora horas o diez minutos si el modelo ha sido previamente entrenado. Segundo, el diccionario léxico y reglas que usa Vader son accesibles ya que no están escondidas. Por ende, Vader puede ser fácilmente inspeccionado, comprendido, extendido o modificado. Además, como Vader pone a la luz su modelo de diccionario léxico y reglas, hace el trabajo en Análisis de Sentimientos más accesible. Tercero, utilizando un diccionario léxico de sentimientos general y reglas relacionadas con la gramática y sintaxis (validados por humanos), Vader no requiere un extenso set de entrenamiento y se desempeña bien en diversos dominios.

3 Desarrollo del Proyecto y Análisis de la Solución

3.1 Metodología de trabajo

Figura 2. Vista global de proceso de Análisis de Sentimientos [20].

La metodología de trabajo incluye 6 pasos a seguir [10][20]:

1. Extracción de la información desde el Social Media elegido, que en este caso es Twitter. Para este propósito, se utiliza API proporcionada por este: Tweepy. Para descarga masiva de tweets es necesario generar credenciales de autenticación como desarrollador en cuenta de Twitter, luego mediante programas desarrollados específicamente para extraer data ya sea histórica (twitter_get_user_timeline.py) o vía streaming (twitter_streaming.py) se genera archivo de data en bruto de los tweets (JSON).

Page 11: Informe Tesis MGF N°4 - Entregable MTI · ¿ºÇ¶Ãĺµ²µ ì´¿º´² ¶µ¶Ãº´À ²¿Å² ²Ã ² ¶Á²ÃŲ¾¶¿ÅÀ µ¶ ¿·ÀþÍź´² ²¸ ÄŶà ¶¿

Universidad Técnica Federico Santa María

Departamento de Informática Magíster en Tecnologías de la Información

11

2. Aplicar métodos y técnicas de procesamiento de lenguaje natural, para limpiar y pre-procesar los tweets y dejarlos con el formato adecuado. En este paso los textos se limpian y preparan para ser procesados antes de su clasificación sentimental. Aquí básicamente se detectan errores ortográficos, se eliminan secuencias arbitrarias de espacios, stop words, limites de las frases, se eliminan signos de puntuación y se reemplazan emoticones o emoji por palabras correspondientes, entre otras cosas. Adicionalmente, una vez limpios y pre-procesados, se traducen los textos del español al inglés, para realizar análisis de sentimientos tanto en idioma nativo (español) como en idioma inglés (herramientas con mayor madurez en este idioma). Además, la data contenida en los JSON, descargados en paso anterior, es dejada en planilla Excel donde cada columna representa una de las etiquetas contenidas (lo principal es tener planilla que contenga el mensaje del tweet y su fecha). Para realizar estas tareas se utilizan programas en Python y ETL (Extracción, Transformación y Carga). 3. Utilizar motor analítico para identificación de sentimientos mediante la ubicación de las características presentes en la data. Se realiza modelado. Para realizar esta tarea se pueden utilizar distintos enfoques, como tener en cuenta presencia y frecuencia de términos, analizar partes del comentario, usar palabras y frases de opinión y uso de negaciones. El análisis se realiza en español e inglés, para efectos de comparar grado de acierto en cada idioma.

Posteriormente, se clasifica el sentimiento asignándole una polaridad. Se debe determinar si se utilizará enfoque de máquinas de aprendizaje y/o diccionarios léxicos. Para este estudio en particular, se utiliza enfoque de diccionarios léxicos: Vader, el cual analiza cada tweet y arroja cuatro valores, uno para positivo, otro para negativo, neutro y compuesto.

4. Análisis experto realizado por personas (Clasificar manualmente la data).

Dado que se necesita validar grado de acierto de la herramienta automática de análisis de sentimientos, una o más personas deben leer y clasificar cada tweet como positivo, negativo o neutro, de manera de tener un conjunto de datos clasificados correctamente que sirvan de base para la determinación de grado de acierto y confianza que tiene la clasificación sentimental automática versus la hecha por personas.

5. Realizar comparación de la data clasificada de los puntos 3 y 4. Y establecer nivel de confianza de la similitud entre estas dos formas de procesamiento. La propuesta de investigación pretende: "Obtener un nivel de confianza esperado en el análisis automático de 80% respecto del análisis experto realizado por personas". Para lo cual se definen los indicadores: “Precisión” y “Recall”; donde, “Precisión” corresponde a la cantidad de tweets positivos clasificados correctamente (Verdaderos Positivos clasificados automáticamente) dividido por la cantidad de tweets que la herramienta automática de análisis determina que son positivos (Verdaderos Positivos más Falsos Positivos clasificados automáticamente) y “Recall” corresponde a la cantidad de tweets positivos clasificados correctamente por la herramienta automática (Verdaderos Positivos clasificados automáticamente) dividido por el número total de tweets positivos reales (Verdaderos Positivos clasificados manualmente). Para obtener los tweets positivos reales es necesario contar con análisis experto de punto anterior. Los indicadores de “Precisión” y “Recall” se deben aplicar para mensajes positivos, negativos y neutros respectivamente.

6. Confección de Reportes y presentación de resultados. En este paso se trabaja con planilla Excel que contiene resultados de polaridad arrojado por herramienta automática y análisis realizado por personas. En función de ellos calcula indicadores "Aciertos", "Precisión" y "Recall" en los distintos períodos (anual, mensual y diario) y completa gráficos definidos.

3.2 Reportes.

La meta de la hipótesis aspira obtener un nivel de confianza (“Precisión” y “Recall” específicamente) mayor o igual al 80% para el análisis automático, por lo cual en tablas de esta sección se colorearán columnas porcentuales de "Aciertos", "Recall" y "Precisión", según las siguientes metas:

Page 12: Informe Tesis MGF N°4 - Entregable MTI · ¿ºÇ¶Ãĺµ²µ ì´¿º´² ¶µ¶Ãº´À ²¿Å² ²Ã ² ¶Á²ÃŲ¾¶¿ÅÀ µ¶ ¿·ÀþÍź´² ²¸ ÄŶà ¶¿

Universidad Técnica Federico Santa María

Departamento de Informática Magíster en Tecnologías de la Información

12

Tabla 1. Definición de metas de los indicadores "Aciertos", "Recall" y "Precisión".

Metas Indicadores Verde >= 80%

80% > Amarillo > 50%

50% >= Rojo

3.2.1 Estadísticos de Análisis de Sentimiento (Año - Mes)

Se comienza por cantidad y porcentaje de aciertos y errores en la clasificación de positividad, negatividad o neutralidad de tweets por Año - Mes.

En Tabla 2 se utiliza método Vader en español para realizar Análisis de Sentimientos de los tweets desde Enero a Septiembre 2018 y se totaliza en función de período de estudio. Adicionalmente, se colorea columna de indicador “Aciertos” según metas establecidas.

Tabla 2. Aciertos y errores (Año - Mes) en español.

Período Cantidad Porcentaje

Errores Aciertos Total Errores Aciertos Total 2018 Enero 224 353 577 38,82% 61,18% 100,00% 2018 Febrero 88 322 410 21,46% 78,54% 100,00%

2018 Marzo 73 327 400 18,25% 81,75% 100,00%

2018 Abril 77 289 366 21,04% 78,96% 100,00%

2018 Mayo 114 647 761 14,98% 85,02% 100,00%

2018 Junio 78 367 445 17,53% 82,47% 100,00%

2018 Julio 85 320 405 20,99% 79,01% 100,00% 2018 Agosto 102 274 376 27,13% 72,87% 100,00% 2018 Septiembre 869 1.468 2.337 37,18% 62,82% 100,00%

1.710 4.367 6.077 24,15% 75,85% 100,00%

En Tabla 3 se utiliza método Vader en inglés para realizar análisis de sentimientos de los tweets desde Enero 2018 a Septiembre 2018 y se totaliza en función de período de estudio. Adicionalmente, se colorea columna de indicador “Aciertos” según metas establecidas.

Tabla 3. Aciertos y errores (Año - Mes) en inglés.

Período Cantidad Porcentaje

Errores Aciertos Total Errores Aciertos Total 2018 Enero 335 242 577 58,06% 41,94% 100,00% 2018 Febrero 203 207 410 49,51% 50,49% 100,00%

2018 Marzo 185 215 400 46,25% 53,75% 100,00%

2018 Abril 118 248 366 32,24% 67,76% 100,00%

2018 Mayo 267 494 761 35,09% 64,91% 100,00%

2018 Junio 232 213 445 52,13% 47,87% 100,00%

2018 Julio 124 281 405 30,62% 69,38% 100,00% 2018 Agosto 173 203 376 46,01% 53,99% 100,00% 2018 Septiembre 1.619 718 2.337 69,28% 30,72% 100,00%

3.256 2.821 6.077 46,58% 53,42% 100,00%

Page 13: Informe Tesis MGF N°4 - Entregable MTI · ¿ºÇ¶Ãĺµ²µ ì´¿º´² ¶µ¶Ãº´À ²¿Å² ²Ã ² ¶Á²ÃŲ¾¶¿ÅÀ µ¶ ¿·ÀþÍź´² ²¸ ÄŶà ¶¿

Universidad Técnica Federico Santa María

Departamento de Informática Magíster en Tecnologías de la Información

13

En Figura 3 se grafica Porcentaje de Aciertos de Vader comparativamente en relación a análisis en español versus inglés, de Enero a Septiembre 2018. En Tabla 13 de Anexo 5 se encuentra tabla con sus valores coloreados según metas de Indicador.

Porcentaje Aciertos según Idioma (% )

61,18%

78,54%81,75% 78,96%

85,02% 82,47%79,01%

72,87%

62,82%

41,94%

50,49%53,75%

67,76% 64,91%

47,87%

69,38%

53,99%

30,72%

0%

10%

20%

30%

40%

50%

60%

70%

80%

90%

2018 Enero 2018 Febrero 2018 Marzo 2018 Abril 2018 Mayo 2018 Junio 2018 Julio 2018 Agosto 2018Septiembre

Año - Mes

Por

cent

aje

(%)

Español Inglés

Figura 3. Gráfico Porcentaje de Aciertos de Vader, español versus inglés, de Enero a Septiembre 2018.

En Figura 4 se grafica comparativamente relación de "Recall" y "Precisión" entre análisis con Vader tanto en inglés como en español, para tweets Positivos del año en curso. En Tabla 14 de Anexo 5 se encuentra tabla con sus valores coloreados según metas de Indicador.

Porcentajes de Precisión y Recall en español e inglés(Tweets Positivos)

4 4 ,0 7%

54,93 % 56 ,25%

18 ,0 0 %

4 2,22 % 3 9 ,13% 3 6 ,2 1%

56 ,79%

49 ,23 %

3 ,3 9 %8 ,4 5% 8 ,33 %

0 ,0 0 %4 ,4 4% 2 ,17%

18 ,9 7%

9 ,8 8%3 ,09%

26 ,09 %

40 ,00 %

30 ,77%

0 ,0 0 %

4 ,2 6 % 5,8 8%

28 ,95% 2 8 ,57%

3 4 ,78 %

2 8 ,57%

2 2 ,16 %

15,79 %12 ,3 3%

8 ,12 % 8 ,8 7%

2 2 ,8 3 %2 6 ,4 4 %

2 2,41%

0%

10%

20%

30%

40%

50%

60%

70%

80%

90%

100%

2018 Enero 2018 Febrero 2018 Marzo 2018 Abril 2018 Mayo 2018 Junio 2018 Julio 2018 Agosto 2018Septiembre

Mes - Año

Por

cen

taje

(%

)

Recall (%) Positivo (inglés) Recall (%) Positivo (español) Precisión (%) Positivo (español) Precisión (%) Positivo (inglés)

Figura 4. Gráfico Porcentajes de "Recall" y "Precisión" para Tweets Positivos, Español vs. Inglés, de Enero a

Septiembre 2018. En Figura 5 se grafica comparativamente relación de "Recall" y "Precisión" entre análisis con Vader tanto en inglés como en español, para tweets Negativos del año en curso. En Tabla 15 de Anexo 5 se encuentra tabla con sus valores coloreados según metas de Indicador.

Page 14: Informe Tesis MGF N°4 - Entregable MTI · ¿ºÇ¶Ãĺµ²µ ì´¿º´² ¶µ¶Ãº´À ²¿Å² ²Ã ² ¶Á²ÃŲ¾¶¿ÅÀ µ¶ ¿·ÀþÍź´² ²¸ ÄŶà ¶¿

Universidad Técnica Federico Santa María

Departamento de Informática Magíster en Tecnologías de la Información

14

Porcentajes de Precisión y Recall en español e inglés(Tweets Negativos)

0 ,0 0%

83 ,3 3%

2 5,0 0% 2 5,0 0%

75,00 %

50 ,0 0%

0 ,0 0%

10 0 ,0 0%

6 4 ,47%

0 ,0 0%

25,0 0%

75,0 0%

3 3 ,33 %

50,00%

75,0 0%

0 ,0 0%

10 0 ,0 0%

12 ,11%0 ,0 0%

4 0 ,00 %

5,56 %

2 5,0 0%

10 ,3 4% 9 ,0 9%

0 ,0 0%

2 3 ,08 %

6 1,10%

0,00%

6 ,2 5%

13 ,0 4%

18 ,18 %

6 ,4 5%

11,11%

0 ,0 0%

17,65%

33 ,21%

0%

10%

20%

30%

40%

50%

60%

70%

80%

90%

100%

2018 Enero 2018 Febrero 2018 Marzo 2018 Abril 2018 Mayo 2018 Junio 2018 Julio 2018 Agosto 2018Septiembre

Mes - Año

Po

rcen

taje

(%

)

Recall (%) Negativo (español) Recall (%) Negativo (inglés) Precisión (%) Negativo (español) Precisión (%) Negativo (inglés)

Figura 5. Gráfico Porcentajes de "Recall" y "Precisión" para Tweets Negativos, Español vs. Inglés, de Enero a Septiembre 2018.

En Figura 6 se grafica comparativamente relación de "Recall" y "Precisión" entre análisis con Vader tanto en inglés como en español, para tweets Neutros del año en curso. En Tabla 16 de Anexo 5 se encuentra tabla con sus valores coloreados según metas de Indicador.

Porcentajes de Precisión y Recall en español e inglés(Tweets Neutros)

87,8 5%93 ,58% 92 ,53% 94 ,08%

90 ,17% 92 ,15% 90 ,09% 90 ,07% 90 ,84%

42 ,2 8%

50 ,46% 53 ,74%

77,3 0%

66 ,43%

48 ,61%

75,80%

52 ,74%

35,0 3%

67,25%

82 ,70 %

87,26%

8 3 ,14%

93 ,72%

89 ,66%86 ,31%

78 ,51%

6 4 ,61%65,75%

88 ,71%90 ,78%

86 ,72%

95,36%

89 ,30%87,54 %

8 3 ,24%

40 ,24 %

0%

10%

20%

30%

40%

50%

60%

70%

80%

90%

100%

2018 Enero 2018 Febrero 2018 Marzo 2018 Abril 2018 Mayo 2018 Junio 2018 Julio 2018 Agosto 2018Septiembre

Mes - Año

Por

cent

aje

(%)

Recall (%) Neutro (español) Recall (%) Neutro (inglés) Precisión (%) Neutro (español) Precisión (%) Neutro (inglés)

Figura 6. Gráfico "Recall" y "Precisión" para Tweets Neutros, Español vs. Inglés, de Enero a Septiembre 2018.

Page 15: Informe Tesis MGF N°4 - Entregable MTI · ¿ºÇ¶Ãĺµ²µ ì´¿º´² ¶µ¶Ãº´À ²¿Å² ²Ã ² ¶Á²ÃŲ¾¶¿ÅÀ µ¶ ¿·ÀþÍź´² ²¸ ÄŶà ¶¿

Universidad Técnica Federico Santa María

Departamento de Informática Magíster en Tecnologías de la Información

15

A continuación, se analiza en mayor detalle distribución de resultados del año en curso, considerando cantidad de veces que dado que un tweet es positivo, negativo o neutro, la herramienta automática Vader lo clasifica como tal (Positivo Verdadero | Negativo Verdadero | Neutro Verdadero) y, por otro lado, cantidad de veces que tweet fue clasificado erróneamente; además estos resultados se traducen a porcentaje. Adicionalmente, se considera porcentaje de “Recall” y “Precisión” del análisis, los cuales son muy importantes a la hora de medir la efectividad de los análisis automáticos.

En Tabla 4 se despliega porcentajes totales de "Recall" y "Precisión" en español para año 2018, de Enero a Septiembre, diferenciando las mediciones según tweet positivos, negativos y neutros. Valores coloreados según metas de Indicador.

Tabla 4. Porcentajes "Recall" y "Precisión" en español de Enero a Septiembre 2018

2018 Enero a Septiembre (español)

Verdaderos Falsos Aciertos (%) Errores (%) Recall (%) Precisión (%)

Positivos 54 183 22,14% 77,86% 6,52% 22,78% Negativos 512 456 19,35% 80,65% 46,98% 52,89%

Neutros 3.801 1.071 81,46% 18,54% 91,26% 78,02%

4.367 1.710 75,85% 24,15% 75,85% 71,86% En Tabla 5 se despliega porcentajes totales de "Recall" y "Precisión" en inglés para año 2018, de Enero a Septiembre, diferenciando las mediciones según tweet positivos, negativos y neutros. Valores coloreados según metas de Indicador.

Tabla 5. Porcentajes "Recall" y "Precisión" en inglés de Enero a Septiembre 2018

2018 Enero a Septiembre (inglés)

Verdaderos Falsos Aciertos (%) Errores (%) Recall (%) Precisión (%)

Positivos 512 2.022 18,61% 81,39% 44,09% 20,21% Negativos 110 401 11,77% 88,23% 41,16% 21,53%

Neutros 2.204 828 80,85% 19,15% 55,82% 72,69%

2.826 3.251 53,54% 46,46% 53,54% 46,50%

En Figura 7 se grafica porcentajes de “Recall” y “Precisión”, en español e inglés, de Enero a Septiembre 2018.

Porcentajes de Precisión y Recall en español e inglésEnero - Septiembre 2018

6,52%

44,09%

22,14%

20,21%

46,98%

41,16%

19,35%

21,53%

91,26%

55,82%

81,46%

72,69%

0% 20% 40% 60% 80% 100% 120% 140% 160%

Español

Inglés

Español

Inglés

Rec

all (

%)

Pre

cisi

ón (

%)

Positivo Negativo Neutro

Figura 7. Gráfico "Recall" y "Precisión" para tweets Positivos, Negativos y Neutros, Español vs. Inglés.

Page 16: Informe Tesis MGF N°4 - Entregable MTI · ¿ºÇ¶Ãĺµ²µ ì´¿º´² ¶µ¶Ãº´À ²¿Å² ²Ã ² ¶Á²ÃŲ¾¶¿ÅÀ µ¶ ¿·ÀþÍź´² ²¸ ÄŶà ¶¿

Universidad Técnica Federico Santa María

Departamento de Informática Magíster en Tecnologías de la Información

16

3.2.2 Estadísticos de Análisis de Sentimiento Diaria primeros días de Septiembre 2018

Dada la naturaleza de la institución y acontecimiento histórico de 11 de Septiembre de 1973, se ha decidido analizar los primeros días de Septiembre 2018, en busca de tweets con mayor grado de polarización, para de esta manera testear resultados arrojados automáticamente por Vader tanto en español como en inglés. Los resultados obtenidos son los siguientes.

En Tabla 6 se utiliza método Vader en español e inglés para realizar Análisis de Sentimientos de los tweets desde 1 a 16 de Septiembre 2018. Adicionalmente, se colorea columna de indicador “Aciertos” según metas establecidas.

Tabla 6. Cantidad y porcentajes de "Acierto" en español e inglés de primeros días de Septiembre 2018.

En Figura 8 se grafica Porcentaje de Aciertos de Vader comparativamente en relación a análisis en español versus inglés, del 1 al 16 de Septiembre 2018.

Figura 8. Gráfico Porcentaje de Aciertos de Vader, español versus inglés, de 1 a 16 de Septiembre 2018.

Page 17: Informe Tesis MGF N°4 - Entregable MTI · ¿ºÇ¶Ãĺµ²µ ì´¿º´² ¶µ¶Ãº´À ²¿Å² ²Ã ² ¶Á²ÃŲ¾¶¿ÅÀ µ¶ ¿·ÀþÍź´² ²¸ ÄŶà ¶¿

Universidad Técnica Federico Santa María

Departamento de Informática Magíster en Tecnologías de la Información

17

La Tabla 7 contiene un resumen diario de indicadores de “Recall” y “Precisión” del 1 al 16 de Septiembre 2018, tanto para idioma español como inglés, considerando solamente tweets positivos. Valores coloreados según metas de Indicador.

Tabla 7. Porcentajes "Recall" y "Precisión" para tweets positivos, en español e inglés, Septiembre 2018.

En Figura 9 se grafica Porcentaje de “Recall” comparativamente en relación a análisis en español versus inglés, del 1 al 16 de Septiembre 2018.

Porcentajes de Recall Español vs Inglés del 1 al 16 de Septiembre 2018

9,09%

0,00%

33,33%

25,00%

100,00%

0,00% 0,00% 0,00% 0,00% 0,00% 0,44% 0,00%

7,87%

0,00% 0,00%3,45%

54,55%

33,33%

50,00% 50,00%

100,00%

0,00%

50,00%

33,33%

47,37%

100,00%

47,35%51,47%

64,04%

100,00%

23,08%27,59%

0%

10%

20%

30%

40%

50%

60%

70%

80%

90%

100%

01-09 02-09 03-09 04-09 05-09 06-09 07-09 08-09 09-09 10-09 11-09 12-09 13-09 14-09 15-09 16-09

Día

Por

cent

aje

(%)

Recall (%) Español Recall (%) Inglés

Figura 9. Gráfico Porcentaje de “Recall”, español versus inglés, de 1 a 16 de Septiembre 2018, para tweets

positivos.

En Figura 10 se grafica Porcentaje de “Precisión” comparativamente en relación a análisis en español versus inglés, del 1 al 16 de Septiembre 2018.

Page 18: Informe Tesis MGF N°4 - Entregable MTI · ¿ºÇ¶Ãĺµ²µ ì´¿º´² ¶µ¶Ãº´À ²¿Å² ²Ã ² ¶Á²ÃŲ¾¶¿ÅÀ µ¶ ¿·ÀþÍź´² ²¸ ÄŶà ¶¿

Universidad Técnica Federico Santa María

Departamento de Informática Magíster en Tecnologías de la Información

18

Porcentajes de Precisión Español vs Inglés del 1 al 16 de Septiembre 2018

100,00%

0,00%

100,00%

33,33%

0,00% 0,00% 0,00% 0,00% 0,00% 0,00%

16,67%

0,00%

41,18%

0,00% 0,00%

100,00%

50,00%

10,00%

42,86%

22,22%

0,00% 0,00%

16,67%

1,96% 4,41% 5,77%

53,50% 52,24%

15,20%

28,57%

60,00%

28,57%

0%

10%

20%

30%

40%

50%

60%

70%

80%

90%

100%

01-09 02-09 03-09 04-09 05-09 06-09 07-09 08-09 09-09 10-09 11-09 12-09 13-09 14-09 15-09 16-09

Día

Por

cent

aje

(%

)

Precisión (%) Español Precisión (%) Inglés

Figura 10. Gráfico Porcentaje de Precisión, español versus inglés, de 1 a 16 de Septiembre 2018, para tweets

negativos.

La Tabla 8 contiene un resumen diario de indicadores de “Recall” y “Precisión” del 1 al 16 de Septiembre 2018, tanto para idioma español como inglés, considerando solamente tweets negativos.

Tabla 8. Porcentajes "Recall" y "Precisión" para tweets negativos, en español e inglés, Septiembre 2018.

Español Inglés

Día Precisión (%) Recall (%) Precisión (%) Recall (%) Cantidad Tweets

Sábado 01-09-18 0,00% 100,00% 10,00% 33,33% 26 Domingo 02-09-18 0,00% 100,00% 42,86% 50,00% 14

Lunes 03-09-18 0,00% 100,00% 22,22% 50,00% 16 Martes 04-09-18 0,00% 100,00% 0,00% 100,00% 19

Miércoles 05-09-18 0,00% 100,00% 0,00% 0,00% 8 Jueves 06-09-18 0,00% 100,00% 16,67% 50,00% 11

Viernes 07-09-18 0,00% 100,00% 1,96% 33,33% 14 Sábado 08-09-18 57,14% 25,81% 4,41% 47,37% 130

Domingo 09-09-18 81,75% 62,92% 5,77% 100,00% 454 Lunes 10-09-18 93,79% 83,84% 53,50% 47,35% 294

Martes 11-09-18 35,50% 72,45% 52,24% 51,47% 362 Miércoles 12-09-18 37,31% 75,76% 15,20% 64,04% 113

Jueves 13-09-18 53,30% 61,78% 28,57% 100,00% 577 Viernes 14-09-18 0,00% 100,00% 60,00% 23,08% 18 Sábado 15-09-18 20,00% 25,00% 28,57% 27,59% 37

Domingo 16-09-18 62,50% 23,26% 0,00% 0,00% 77

La Tabla 9 contiene un resumen diario de indicadores de “Recall” y “Precisión” del 1 al 16 de Septiembre 2018, tanto para idioma español como inglés, considerando solamente tweets neutros.

Page 19: Informe Tesis MGF N°4 - Entregable MTI · ¿ºÇ¶Ãĺµ²µ ì´¿º´² ¶µ¶Ãº´À ²¿Å² ²Ã ² ¶Á²ÃŲ¾¶¿ÅÀ µ¶ ¿·ÀþÍź´² ²¸ ÄŶà ¶¿

Universidad Técnica Federico Santa María

Departamento de Informática Magíster en Tecnologías de la Información

19

Tabla 9. Porcentajes "Recall" y "Precisión" para tweets neutros, en español e inglés, Septiembre 2018.

Español Inglés

Día Precisión (%) Recall (%) Precisión (%) Recall (%) Cantidad Tweets

Sábado 01-09-18 60,00% 100,00% 42,86% 50,00% 26 Domingo 02-09-18 75,00% 81,82% 22,22% 50,00% 14

Lunes 03-09-18 71,43% 100,00% 0,00% 100,00% 16 Martes 04-09-18 81,25% 86,67% 0,00% 0,00% 19

Miércoles 05-09-18 100,00% 87,50% 16,67% 50,00% 8 Jueves 06-09-18 100,00% 90,00% 1,96% 33,33% 11

Viernes 07-09-18 84,62% 91,67% 4,41% 47,37% 14 Sábado 08-09-18 77,59% 93,75% 5,77% 100,00% 130

Domingo 09-09-18 89,92% 90,27% 53,50% 47,35% 454 Lunes 10-09-18 70,09% 88,17% 52,24% 51,47% 294

Martes 11-09-18 19,23% 78,95% 15,20% 64,04% 362 Miércoles 12-09-18 15,22% 58,33% 28,57% 100,00% 113

Jueves 13-09-18 79,63% 90,94% 60,00% 23,08% 577 Viernes 14-09-18 88,24% 93,75% 28,57% 27,59% 18 Sábado 15-09-18 19,35% 85,71% 0,00% 0,00% 37

Domingo 16-09-18 8,33% 100,00% 0,00% 0,00% 77

3.3 Análisis

Para Análisis de Sentimientos, tanto en español como en inglés, se ha utilizado herramienta automática Orange-Text, la cual implementa Vader y NLTK.

Se debe tener en cuenta que aproximadamente un 80% de los tweets analizados son neutros realmente y solo el 20% tiene asociado sentimiento. Los tweets analizados son útiles, dado que están relacionados directamente a la institución y su que hacer, dado que mensajes no relacionados ya sea directa o indirectamente no son tomados en cuenta en el estudio.

Del Análisis, en español, Automático versus Manual (Tabla 2) se ha obtenido en promedio, entre los meses de Enero a Septiembre de 2018, un 75,85% de “Aciertos” por parte de la herramienta Automática, en cambio, este mismo análisis ocupando la herramienta automática Vader en inglés (Tabla 3) se obtiene un 53,42% de “Aciertos”. Este patrón, donde son mayores los aciertos en español que en inglés, se repite cada mes bajo estudio. Por lo tanto, a primera vista parecería que el análisis automático en español es mejor que en inglés, sin embargo se debe tener en cuenta características de la data a analizar, como por ejemplo que la mayoría de la data analizada es neutra y Vader tiende a clasificar más tweets como neutros en español que en inglés, por otro lado existen tweets que en inglés la herramienta clasificó como negativos siendo que por el contexto de la labor de la institución son positivos, ejemplo: "Se ha decomisado x cantidad de pescado...". En Figura 3 se observa claramente que en todos los meses bajo análisis, los “Aciertos” fueron mayores para idioma español. A su vez, se observa que en Septiembre 2018, mes con mayor cantidad de tweets extraídos y con mayor polarización de ellos por acontecimientos de 11 se Septiembre de 1973 en Chile, la cantidad de aciertos disminuye en relación a los meses anteriores, por lo que es relevante hacer un análisis más profundo de la primera quincena de Septiembre donde hay gran cantidad de tweets polarizados positiva y negativamente.

Dado que indicador “Recall” mide porcentaje de tweets clasificados automáticamente como [Positivos | Negativos | Neutros] y que realmente eran positivos versus cantidad real (sacada de análisis manual de la

Page 20: Informe Tesis MGF N°4 - Entregable MTI · ¿ºÇ¶Ãĺµ²µ ì´¿º´² ¶µ¶Ãº´À ²¿Å² ²Ã ² ¶Á²ÃŲ¾¶¿ÅÀ µ¶ ¿·ÀþÍź´² ²¸ ÄŶà ¶¿

Universidad Técnica Federico Santa María

Departamento de Informática Magíster en Tecnologías de la Información

20

data) de [Positivos | Negativos | Neutros], este puede dar a conocer que tan acertada es realmente la herramienta de Análisis de Sentimientos automática. En Figura 4, 5 y 6 se grafica "Recall" y "Precisión" de tweets positivos, negativos y neutros respectivamente y en Tabla 4 y 5 se presentan porcentajes de "Recall" y "Precisión" del año en curso, a modo visualizar grado de acierto del análisis automático según valencia de los tweets. Destaca lo bajo del "Recall" en español en los tweets positivos (6,52%) y lo alto del mismo en los tweets neutros (91,26%), evidenciando baja confiabilidad de análisis automático en español. Por otro lado, en inglés, si bien "Recall" bordea siempre el valor medio en torno de 40% y 50%, se puede concluir que análisis automático es mejor en inglés que en español, dado que Vader registra mayor polarización de los tweets, equivocándose en aproximadamente la mitad de las veces, pero acercándose más al propósito de descubrimiento y análisis de sentimientos. La "Precisión", en inglés, es muy baja para tweets positivos y negativos, no así cuando los tweets son neutros donde es bastante más alta (más del 70%), en español este indicador es bajo para los positivos y negativos, pero bastante alto para los neutros.

Se observa que “Recall” de tweets positivos en español es muy bajo, lo que se debe fundamentalmente a que la herramienta automática clasifica como neutros tweets que para la institución son positivos, como por ejemplo: "RT @fundacionacrux: En 4 horas del operativo médico en Tocopilla (y María Elena) y Mejillones, ya hemos realizado 32 procedimientos..", donde la labor mencionada es parte del que hacer de la institución y por ende se clasifica manualmente como tweet positivo, siendo que Vader lo clasifica como neutro tanto en análisis en español como en inglés.

El indicador de Precisión suma cantidad de tweets que fueron clasificados acertadamente como [Positivos | Negativos | Neutros] versus la cantidad de tweets totales clasificados como [Positivos | Negativos | Neutros] por herramienta automática. Este indicador porcentual permite estimar cantidad de veces que un tweet Positivo, Negativo ó Neutro realmente será clasificado como tal, traduciéndose como un indicador de confianza hacia la herramienta automática. En términos globales, para período de Enero a Septiembre 2018, la precisión del análisis en español (71,86%) es mayor por un margen importante a la de análisis en inglés (46,50%); esto se debe fundamentalmente a que en inglés Vader se polarizó más que en español, es decir, se inclinó más a clasificar como positivo o negativo un tweet que en español. Y por ende, tomando en cuenta los indicadores de “Recall” y “Precisión” en conjunto estos justifican conclusión de que Vader en inglés opera mejor que en español. Específicamente, en período señalado, como se muestra en Tablas 4 y 5, Vader en español detectó polaridad un 19,83% de las veces, siendo que Vader en inglés lo hizo un 50,11% de las veces, lo que reivindica resultados arrojados por Vader en inglés, ya que minimiza distorsión producida por la naturaleza de la data analizada (80% de tweets neutros).

En Figura 7 se observa que tanto la Polaridad detectada por Vader (Positivo + Negativo) son mayores para idioma inglés, representando que si bien la precisión es más baja en inglés que en español, Vader encontró mayores niveles de Polaridad en inglés que en español. Una polaridad baja en español hace pensar que los diccionarios léxicos empleados por Vader en español no están lo suficientemente maduros.

A su vez, los resultados de “Precisión” en inglés se pueden producir básicamente por tres factores: primero, el hecho de que los tweets están siendo traducidos del español al inglés, lo que quita parte del sentido del significado real de lo escrito; segundo, la naturaleza del léxico ocupado en inglés no necesariamente cubre el dominio en el que se desempeña la institución, pudiendo haber casos en que Vader clasifique como negativo algo que la institución considera positivo en terminos de su reputación; y, tercero, la calidad de los recursos lingüísticos y diccionarios de sentimientos en español de Vader no están lo suficientemente trabajados, por lo que clasifica mayoritariamente los tweets como neutros.

En sección 3.2.2 se realiza análisis diario de una porción de la información extraída desde Twitter, escogiendo un período de tiempo marcado por mayor cantidad de tweets y retweets generados por las personas y a su vez por un contenido de estos con mayor polarización. Los días más “conflictivos” son el 11 y 12 de septiembre, donde aumentaron considerablemente los comentarios políticos y hacia la institución, sin embargo los niveles de “Acierto” bajaron en comparación con los otros días, siendo eso sí

Page 21: Informe Tesis MGF N°4 - Entregable MTI · ¿ºÇ¶Ãĺµ²µ ì´¿º´² ¶µ¶Ãº´À ²¿Å² ²Ã ² ¶Á²ÃŲ¾¶¿ÅÀ µ¶ ¿·ÀþÍź´² ²¸ ÄŶà ¶¿

Universidad Técnica Federico Santa María

Departamento de Informática Magíster en Tecnologías de la Información

21

en forma general mayores los “Aciertos” en análisis en español que en inglés, a excepción de los días más polarizados como lo fueron 11, 12, 15 y 16 de septiembre; por otro lado, el “Recall” y la “Precisión” en español fueron bajísimos, para esos días y razonables para idioma inglés, donde los “Recall” en inglés, para mensajes positivos y negativos bordearon el 50% y la “Precisión” el 25%.

Hay varios días comprendidos entre el 1 y 16 de Septiembre donde se registran valores de 0% de “Recall” y/o “Precisión” para los tweets positivos (Tabla 7), los que son consecuencia de que en esos días la herramienta automática no calificó como tweets positivos aquellos que realmente lo eran. Dado que en general los tweets referidos a la institución son de tipo informativo y por ende neutros, no es poco usual que ocurra esto algunos días en particular y hace pensar que si esta es la realidad de la institución, es bueno analizar períodos de tiempo más amplios como por ejemplo semanal o mensual.

Por otro lado, entre los días 1 y 16 de Septiembre, como se observa en Tabla 7, las cifras obtenidas de análisis en inglés, para tweets positivos, son superiores a las de análisis en español; en Tabla 8, en cambio, “Recall” es más alto en español (aproximadamente 77%) que en inglés (28%), lo que se debe principalmente a que Vader clasifica mejor mensajes negativos que positivos. A este respecto se observa que en general, los twitteros opinan positivamente de la institución usando adjetivos calificativos negativos en las frases que emplean y en mensajes negativos casi no se ocupan calificativos positivos. Esto distorsiona los resultados dado que la forma de expresar opinión dificulta encontrar polaridad real positiva cuando una frase tiene palabras positivas y negativas en ella, lo que corresponde a uno de los desafíos importantes de las herramientas de Análisis de Sentimientos automáticas. Concluyendo, se puede inferir que si bien Vader no reemplaza análisis realizado por personas de los tweets (porque “Recall” y “Precisión” son menores de un 80%), los resultados son mas confiables y superiores si se traducen los tweets al inglés y se analizan con el motor nativo de Vader.

4 Conclusiones

Se concluye que la técnica de Análisis de Sentimiento usada para analizar la reputación de una institución como la Armada de Chile no es suficientemente eficaz y por ende no puede reemplazar análisis experto realizado por personas, rechazando la hipótesis planteada, ya que no se logra un "Recall" y “Precisión” cercanos a 80%, tanto en idioma español como en traducción de los Tweets a inglés. Una de las causas fundamentales por las cuales herramienta automática, Vader, no alcanza a arrojar resultados más ajustados a la naturaleza de los Tweets en cuanto a que su valoración corresponde en gran medida a la naturaleza de los temas tratados por los twitteros, donde en reiteradas ocasiones la herramienta clasifica como negativo un tweet que en realidad apoya a la institución, por contener palabras negativas en él. Por otro parte, de los 6.077 tweets solo 1.205 (19,83%) son positivos o negativos, lo que causa distorsión, y si sólo se observa “Aciertos”, se puede llegar a una conclusión errada, creyendo que análisis automático en español es mejor que análisis automático en inglés y que en realidad Vader puede reemplazar análisis experto realizado por personas.

Como posible mejora se podría considerar intervenir diccionario léxico de Vader, para incorporar mayores opciones lingüísticas y valencia, que interpreten contexto general utilizado en la Industria particular que se quiera analizar. Dada la naturaleza de los tweets, una parte crucial para la obtención de resultados satisfactorios con una herramienta de Análisis de Sentimientos automática, es la de pre-procesamiento de los tweets y asegurarse de que estén en el formato adecuado, para lo cual las técnicas de procesamiento de lenguaje natural son importantes. NLTK y Orange-Text (interfaz gráfica que ocupa NLTK) permite realizar parte de estas tareas y contiene una herramienta tanto para idioma español como inglés, por lo que los tweets en español se tradujeron al inglés para medir resultados en ambos idiomas.

Ejemplos de pre-procesamiento pueden ser: eliminar las URL del mensaje, pues no aportan información de sentimiento, convertir los #, @, emoticones o emoji a palabras, puesto que sino pueden ser interpretados

Page 22: Informe Tesis MGF N°4 - Entregable MTI · ¿ºÇ¶Ãĺµ²µ ì´¿º´² ¶µ¶Ãº´À ²¿Å² ²Ã ² ¶Á²ÃŲ¾¶¿ÅÀ µ¶ ¿·ÀþÍź´² ²¸ ÄŶà ¶¿

Universidad Técnica Federico Santa María

Departamento de Informática Magíster en Tecnologías de la Información

22

como errores ortográficos y estos elementos si aportan sentimiento a los tweets; tokenizar o extraer las palabras del tweet; y quitar las stop words o palabras vacías, esto es, aquellas palabras que no aportan información de sentimiento como los artículos y las preposiciones, en algunos casos los hashtags son buenos indicadores para determinar la polaridad de los mensajes, etc. Cabe mencionar que cuando se traduce automáticamente los tweets de español a inglés, si la herramienta detecta muchos errores ortográficos, se detiene.

Se ha encontrado que Análisis de Sentimientos con Vader en español difiere bastante de mismo análisis en inglés en términos de “Precisión” y “Recall”, siendo los análisis en inglés menos precisos que los en español, aunque más confiables (obtienen un mejor recall) y mejores cuando existe mayor polarización en el mensaje, demostrando que la herramienta utilizada tiene mayor madurez en su idioma nativo (inglés), sin embargo la evidencia demuestra que utilización de diccionarios léxicos para la realización del Análisis de Sentimientos es efectivo, pero arroja un nivel de certeza o precisión y recall que no permite independizarse aún del análisis experto realizado por personas.

Dado nivel de “Precisión” de Vader en estudios [10] [11] se considera que análisis realizado en esta tesina reúne niveles de “Precisión” aceptables, sin embargo, se requiere incrementar nivel de robustez de la herramienta tanto en español como en inglés para obtener mayores niveles de “Recall” y “Precisión”.

Incrementar la calidad de los recursos lingüísticos con los que cuenta Vader es una opción interesante de desarrollo y mejora de la herramienta, ya que permitiría incrementar niveles de certeza en análisis automático, a su vez incorporación de contexto del contenido a analizar es relevante dado que por ejemplo en la institución bajo estudio aspectos que serían negativos en otro contexto, para la institución son positivos, ejemplo: "Búsqueda de persona desaparecida en costas de Chile ..." podría ser interpretado negativamente dado que una persona necesitó de soporte para sobrevivir, sin embargo, si la institución logró exitosamente el rescate o bien emprendió las acciones necesarias para encontrar a la persona es positivo para ella.

Una prueba interesante sería complementar los diccionarios de sentimientos usados por Vader, de modo de asegurarse de la inclusión de palabras y expresiones típicas del país.

Se debe tener en cuenta que si bien se solicitó a Twitter acceso a cuenta de API Premium, para descarga de tweets, esta no fue aprobada por ellos, por lo que la calidad de la información tratada no es la mejor dado que no se cuenta con toda la data histórica que habría sido estupendo tener para ahondar mayormente en estudio y, por otro lado, si el texto de un tweet supera 128 bytes de largo este se ve cortado a este límite establecido por la API gratuita de Twitter, cosa que según documentación no ocurriría si se contrata API Premium o Empresarial.

Otra consideración a tener presente es que en muchas ocasiones los tweets en español o inglés son difíciles de tratar, debido principalmente a que son breves perdiéndose el contexto de los mismos.

5 Trabajos futuros

Dado creciente interés por realizar Análisis automáticos de Sentimiento en idioma español, se considera que para trabajos futuros es de importancia evaluar otras herramientas existentes en el mercado, como: ANEW de Redondo, la cual data de 2007 a la fecha con énfasis reciente en mejorar precisión en textos en español. Esta herramienta implementa idioma español en forma nativa, por lo que supone buen manejo de los recursos lingüísticos de este idioma.

Por otro lado, "mejorar" diccionario léxico de Vader tanto en inglés como en español es otra área de desarrollo relevante, donde se puede realizar mejoras de acuerdo a la Industria que se quiera analizar.

Page 23: Informe Tesis MGF N°4 - Entregable MTI · ¿ºÇ¶Ãĺµ²µ ì´¿º´² ¶µ¶Ãº´À ²¿Å² ²Ã ² ¶Á²ÃŲ¾¶¿ÅÀ µ¶ ¿·ÀþÍź´² ²¸ ÄŶà ¶¿

Universidad Técnica Federico Santa María

Departamento de Informática Magíster en Tecnologías de la Información

23

Referencias

[1] http://docs.tweepy.org/en/v3.5.0/getting_started.html [2] http://www.weblantropia.com/2016/05/24/restful-api-que-es/ [3] https://es.wikipedia.org/wiki/OAuth [4] https://www.nltk.org/ [5] https://github.com/cjhutto/vaderSentiment [6] Lucas Montesinos García, “Análisis de Sentimientos y Predicción de Eventos en Twitter” – Memoria para optar al

Título de Ingeniero Civil Eléctrico, Universidad de Chile Facultad de Ciencias Físicas y Matemáticas Departamento de Ingeniería Eléctrica, Agosto 2014.

[7] Tomás Baviera, “Técnicas para el Análisis del Sentimiento en Twitter: Aprendizaje Automático Supervisado y SentiStrength”. Revista DÍGITOS N° 3, ISSN: 2444-0132 (2017), pp. 33/50.

[8] Medhat, W.; Hassan, A. & Korashy, H.: “Sentiment analysis algorithms and applications: A survey”, Ain Shams Engineering Journal, vol. 5, no 4 (2014). pp. 1093–1113. http://dx.doi.org/10.1016/j.asej.2014.04.011

[9] Bing Liu, “Sentiment Analysis and Subjectivity”, Handbook of Natural Language Processing, Cap. 26, pp. 629-661, 2010.

[10] Carlos Henríquez Miranda, Jaime Guzmán, “A Review of Sentiment Analysis in Spanish”, Colombia, TECCIENCIA, 7 Diciembre2016. DOI: http://dx.doi.org/10.18180/tecciencia.2017.22.5

[11] Antonio Fernández Anta, Luis Nuñez Chiroque y Agustín Santos del Institute IMDEA Networks, Madrid, Spain y Philippe Morere de ENSEIRB-MATMECA, Bordeaux, France, “Sentiment Analysis and Topic Detection of Spanish Tweets: A Comparative Study of NLP Techniques”.

[12] Steven Bird, Ewan Klein, and Edward Loper, “Natural Language Processing with Python” – Analyzing Text with the Natural Language Toolkit, http://www.nltk.org/book/

[13] Matthew A. Russell, “Mining the Social Web” Data Mining Facebook, Twitter, Linkedin, Google+, Github, and more, O’Reilly, 2nd Edition, 2014.

[14] Steven Bird, Ewan Klein, and Edward Loper, “Natural Language Processing with Python”, O’Reilly, 2009. [15] Nitin Hardeniya, Jacob Perkins, Deepti Chopra, Nisheeth Joshi y Iti Mathur, "Natural Language Processing:

Python and NLTK", Packt. 2016. [16] Jacob Perkins, "Python 3 Text Processing with NLTK 3 Cookbook", O’Reilly. 2014. [17] C.J. Hutto, Eric Gilbert, “VADER: A Parsimonious Rule-based Model for Sentiment Analysis of Social Media

Text”, Georgia Institute of Technology, Atlanta, http://comp.social.gatech.edu/papers/icwsm14.vader.hutto.pdf [18] Ryan Mitchell, “Web Scraping with Python_ Collecting Data from the Modern Web”, O'Reilly Media. 2015. [19] https://github.com/sixohsix/twitter/tree/master [20] Marco Bonzanini, "Mastering Social Media Mining with Python", Packt Publishing, 2016. [21] Robert Layton, "Learning Data Mining with Python", Packt Publishing, 2015. [22] https://en.wikipedia.org/wiki/Orange_(software) [23] http://orange-text.readthedocs.io/en/latest/ [24] https://es.wikipedia.org/wiki/Widget [25] https://es.wikipedia.org/wiki/Qt_(biblioteca) [26] https://blog.biolab.si/tag/sentiment-analysis/ [27] https://cloud.google.com/translate/ [28] https://www.microsoft.com/en-us/translator/trial.aspx [29] https://cloud.google.com/translate/docs/samples [30] https://dev.twitter.com/rest/public/rate-limiting [31] https://dev.twitter.com/rest/public/rate-limits [32] https://redislabs.com/ebook/part-2-core-concepts/chapter-8-building-a-simple-social-network/8-2-home-timeline/ [33] https://developer.twitter.com/en/docs/tweets/filter-realtime/guides/connecting.html

Page 24: Informe Tesis MGF N°4 - Entregable MTI · ¿ºÇ¶Ãĺµ²µ ì´¿º´² ¶µ¶Ãº´À ²¿Å² ²Ã ² ¶Á²ÃŲ¾¶¿ÅÀ µ¶ ¿·ÀþÍź´² ²¸ ÄŶà ¶¿

Universidad Técnica Federico Santa María

Departamento de Informática Magíster en Tecnologías de la Información

24

Anexos

1.- Configuraciones [20]

Se recomienda crear entorno virtual y trabajar en ese entorno todo lo relacionado con la programación del proyecto.

Desde Consola, instalar Python 3.6.

Desde Sitio Web de desarrolladores de Twitter, se debe crear usuario desarrollador y generar Consumer-Key, Consumer-Secret, Access-Token y Access-Secret. estos 4 códigos serán utilizados en adelante para autenticarse en Tweepy y de esta manera poder realizar descargas masivas de tweets.

Para ambientes Unix, como Linux o macOS, si la shell es Bash, puede setear las siguientes variables de ambiente:

export TWITTER_CONSUMER_KEY="su-consumer-key" export TWITTER_CONSUMER_SECRET="su-consumer-secret" export TWITTER_ACCESS_TOKEN="su-access-token" export TWITTER_ACCESS_SECRET="su-access-secret" En ambientes Windows, puede setear las siguientes variables de ambiente:

set TWITTER_CONSUMER_KEY="su-consumer-key" set TWITTER_CONSUMER_SECRET="su-consumer-secret" set TWITTER_ACCESS_TOKEN="su-access-token" set TWITTER_ACCESS_SECRET="su-access-secret"

Desde Consola, se debe instalar Tweepy, con siguiente comando:

$ pip install tweepy==3.3.0

Para autenticar al usuario desarrollador de Twitter se debe crear siguiente programa, llamado twitter_client.py: import os import sys from tweepy import API from tweepy import OAuthHandler def get_twitter_auth(): # Setup Twitter authentication. Devuelve objeto: tweepy.OAuthHandler try: consumer_key = os.environ['TWITTER_CONSUMER_KEY'] consumer_secret = os.environ['TWITTER_CONSUMER_SECRET'] access_token = os.environ['TWITTER_ACCESS_TOKEN'] access_secret = os.environ['TWITTER_ACCESS_SECRET'] except KeyError: sys.stderr.write("TWITTER_* environment variables not set\n") sys.exit(1) auth = OAuthHandler(consumer_key, consumer_secret) auth.set_access_token(access_token, access_secret) return auth

Page 25: Informe Tesis MGF N°4 - Entregable MTI · ¿ºÇ¶Ãĺµ²µ ì´¿º´² ¶µ¶Ãº´À ²¿Å² ²Ã ² ¶Á²ÃŲ¾¶¿ÅÀ µ¶ ¿·ÀþÍź´² ²¸ ÄŶà ¶¿

Universidad Técnica Federico Santa María

Departamento de Informática Magíster en Tecnologías de la Información

25

def get_twitter_client(): # Setup Twitter API client. Devuelve objeto: tweepy.API auth = get_twitter_auth() client = API(auth) return client

En Orangle-Text, debe incluir TWITTER_CONSUMER_KEY y TWITTER_CONSUMER_SECRET en widget Twitter e ingresar palabras clave de extracción de tweets.

2.- Programas [20]

Nota: Con programas mencionados en punto 2.1. y 2.2. de los Anexos, los archivos que se generan se graban con extensión jsonl, donde cada línea de cada uno de estos archivos corresponde a un tweet completo en formato json. Tweet completo quiere decir que las entidades están etiquetadas y el perfil de usuario está embebido en el tweet. Lo primero, significa que el análisis de entidades se simplifica ya que no es necesario buscar explícitamente por entidades como hashtags, menciones de usuario, URLs embebidas o media, dado que todas ellas son provistas por la API de Twitter en el tweet extraído. Lo segundo, significa que no es necesario almacenar el perfil de usuario, ya que éste es replicado en cada tweet.

En Twitter se difenrencia dos líneas de tiempo, la del usuario y la del home. La línea de tiempo de usuario contiene los mensajes que un usuario ha escrito, y la línea de tiempo home incluye posts de otras personas para el usuario bsjo estudio, la línea de tiempo del usuario incluye sólo los mensajes del usuario. [32] 2.1.- Extraer tweets, usando API REST de Tweepy, con programa: twitter_get_user_timeline.py

Desde Consola: python twitter_get_user_timeline.py Armada_Chile

import codecs import io import sys import json import tweepy from tweepy import Cursor from twitter_client import get_twitter_client auth = tweepy.OAuthHandler(consumer_token, consumer_secret) auth.set_access_token(access_token, access_token_secret) client = tweepy.API(auth) if __name__ == '__main__': user = sys.argv[1] client = get_twitter_client() fname = "user_timeline_{}.jsonl".format(user)

# Deja tweets en archivo con extensión jsonl.... es lo que leen

los otros programas with io.open(fname, 'w', encoding='utf8') as f: for page in Cursor(client.user_timeline, screen_name=user, count=200).pages(16): for status in page:

Page 26: Informe Tesis MGF N°4 - Entregable MTI · ¿ºÇ¶Ãĺµ²µ ì´¿º´² ¶µ¶Ãº´À ²¿Å² ²Ã ² ¶Á²ÃŲ¾¶¿ÅÀ µ¶ ¿·ÀþÍź´² ²¸ ÄŶà ¶¿

Universidad Técnica Federico Santa María

Departamento de Informática Magíster en Tecnologías de la Información

26

data = json.dumps(status._json, ensure_ascii=False)+"\n" f.write(data)

2.2.- Extraer tweets, usando Streamming API, con programa: twitter_streaming.py

Desde Consola: python twitter_streaming.py "Marina de Chile" "FFAA de Chile" "Armada de Chile" import sys import string import time import io from tweepy import Stream from tweepy.streaming import StreamListener from twitter_client import get_twitter_auth class CustomListener(tweepy.StreamListener): """Custom StreamListener for streaming Twitter data.""" def __init__(self, fname): safe_fname = format_filename(fname) self.outfile = "stream_%s.jsonl" % safe_fname def on_data(self, data): try: with io.open(self.outfile, 'a', encoding='utf8') as f: f.write(data.encode('utf-8')) return True except BaseException as e: sys.stderr.write("Error on_data: {}\n".format(e)) time.sleep(5) return True def on_error(self, status): if status == 420: sys.stderr.write("Rate limit exceeded\n") return False else: sys.stderr.write("Error {}\n".format(status)) return True def format_filename(fname): #Convert fname into a safe string for a file name. Return: string return ''.join(convert_valid(one_char) for one_char in fname) def convert_valid(one_char): #Convert a character into '_' if "invalid". Return: string valid_chars = "-_.%s%s" % (string.ascii_letters, string.digits) if one_char in valid_chars: return one_char else: return '_' if __name__ == '__main__': query = sys.argv[1:] # list of CLI arguments

Page 27: Informe Tesis MGF N°4 - Entregable MTI · ¿ºÇ¶Ãĺµ²µ ì´¿º´² ¶µ¶Ãº´À ²¿Å² ²Ã ² ¶Á²ÃŲ¾¶¿ÅÀ µ¶ ¿·ÀþÍź´² ²¸ ÄŶà ¶¿

Universidad Técnica Federico Santa María

Departamento de Informática Magíster en Tecnologías de la Información

27

query_fname = ' '.join(query) # string auth = get_twitter_auth() auth = tweepy.OAuthHandler(consumer_token, consumer_secret) auth.set_access_token(access_token, access_token_secret) twitter_stream = tweepy.Stream(auth, CustomListener(query_fname)) twitter_stream.filter(track=query, async=True)

Cuando se corre el programa twitter_streaming.py, se le deben proveer argumentos por línea de comando. Esos argumentos separados por un espacio en blanco serán las palabras clave usadas por el listener para descargar tweets.

2.3. Análisis de tweets - Análisis de entidad, con programa: twitter_get_home_timeline.py Armada_Chile

from the API import json from tweepy import Cursor from twitter_client import get_twitter_client if __name__ == '__main__': client = get_twitter_client() with open('home_timeline.jsonl', 'w') as f: for page in Cursor(client.home_timeline, count=200).pages(4): for status in page: f.write(json.dumps(status._json)+"\n")

2.4. Análisis de tweets - Análisis de entidad, con programa: twitter_hashtag_frequency.py

Este programa sirve para extraer los hashtags desde archivo producido por programa twitter_get_user_timeline.py

import sys from collections import Counter import json from csv import writer def get_hashtags(tweet): entities = tweet.get('entities', {}) hashtags = entities.get('hashtags', []) return [tag['text'].lower() for tag in hashtags] if __name__ == '__main__': fname = sys.argv[1] with open(fname, 'r', encoding='utf8') as f, \ open(sys.argv[2], 'w', encoding='utf8', newline='') as out_file: hashtags = Counter() #print (out_file, 'HASHTAGS, FRECUENCIA') csv = writer(out_file) h = (['HASHTAGS','FRECUENCIA']) csv.writerow(h)

Page 28: Informe Tesis MGF N°4 - Entregable MTI · ¿ºÇ¶Ãĺµ²µ ì´¿º´² ¶µ¶Ãº´À ²¿Å² ²Ã ² ¶Á²ÃŲ¾¶¿ÅÀ µ¶ ¿·ÀþÍź´² ²¸ ÄŶà ¶¿

Universidad Técnica Federico Santa María

Departamento de Informática Magíster en Tecnologías de la Información

28

for line in f: tweet = json.loads(line) hashtags_in_tweet = get_hashtags(tweet) hashtags.update(hashtags_in_tweet) for tag, count in hashtags.most_common(30): print("{}: {}".format(tag, count)) # Pull out various data from the tweets row = ( tag, count ) values = [(value.encode('utf-8') if hasattr(value, 'encode') else value) for value in row] csv.writerow(values)

Por ejemplo, los diez hashtags más frecuentes de Enero a Junio de 2018 para el usuario Armada_Chile fueron:

Tabla 10. Hashtags más frecuentes.

HASHTAGS FRECUENCIA

autoridadmarítima 129 mesdelmar 106 velaslatinoamerica2018 171 valparaíso 69 somosarmada 65 marejadas 64 iquique 63 quintero 51 respetaelmar 45

yovivoel21 43 A su vez, se analiza cantidad de tweet con y sin hashtags por usando programa: twitter_hashtag_stats.py

Tabla 11. Tweets y sus hashtags año 2018.

Tweets sin hashtags Tweets con al menos un hashtag

2053 tweets without hashtags (58.09%) 1481 tweets with at least one hashtag (41.91%)

Tabla 12. Porcentaje de tweets y hashtags año 2018.

Cantidad de Tweets Cantidad de Hashtags Porcentaje

2053 0 58,09% 1011 1 28,61% 349 2 9,88% 86 3 2,43% 23 4 0,65% 6 5 0,17% 1 6 0,03%

5 9 0,14%

Page 29: Informe Tesis MGF N°4 - Entregable MTI · ¿ºÇ¶Ãĺµ²µ ì´¿º´² ¶µ¶Ãº´À ²¿Å² ²Ã ² ¶Á²ÃŲ¾¶¿ÅÀ µ¶ ¿·ÀþÍź´² ²¸ ÄŶà ¶¿

Universidad Técnica Federico Santa María

Departamento de Informática Magíster en Tecnologías de la Información

29

3.- Limpieza de tweets

Mediante uso de ETL Pentaho Data Integration, se eliminan caracteres "extraños"

a.- Quitar caracteres extraños b.- Transformar textos reemplazando códigos unicode por catacter en UTF-8 c.- Todo en minúscula d.- Recalcular y generar archivo(s) Excel correspondiente(s). Opcional uso de tablas

Preparar data para Análisis de Sentimientos con NLTK tanto en español como en inglés a.- Tokenizar b.- Stopwords c.- Lematizar

import nltk

def porcentaje(palabra,texto): tokens=nltk.word_tokenize(texto,"spanish") conteo_individual=tokens.count(palabra) palabras_totales=len(tokens) tokens_conjunto=set(tokens) palabras_diferentes=len(tokens_conjunto) porcentaje=100*conteo_individual/palabras_totales return porcentaje

4.- Rate Limits Twitter APIs

Las APIs de Twitter API limitan el acceso a las aplicaciones de acuerdo a tasas permitidas de descarga. Estos límites se establecen en función del uso que los usuarios pueden tener o mejor dicho en base al Access Token con el cual se autentica contra la API. Esto significa que cuando una aplicación usa la autentificación application-only, los rate limits son considerados globalmente para la aplicación como un todo; mientras que con el enfoque de autentificación por usuario, la aplicación puede aumentar el número global de solicitudes a la API. [20]

Si la aplicación de descarga de data excede los rate limit de Twitter, devolverá un mensaje de error en vez de data (tweets). Por otra parte, si se continúa realizando más peticiones a la API, el tiempo necesario para obtener acceso regular, otra vez, aumentará dado que Twitter nos puede marcar como potenciales abusadores. Cuando la aplicación de extracción de data necesita muchas solicitudes a la API, se hace necesario implementar una manera de evitar sobrepasar los rate limits. En Python, el módulo de tiempo, parte de la biblioteca estándar, permite incluir suspensiones arbitrarias de la ejecución de código, usando la función time.sleep(). [20]

Se debe tener en consideración que con la API de Twitter: Tweepy, se puede extraer como máximo 800 tweets de home timeline y 3200 de user timeline. [32] Por otro lado, si se utiliza Streaming, Twitter no hace público el número de intentos de conexión que causará una tasa que limita la descarga de tweets, pero hay cierta tolerancia para pruebas y desarrollo. De vez en cuando algunos intentos de conexión no activará un límite. Sin embargo, es esencial dejar de intentar de conectarse durante unos minutos si se recibe una respuesta HTTP 420. Si con la cuenta de desarrollador que permite descargar tweets excede con frecuencia los límites de Twitter, es posible que la IP sea bloqueada a Twitter por un período indeterminado de tiempo. [33] Es por esta razón que en se utilizar este método de descarga produzca lagunas de información.

Dado que Twitter permite uso de API gratuita, Tweepy en su modalidad RESTfull o Streaming, y API de pago, los umbrales de Rate Limits variarán en función del tipo de “contrato” que se tenga con Twitter. La documentación oficial al respecto se encuentra en [30] y [31]. Además, se debe considerar que Twitter tiene la facultad de ir cambiando los umbrales establecidos a discrecionalidad de su criterio, por lo que es recomendable revisar cuales son los Rate Limits establecidos cuando se “contrata” o “suscribe” la cuenta de desarrollador.

Page 30: Informe Tesis MGF N°4 - Entregable MTI · ¿ºÇ¶Ãĺµ²µ ì´¿º´² ¶µ¶Ãº´À ²¿Å² ²Ã ² ¶Á²ÃŲ¾¶¿ÅÀ µ¶ ¿·ÀþÍź´² ²¸ ÄŶà ¶¿

Universidad Técnica Federico Santa María

Departamento de Informática Magíster en Tecnologías de la Información

30

5.- Tablas Indicadores Año – Mes

En esta sección se despliega data en tablas que ha sido utilizada en gráficos de sección 3.2.1 de documento.

Tabla 13. Porcentaje de “Acierto” de tweets positivos por Año – Mes, período Enero a Septiembre 2018.

Porcentaje Aciertos (%)

Español Inglés

2018 Enero 61,18% 41,94%

2018 Febrero 78,54% 50,49%

2018 Marzo 81,75% 53,75% 2018 Abril 78,96% 67,76% 2018 Mayo 85,02% 64,91% 2018 Junio 82,47% 47,87% 2018 Julio 79,01% 69,38% 2018 Agosto 72,87% 53,99%

2018 Septiembre 62,82% 30,72%

Tabla 14. Porcentajes de “Recall” y “Precisión” de tweets positivos por Año – Mes, período Enero a Septiembre 2018.

Recall (%) Precisión (%)

Positivo (español) Positivo (inglés) Positivo (español) Positivo (inglés) 2018 Enero 3,39% 44,07% 26,09% 28,57% 2018 Febrero 8,45% 54,93% 40,00% 22,16% 2018 Marzo 8,33% 56,25% 30,77% 15,79%

2018 Abril 0,00% 18,00% 0,00% 12,33%

2018 Mayo 4,44% 42,22% 4,26% 8,12% 2018 Junio 2,17% 39,13% 5,88% 8,87%

2018 Julio 18,97% 36,21% 28,95% 22,83% 2018 Agosto 9,88% 56,79% 28,57% 26,44%

2018 Septiembre 3,09% 49,23% 34,78% 22,41%

6,52% 44,09% 22,78% 20,21%

Tabla 15. Porcentajes de “Recall” y “Precisión” de tweets negativos por Año – Mes, período Enero a Septiembre 2018.

Recall (%) Precisión (%)

Negativo (español) Negativo (inglés) Negativo (español) Negativo (inglés)

2018 Enero 0,00% 0,00% 0,00% 0,00% 2018 Febrero 83,33% 25,00% 40,00% 6,25% 2018 Marzo 25,00% 75,00% 5,56% 13,04% 2018 Abril 25,00% 33,33% 25,00% 18,18%

2018 Mayo 75,00% 50,00% 10,34% 6,45%

2018 Junio 50,00% 75,00% 9,09% 11,11% 2018 Julio 0,00% 0,00% 0,00% 0,00% 2018 Agosto 100,00% 100,00% 23,08% 17,65%

2018 Septiembre 64,47% 12,11% 61,10% 33,21%

46,98% 41,16% 52,89% 21,53%

Page 31: Informe Tesis MGF N°4 - Entregable MTI · ¿ºÇ¶Ãĺµ²µ ì´¿º´² ¶µ¶Ãº´À ²¿Å² ²Ã ² ¶Á²ÃŲ¾¶¿ÅÀ µ¶ ¿·ÀþÍź´² ²¸ ÄŶà ¶¿

Universidad Técnica Federico Santa María

Departamento de Informática Magíster en Tecnologías de la Información

31

Tabla 16. Porcentajes de “Recall” y “Precisión” de tweets neutros por Año – Mes, período Enero a Septiembre 2018.

Recall (%) Precisión (%)

Neutro (español) Neutro (inglés) Neutro (español) Neutro (inglés)

2018 Enero 87,85% 42,28% 67,25% 65,75% 2018 Febrero 93,58% 50,46% 82,70% 88,71% 2018 Marzo 92,53% 53,74% 87,26% 90,78%

2018 Abril 94,08% 77,30% 83,14% 86,72%

2018 Mayo 90,17% 66,43% 93,72% 95,36%

2018 Junio 92,15% 48,61% 89,66% 89,30%

2018 Julio 90,09% 75,80% 86,31% 87,54% 2018 Agosto 90,07% 52,74% 78,51% 83,24%

2018 Septiembre 90,84% 35,03% 64,61% 40,24%

91,26% 55,82% 78,02% 72,69%

6.- Indicadores Mensuales

En esta sección se despliega data en tablas y gráficos, correspondientes a análisis de Verdaderos [Positivos | Negativos | Neutros] y Falsos [Positivos | Negativos | Neutros] de cada mes entre Enero y Septiembre de 2018.

Tabla 17. Clasificación y estadísticos Enero 2018.

2018 Enero (español)

Verdaderos Falsos Aciertos (%) Errores (%) Recall (%) Precisión (%) Positivos 6 17 26,09% 73,91% 3,39% 26,09% Negativos 0 38 0,00% 100,00% 0,00% 0,00%

Neutros 347 169 67,25% 32,75% 87,85% 67,25%

353 224 61,18% 38,82% 61,18% 61,18%

2018 Enero (inglés)

Verdaderos Falsos Aciertos (%) Errores (%) Recall (%) Precisión (%) Positivos 78 195 28,57% 71,43% 44,07% 28,57% Negativos 0 50 0,00% 100,00% 0,00% 0,00% Neutros 167 87 65,75% 34,25% 42,28% 65,75%

245 332 42,46% 57,54% 42,46% 42,46%

Tabla 18. Clasificación y estadísticos Febrero 2018.

2018 Febrero (español)

Verdaderos Falsos Aciertos (%) Errores (%) Recall (%) Precisión (%) Positivos 6 9 40,00% 60,00% 8,45% 40,00% Negativos 10 15 40,00% 60,00% 83,33% 40,00% Neutros 306 64 82,70% 17,30% 93,58% 82,70%

322 88 78,54% 21,46% 78,54% 78,54%

2018 Febrero (inglés)

Verdaderos Falsos Aciertos (%) Errores (%) Recall (%) Precisión (%)

Positivos 39 137 22,16% 77,84% 54,93% 22,16% Negativos 3 45 6,25% 93,75% 25,00% 6,25%

Neutros 165 21 88,71% 11,29% 50,46% 88,71%

207 203 50,49% 49,51% 50,49% 50,49%

Page 32: Informe Tesis MGF N°4 - Entregable MTI · ¿ºÇ¶Ãĺµ²µ ì´¿º´² ¶µ¶Ãº´À ²¿Å² ²Ã ² ¶Á²ÃŲ¾¶¿ÅÀ µ¶ ¿·ÀþÍź´² ²¸ ÄŶà ¶¿

Universidad Técnica Federico Santa María

Departamento de Informática Magíster en Tecnologías de la Información

32

Tabla 19. Clasificación y estadísticos Marzo 2018.

2018 Marzo (español)

Verdaderos Falsos Aciertos (%) Errores (%) Recall (%) Precisión (%)

Positivos 4 9 30,77% 69,23% 8,33% 30,77% Negativos 1 17 5,56% 94,44% 25,00% 5,56%

Neutros 322 47 87,26% 12,74% 92,53% 87,26%

327 73 81,75% 18,25% 81,75% 81,75%

2018 Marzo (inglés)

Verdaderos Falsos Aciertos (%) Errores (%) Recall (%) Precisión (%) Positivos 27 144 15,79% 84,21% 56,25% 15,79% Negativos 3 20 13,04% 86,96% 75,00% 13,04% Neutros 187 19 90,78% 9,22% 53,74% 90,78%

217 183 54,25% 45,75% 54,25% 54,25%

Tabla 20. Clasificación y estadísticos Abril 2018.

2018 Abril (español)

Verdaderos Falsos Aciertos (%) Errores (%) Recall (%) Precisión (%) Positivos 0 10 0,00% 100,00% 0,00% 0,00% Negativos 3 9 25,00% 75,00% 25,00% 25,00% Neutros 286 58 83,14% 16,86% 94,08% 83,14%

289 77 78,96% 21,04% 78,96% 78,96%

2018 Abril (inglés)

Verdaderos Falsos Aciertos (%) Errores (%) Recall (%) Precisión (%) Positivos 9 64 12,33% 87,67% 18,00% 12,33% Negativos 4 18 18,18% 81,82% 33,33% 18,18%

Neutros 235 36 86,72% 13,28% 77,30% 86,72%

248 118 67,76% 32,24% 67,76% 67,76%

Tabla 21. Clasificación y estadísticos Mayo 2018.

2018 Mayo (español)

Verdaderos Falsos Aciertos (%) Errores (%) Recall (%) Precisión (%) Positivos 2 45 4,26% 95,74% 4,44% 4,26% Negativos 3 26 10,34% 89,66% 75,00% 10,34% Neutros 642 43 93,72% 6,28% 90,17% 93,72%

647 114 85,02% 14,98% 85,02% 85,02%

2018 Mayo (inglés)

Verdaderos Falsos Aciertos (%) Errores (%) Recall (%) Precisión (%) Positivos 19 215 8,12% 91,88% 42,22% 8,12% Negativos 2 29 6,45% 93,55% 50,00% 6,45%

Neutros 473 23 95,36% 4,64% 66,43% 95,36%

494 267 64,91% 35,09% 64,91% 64,91%

Page 33: Informe Tesis MGF N°4 - Entregable MTI · ¿ºÇ¶Ãĺµ²µ ì´¿º´² ¶µ¶Ãº´À ²¿Å² ²Ã ² ¶Á²ÃŲ¾¶¿ÅÀ µ¶ ¿·ÀþÍź´² ²¸ ÄŶà ¶¿

Universidad Técnica Federico Santa María

Departamento de Informática Magíster en Tecnologías de la Información

33

Tabla 22. Clasificación y estadísticos Junio 2018.

2018 Junio (español)

Verdaderos Falsos Aciertos (%) Errores (%) Recall (%) Precisión (%)

Positivos 1 16 5,88% 94,12% 2,17% 5,88% Negativos 2 20 9,09% 90,91% 50,00% 9,09%

Neutros 364 42 89,66% 10,34% 92,15% 89,66%

367 78 82,47% 17,53% 82,47% 82,47%

2018 Junio (inglés)

Verdaderos Falsos Aciertos (%) Errores (%) Recall (%) Precisión (%) Positivos 18 185 8,87% 91,13% 39,13% 8,87% Negativos 3 24 11,11% 88,89% 75,00% 11,11% Neutros 192 23 89,30% 10,70% 48,61% 89,30%

213 232 47,87% 52,13% 47,87% 47,87%

Tabla 23. Clasificación y estadísticos Julio 2018.

2018 Julio (español)

Verdaderos Falsos Aciertos (%) Errores (%) Recall (%) Precisión (%) Positivos 11 27 28,95% 71,05% 18,97% 28,95% Negativos 0 9 0,00% 100,00% 0,00% 0,00% Neutros 309 49 86,31% 13,69% 90,09% 86,31%

320 85 79,01% 20,99% 79,01% 79,01%

2018 Julio (inglés)

Verdaderos Falsos Aciertos (%) Errores (%) Recall (%) Precisión (%) Positivos 21 71 22,83% 77,17% 36,21% 22,83% Negativos 0 16 0,00% 100,00% 0,00% 0,00%

Neutros 260 37 87,54% 12,46% 75,80% 87,54%

281 124 69,38% 30,62% 69,38% 69,38%

Tabla 24. Clasificación y estadísticos Agosto 2018.

2018 Agosto (español)

Verdaderos Falsos Aciertos (%) Errores (%) Recall (%) Precisión (%)

Positivos 8 20 28,57% 71,43% 9,88% 28,57% Negativos 3 10 23,08% 76,92% 100,00% 23,08%

Neutros 263 72 78,51% 21,49% 90,07% 78,51%

274 102 72,87% 27,13% 72,87% 72,87%

2018 Agosto (inglés)

Verdaderos Falsos Aciertos (%) Errores (%) Recall (%) Precisión (%)

Positivos 46 128 26,44% 73,56% 56,79% 26,44% Negativos 3 14 17,65% 82,35% 100,00% 17,65%

Neutros 154 31 83,24% 16,76% 52,74% 83,24%

203 173 53,99% 46,01% 53,99% 53,99%

Page 34: Informe Tesis MGF N°4 - Entregable MTI · ¿ºÇ¶Ãĺµ²µ ì´¿º´² ¶µ¶Ãº´À ²¿Å² ²Ã ² ¶Á²ÃŲ¾¶¿ÅÀ µ¶ ¿·ÀþÍź´² ²¸ ÄŶà ¶¿

Universidad Técnica Federico Santa María

Departamento de Informática Magíster en Tecnologías de la Información

34

Tabla 25. Clasificación y estadísticos Septiembre 2018.

2018 Septiembre (español)

Verdaderos Falsos Aciertos (%) Errores (%) Recall (%) Precisión (%)

Positivos 16 30 34,78% 65,22% 3,09% 34,78% Negativos 490 312 61,10% 38,90% 64,47% 61,10%

Neutros 962 527 64,61% 35,39% 90,84% 64,61%

1468 869 62,82% 37,18% 62,82% 62,82%

2018 Septiembre (inglés)

Verdaderos Falsos Aciertos (%) Errores (%) Recall (%) Precisión (%) Positivos 255 883 22,41% 77,59% 49,23% 22,41% Negativos 92 185 33,21% 66,79% 12,11% 33,21% Neutros 371 551 40,24% 59,76% 35,03% 40,24%

718 1619 30,72% 69,28% 30,72% 30,72% En Figura 11 se grafica cantidad de tweets clasificados acertadamente y erroneamente como Neutros, Negativos y Positivos, tanto en inglés como en español. La suma del los tweets verdaderos y falsos de cada categoría totaliza la cantidad de tweets analizados en período que va desde Enero a Septiembre de 2018.

Cantidad de tweets: Verdaderos Positivos vs Falsos Positivos en español e inglés

54

512

3.801

0

512

110

2.204

183

456

1.071

0

2.022

401

828

0 500 1.000 1.500 2.000 2.500 3.000 3.500 4.000

Positivos (español)

Negativos (español)

Neutros (español)

Positivos (inglés)

Negativos (inglés)

Neutros (inglés)

Cla

sifi

caci

ón q

ue a

rroj

a V

ader

Cantidad Tweets

Verdaderos Falsos

Figura 11. Gráfico de cantidad de tweets Verdaderos Positivos y Falsos Positivos en español e inglés, de Enero a Septiembre 2018.

En Figura 12 se grafica cantidad de tweets clasificados acertadamente y erroneamente como Neutros, Negativos y Positivos, tanto en inglés como en español en función del porcentaje alcanzado por cada categoría. Período de estudio va desde Enero a Septiembre de 2018.

Page 35: Informe Tesis MGF N°4 - Entregable MTI · ¿ºÇ¶Ãĺµ²µ ì´¿º´² ¶µ¶Ãº´À ²¿Å² ²Ã ² ¶Á²ÃŲ¾¶¿ÅÀ µ¶ ¿·ÀþÍź´² ²¸ ÄŶà ¶¿

Universidad Técnica Federico Santa María

Departamento de Informática Magíster en Tecnologías de la Información

35

Porcentaje de tweets: Verdaderos Positivos vs Falsos Positivos en español e inglés

54

512

3.801

0

512

110

2.204

183

456

1.071

0

2.022

401

828

0% 10% 20% 30% 40% 50% 60% 70% 80% 90% 100%

Positivos (español)

Negativos (español)

Neutros (español)

Positivos (inglés)

Negativos (inglés)

Neutros (inglés)

Cla

sifi

caci

ón q

ue a

rroj

a V

ader

Porcentaje (% )

Verdaderos Falsos

Figura 12. Gráfico de porcentaje de tweets Verdaderos Positivos y Falsos Positivos en español e inglés, de Enero a Septiembre 2018

En Tabla 26 se muestra la relación entre Polaridad detectada por Vader versus la Precisión calculada en cada período. La Polaridad corresponde a la sumatoria de todos los resultados distintos a neutro (tanto verdaderos como falsos) divididos por la cantidad total de tweets en el período bajo estudio.

Tabla 26. Porcentaje de Polaridad vs Precisión en español e inglés.

Polaridad Precisión

Español Inglés Español Inglés

2018 Enero 10,57% 55,98% 61,18% 42,46% 2018 Febrero 9,76% 54,63% 78,54% 50,49%

2018 Marzo 7,75% 48,50% 81,75% 54,25%

2018 Abril 6,01% 25,96% 78,96% 67,76%

2018 Mayo 9,99% 34,82% 85,02% 64,91%

2018 Junio 8,76% 51,69% 82,47% 47,87%

2018 Julio 11,60% 26,67% 79,01% 69,38% 2018 Agosto 10,90% 50,80% 72,87% 53,99%

2018 Septiembre 36,29% 60,55% 62,82% 30,72%

19,83% 50,11% 75,85% 53,54% En Figura 13 se representa de manera gráfica los resultados obtenidos respecto de Polaridad detectada por Vader versus la Precisión calculada en cada mes.

Page 36: Informe Tesis MGF N°4 - Entregable MTI · ¿ºÇ¶Ãĺµ²µ ì´¿º´² ¶µ¶Ãº´À ²¿Å² ²Ã ² ¶Á²ÃŲ¾¶¿ÅÀ µ¶ ¿·ÀþÍź´² ²¸ ÄŶà ¶¿

Universidad Técnica Federico Santa María

Departamento de Informática Magíster en Tecnologías de la Información

36

Polaridad vs Precisión

10,57% 9,76% 7,75% 6,01%9,99% 8,76% 11,60% 10,90%

38,50%

55,98% 54,63%48,50%

25,96%

34,82%

51,69%

26,67%

50,80%

60,86%61,18%

78,54%81,75% 78,96%

85,02% 82,47%79,01%

72,87%

50,57%

42,46%

50,49%54,25%

67,76% 64,91%

47,87%

69,38%

53,99%

30,82%

0%

10%

20%

30%

40%

50%

60%

70%

80%

90%

2018 Enero 2018 Febrero 2018 Marzo 2018 Abril 2018 Mayo 2018 Junio 2018 Julio 2018 Agosto 2018Septiembre

Año - Mes

Por

cent

aje

(%)

Polaridad Español Polaridad Inglés Precisión Español Precisión Inglés

Figura 13. Porcentaje de Polaridad vs Precisión en español e inglés.