PARIDAD DE HERRAMIENTAS PARA EL ANÁLISIS DE …

84
PARIDAD DE HERRAMIENTAS PARA EL ANÁLISIS DE SENTIMIENTOS SOBRE UN CORPUS EN ESPAÑOL GENERADO DESDE TWITTER Autor: Christhopher González Guerra Profesor Guía: Marcelo Reyes Rogget Facultad de Ingeniería UNIVERSIDAD ANDRÉS BELLO TESIS PARA OPTAR AL GRADO DE MAGÍSTER EN GESTIÓN DE TECNOLOGÍAS DE INFORMACIÓN Y TELECOMUNICACIONES Santiago de Chile - Agosto 2020

Transcript of PARIDAD DE HERRAMIENTAS PARA EL ANÁLISIS DE …

Page 1: PARIDAD DE HERRAMIENTAS PARA EL ANÁLISIS DE …

PARIDAD DE HERRAMIENTASPARA EL ANÁLISIS DE

SENTIMIENTOS SOBRE UNCORPUS EN ESPAÑOL GENERADO

DESDE TWITTER

Autor: Christhopher González Guerra

Profesor Guía: Marcelo Reyes Rogget

Facultad de IngenieríaUNIVERSIDAD ANDRÉS BELLO

TESIS PARA OPTAR AL GRADO DE MAGÍSTER EN GESTIÓN DETECNOLOGÍAS DE INFORMACIÓN Y TELECOMUNICACIONES

Santiago de Chile - Agosto 2020

Page 2: PARIDAD DE HERRAMIENTAS PARA EL ANÁLISIS DE …

ResumenHoy en día, las redes sociales se han convertido en un medio en el cual las personas

pueden expresarse libremente a través de internet. Dado este escenario, muchas empresas seencuentran en la necesidad de saber que es lo que opinan los clientes de sus bienes, servicios,posventa, atención, etc.

Para saber que es lo que opinan los clientes, existe una diversidad de herramientasde análisis de sentimientos gratuitas y comerciales que nos permiten conocer y clasificarcomo positiva, negativa o neutra las opiniones de clientes en redes sociales. El problemase encuentra en tomar la decisión de que herramienta utilizar. El inconveniente de analizaropiniones en Twitter, es que el uso del lenguaje que se emplea, es informal, y esto puede serun impedimento para las herramientas de análisis de sentimientos.

Para este caso de estudio, utilizaremos técnicas de pre-procesamiento de datos, paralimpiar los tweets a analizar y hacer que las herramientas de análisis de sentimientos quevamos a utilizar y comparar, trabajen en las mismas condiciones.

II

Page 3: PARIDAD DE HERRAMIENTAS PARA EL ANÁLISIS DE …

ÍndiceResumen II

Índice de Figuras VI

Índice de Tablas VII

1. Introducción 11.1. Motivación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11.2. Contexto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1

2. Problemática y Objetivos 32.1. Identificación del Problema . . . . . . . . . . . . . . . . . . . . . . . . . . 32.2. Hipótesis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32.3. Diagrama de Ishikawa . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42.4. Objetivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

2.4.1. Objetivo General . . . . . . . . . . . . . . . . . . . . . . . . . . . 52.4.2. Objetivos Específicos . . . . . . . . . . . . . . . . . . . . . . . . . 5

3. Marco Teórico 63.1. ¿Qué es el Sentimiento? . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63.2. Análisis de sentimientos . . . . . . . . . . . . . . . . . . . . . . . . . . . 63.3. Metas del Análisis de Sentimientos . . . . . . . . . . . . . . . . . . . . . . 63.4. Background . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

3.4.1. Definición de conceptos principales . . . . . . . . . . . . . . . . . 73.4.2. Tareas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83.4.3. Técnicas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

3.5. Aprendizaje Computacional . . . . . . . . . . . . . . . . . . . . . . . . . 133.5.1. Clasificación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133.5.2. Aprendizaje supervisado . . . . . . . . . . . . . . . . . . . . . . . 143.5.3. Aprendizaje no supervisado . . . . . . . . . . . . . . . . . . . . . 153.5.4. Aprendizaje semi-supervisado . . . . . . . . . . . . . . . . . . . . 16

3.6. Preprocesamiento de textos . . . . . . . . . . . . . . . . . . . . . . . . . . 163.6.1. Definición . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163.6.2. Técnicas comunes de preprocesamiento . . . . . . . . . . . . . . . 17

3.7. Evaluación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19

Page 4: PARIDAD DE HERRAMIENTAS PARA EL ANÁLISIS DE …

Índice

3.7.1. Matriz de Confusión . . . . . . . . . . . . . . . . . . . . . . . . . 193.7.2. Sensibilidad (Recall) . . . . . . . . . . . . . . . . . . . . . . . . . 193.7.3. Precisión . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 193.7.4. Valor F . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20

4. Estado del Arte 214.1. Google Cloud Natural Language API . . . . . . . . . . . . . . . . . . . . 21

4.1.1. Acerca de Google Cloud Natural Language . . . . . . . . . . . . . 214.1.2. Características principales del API de Google . . . . . . . . . . . . 214.1.3. Especificando el contenido del archivo de texto de entrada . . . . . 224.1.4. Archivo de salida de análisis de sentimientos . . . . . . . . . . . . 224.1.5. Interpretación de los valores de análisis de sentimiento . . . . . . . 24

4.2. Microsoft Azure Text Analytics API . . . . . . . . . . . . . . . . . . . . . 254.2.1. Acerca de Text Analytics . . . . . . . . . . . . . . . . . . . . . . . 254.2.2. Conceptos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 264.2.3. Preparación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 264.2.4. Paso 1: Estructurar la solicitud . . . . . . . . . . . . . . . . . . . . 284.2.5. Paso 2: Enviar la solicitud . . . . . . . . . . . . . . . . . . . . . . 304.2.6. Paso 3: Ver los resultados . . . . . . . . . . . . . . . . . . . . . . 30

4.3. IBM Watson Natural Language Understanding . . . . . . . . . . . . . . . 314.3.1. Acerca de IBM Watson Natural Language Understanding . . . . . 314.3.2. Características . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31

4.4. MonkeyLearn . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 354.5. Meaning Cloud . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 354.6. Recast AI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 364.7. Amazon Comprehend . . . . . . . . . . . . . . . . . . . . . . . . . . . . 374.8. Rossete Text Analytics . . . . . . . . . . . . . . . . . . . . . . . . . . . . 384.9. Semantria . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 384.10. Otros tipos herramientas . . . . . . . . . . . . . . . . . . . . . . . . . . . 394.11. Comparación de técnicas de Machine Learning . . . . . . . . . . . . . . . 404.12. Evaluación comparativa de herramientas de análisis de sentimiento de Twitter 40

4.12.1. Evaluación de Datasets y Métricas . . . . . . . . . . . . . . . . . . 414.12.2. Resultados del experimento . . . . . . . . . . . . . . . . . . . . . 42

5. Comparación de Herramientas 46

IV

Page 5: PARIDAD DE HERRAMIENTAS PARA EL ANÁLISIS DE …

Índice

6. Plan de Trabajo 476.1. Estructura de Desglose de Trabajo (Vista de Árbol) . . . . . . . . . . . . . 486.2. Estructura de Desglose de Trabajo (Vista Jerárquica) . . . . . . . . . . . . 496.3. Matriz de Riesgos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50

7. Resultados 517.1. Resultado de la efectividad del clasificador . . . . . . . . . . . . . . . . . . 517.2. Resultado del tiempo de procesamiento . . . . . . . . . . . . . . . . . . . 527.3. Resultado de usabilidad (cantidad de pasos) . . . . . . . . . . . . . . . . . 53

8. Análisis de los Resultados 588.1. Análisis de la efectividad del clasificador . . . . . . . . . . . . . . . . . . . 588.2. Análisis del tiempo de procesamiento . . . . . . . . . . . . . . . . . . . . 588.3. Análisis de usabilidad (cantidad de pasos) . . . . . . . . . . . . . . . . . . 598.4. Tabla comparativa de las herramientas . . . . . . . . . . . . . . . . . . . . 60

9. Conclusiones 619.1. Trabajos futuros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63

10. Anexos 6410.1. Scripts utilizados para la descarga, procesamiento y análisis de sentimiento 64

10.1.1. Script hecho en python para la descarga de tweets . . . . . . . . . . 6410.1.2. Script para procesar tweets y adaptarlos al formato requerido por las

herramientas de Google, Azure y AWS . . . . . . . . . . . . . . . 6610.1.3. Script para realizar análisis de sentimientos con Google Cloud Natu-

ral Language API . . . . . . . . . . . . . . . . . . . . . . . . . . 6710.1.4. Script para realizar análisis de sentimientos con Microsoft Azure

Text Analytics API . . . . . . . . . . . . . . . . . . . . . . . . . . 6810.1.5. Script para realizar análisis de sentimientos con IBM Watson Natural

Language Understanding . . . . . . . . . . . . . . . . . . . . . . 6910.1.6. Script para realizar análisis de sentimientos con MonkeyLearn . . . 7010.1.7. Script para realizar análisis de sentimientos con Meaning Cloud . . 7010.1.8. Script para realizar análisis de sentimientos con Recast AI . . . . . 7110.1.9. Script para realizar análisis de sentimientos con Amazon Com-

prehend . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7210.1.10.Script para realizar análisis de sentimientos con Rossete Text Analytics 73

Bibliografía 75

V

Page 6: PARIDAD DE HERRAMIENTAS PARA EL ANÁLISIS DE …

Índice de Figuras2.1. Diagrama de Ishikawa. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

3.1. Técnicas de clasificación de sentimiento. (Medhat et al., 2014) . . . . . . . 11

4.1. Logo de Google Cloud Natural Language API . . . . . . . . . . . . . . . 214.2. Logo de Microsoft Azure Text Analytics API . . . . . . . . . . . . . . . . 254.3. Logo de IBM Watson Natural Language Understanding . . . . . . . . . . 314.4. Logo de MonkeyLearn . . . . . . . . . . . . . . . . . . . . . . . . . . . . 354.5. Logo de Meaning Cloud . . . . . . . . . . . . . . . . . . . . . . . . . . . 354.6. Logo de Recast AI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 364.7. Logo de Amazon Comprehend . . . . . . . . . . . . . . . . . . . . . . . . 374.8. Logo de Rossete Text Analytics . . . . . . . . . . . . . . . . . . . . . . . 384.9. Logo de Semantria . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38

6.1. Plan de Trabajo de Tesis . . . . . . . . . . . . . . . . . . . . . . . . . . . 486.2. Estructura de Desglose de Trabajo (Vista de Árbol) . . . . . . . . . . . . . 48

7.1. Gráfico de análisis de la efectividad de los clasificadores . . . . . . . . . . 517.2. Gráfico de análisis del tiempo de procesamiento . . . . . . . . . . . . . . . 527.3. Diagrama de proceso de uso de GCP . . . . . . . . . . . . . . . . . . . . . 537.4. Diagrama de proceso de uso de Azure . . . . . . . . . . . . . . . . . . . . 547.5. Diagrama de proceso de uso de Watson . . . . . . . . . . . . . . . . . . . 547.6. Diagrama de proceso de uso de Monkey . . . . . . . . . . . . . . . . . . . 557.7. Diagrama de proceso de uso de Meaning . . . . . . . . . . . . . . . . . . . 557.8. Diagrama de proceso de uso de Recast . . . . . . . . . . . . . . . . . . . . 567.9. Diagrama de proceso de uso de AWS . . . . . . . . . . . . . . . . . . . . . 567.10. Diagrama de proceso de uso de Rosette . . . . . . . . . . . . . . . . . . . 577.11. Diagrama de proceso de uso de Semantria . . . . . . . . . . . . . . . . . . 57

VI

Page 7: PARIDAD DE HERRAMIENTAS PARA EL ANÁLISIS DE …

Índice de Tablas3.1. Matriz de Confusión . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19

4.1. Muestra de sentimiento del API de Google . . . . . . . . . . . . . . . . . . 254.2. Funcionalidades de Text Analytics . . . . . . . . . . . . . . . . . . . . . . 264.3. Parámetros para el archivo JSON como input de Text Analytics . . . . . . . 294.4. Descripción general de las pruebas realizadas en los distintos Datasets . . . 414.5. Acurracy de 15 herramientas (Stand-Alone) de A.S en 5 Datasets . . . . . . 444.6. Acurracy de 5 herramientas (Workbench) de A.S en 5 Datasets . . . . . . . 444.7. Recall a nivel de clase para herramientas Stand-Alone y Workbench en

Datasets de Tecnología y Telecomunicaciones . . . . . . . . . . . . . . . . 45

6.1. Tabla de análisis de riesgos . . . . . . . . . . . . . . . . . . . . . . . . . . 506.2. Matriz de Riesgos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50

8.1. Tabla resumen de las herramientas en base a las métricas de los objetivos . 60

VII

Page 8: PARIDAD DE HERRAMIENTAS PARA EL ANÁLISIS DE …

1. Introducción

1.1. Motivación

La motivación principal para realizar el trabajo de tesis, es investigar sobre los nuevosavances de las herramientas de análisis de sentimientos, identificar sus ventajas, desventajas,velocidad, precisión, y las dificultades que conlleva en el área de análisis y extracción deopiniones no estructuradas. Por otro lado, los políticos, pequeñas y medianas empresasnecesitan saber que es lo que piensan los usuarios de sus productos y servicios para tomar lasdecisiones adecuadas para su negocio.

Es por esta razón que se dispondrá de un análisis comparativo de herramientas para queaquellas organizaciones que hacen análisis de sentimientos, utilicen el programa que mejorse adapte a sus necesidades.

1.2. Contexto

El análisis de sentimientos, pero más conocido y distinguido como Opinion Mining esuno de los temas de investigación más reciente en el campo del procesamiento de la infor-mación y el aprendizaje automático (Machine Learning) en esta era de transformación digital.

Parte del estudio realizado se enfoca sobre la situación actual de los algoritmos deaprendizaje computacional, como por ejemplo Naive Bayes, Máquinas de Soporte Vectorial,Árboles de decisión, etc. Se definen conceptos tales como, Matriz de Confusión, Sensibilidad,Precisión, Valor F, lingüística computacional, procesamiento de lenguaje natural, MachineLearning, Inteligencia Artificial, formas de representación de texto, etc.

En la actualidad los Blogs, Microblogs, Redes Sociales se han transformado en un puntode encuentro, en la cual las personas expresan sus opiniones, comentarios, sentimientos,frustraciones, dando lugar a la siguiente pregunta: “¿Qué es lo que las personan piensan?”.Se puede llegar a responder a través de la extracción, clasificación y análisis de lo que lagente escribe, expresa y manifiesta en el mundo digital. En el contexto de clasificación deopiniones existe una serie de sub-tareas, entre ellas podemos destacar tres principalmen-te. La primera tarea consiste en determinar si el documento o texto a analizar contieneinformación objetiva o subjetiva. La segunda sub-tarea es clasificar orientación de una opi-nión, esto quiere decir si el texto dado manifiesta una opinión a favor o en contra(positiva

1

Page 9: PARIDAD DE HERRAMIENTAS PARA EL ANÁLISIS DE …

1.2 Contexto

o negativa, según sea el caso). La tercera tarea es determinar la fuerza o el grado de la opinión.

La clasificación de sentimiento ha avanzado durante los últimos años, en la actualidad,más que encontrar la polaridad de un determinado texto, se busca encontrar estados emocio-nales, tales como “enfadado”, “tristeza” o “felicidad”. Las opiniones son importantes paramuchas actividades humanas, porque influyen en nuestras conductas. En cualquier punto quetengamos que decidirnos a elegir, necesitamos saber la opinión de los demás. Es por estarazón, que ésta investigación trata temas de computación afectiva sin entrar demasiado enprofundidad.

Para esta investigación, se utilizaron 10 herramientas de análisis de sentimientos altamen-te conocidas y muy utilizadas con soporte para el idioma español.

El propósito principal de este estudio, es realizar una comparación y hacer un análisis deéstas herramientas, para conocer los pro y contras de cada una de ellas, y así las organiza-ciones que utilizan este tipo de herramientas/técnicas puedan tomar la decisión correcta ala hora en que deban seleccionar una. Algunos de los elementos que inciden en la paridadde herramientas son el tiempo de respuesta de procesamiento, el costo de la aplicación, lacomplejidad de uso, la efectividad de clasificación (precisión y exhaustividad), formato delos documentos de entrada, la salida que entregan (variables numéricas o categóricas), si sedebe hacer un mapeo de los datos, que tipos de algoritmo utilizan, etc.

Para hacer esta comparación de herramientas, vamos a crear dos Corpus en español, contextos obtenidos de Twitter. Utilizaremos el API de tweepy para recuperar los tweets de estared social durante un periodo de tiempo de aproximadamente 2 meses. El primer Corpus fuecreado a partir de temas políticos, y el según Corpus trata de temas educacionales.

Cabe destacar, que el pre-procesamiento es el primer paso para la clasificación de texto,y elegir las técnicas adecuadas de pre-procesamiento puede mejorar la efectividad de laclasificación. Es por esta razón que los tokens del Corpus creado a través de Twitter, deberánpasar por alguna técnica de pre-procesamiento.

2

Page 10: PARIDAD DE HERRAMIENTAS PARA EL ANÁLISIS DE …

2. Problemática y Objetivos

2.1. Identificación del Problema

Hoy en día las instituciones financieras, el retail, empresas de compra venta, y en generalquien ofrece un producto o servicio les interesa saber si cumplen con las necesidades desus clientes y/o consumidores para poder obtener el feedback correspondiente al productoo servicio ofrecido por la organización. De acuerdo a este contexto es necesario saber queestán opinando los consumidores y así tomar algún tipo de decisión al respecto.

En la actualidad gracias al internet es posible tener acceso a las opiniones y comentariosde las redes sociales sobre la calidad de un producto y/o servicio. El primer paso para realizarun análisis de sentimientos es determinar la polaridad, esto quiere decir que se deben separaraquellas opiniones que expresan algo a favor de las opiniones que expresan algo negativo.

Debido a la gran cantidad de documentos y comentarios de redes sociales, al trabajo dedeterminar manualmente si las opiniones sobre un producto y/o servicio tienen un sesgopositivo o negativo (polaridad), se convierte en una tarea demasiado costosa, debido a esto esnecesario utilizar herramientas que realicen el trabajo por nosotros.

La investigación propone mostrar los conceptos básicos que involucran la clasificaciónautomática de texto a través de distintas herramientas de análisis de sentimientos, utilizandodistintos métodos utilizados en la actualidad, en este caso nos basamos específicamente enTwitter.

2.2. Hipótesis

La presente investigación tiene como objetivo analizar el uso y los resultados de distintasherramientas de análisis de sentimientos, de acuerdo a éste contexto, la hipótesis tratara deresponder las siguintes preguntas:

Para poder realizar un análisis de sentimiento a un documento o frase, ¿podemos usarcualquier herramienta?, ¿existe soporte para estas herramientas en el caso de que nos falle?,¿están los usuarios capacitados para realizar este trabajo?, ¿tenemos el tiempo y el presupuestodisponible para invertir la compra y el uso de éstas herramientas?

3

Page 11: PARIDAD DE HERRAMIENTAS PARA EL ANÁLISIS DE …

2.3 Diagrama de Ishikawa

2.3. Diagrama de Ishikawa

En función a la hipótesis de la presente investigación y el diagrama de Ishikawa (ver Fig.2.1) se puede entender de mejor manera los posibles problemas que tendría una entidad/per-sona a la hora de elegir una herramienta de análisis de sentimientos.

Figura 2.1 Diagrama de Ishikawa.Fuente: Elaboración propia

Cuando se va a realizar el análisis de sentimientos a una cantidad enorme de datos, esfundamental que la herramienta que se va a utilizar procese de manera eficiente grandesvolúmenes de datos. Es por esta razón que se analizan en dos condiciones de tiempo: laprimera será la cantidad de registros procesados en un tiempo definido, y la segunda será eltiempo de respuesta de procesamiento T de N registros.

Como segunda derivada a resolver es sobre la confiabilidad de la respuestas que nosentrega la herramienta, ¿cual es la que tiene mayor porcentaje de efectividad o precisión?.

Un factor importante también es que, si se cuenta con el personal capacitado o apto pararealizar el pre-procesamiento y el procesamiento de la información, si bien no es complejoy no se necesita un conocimiento demasiado técnico, es una variable que se debe tener enconsideración. Es importante utilizar la herramienta adecuada para el recurso humano que sedispone.

4

Page 12: PARIDAD DE HERRAMIENTAS PARA EL ANÁLISIS DE …

2.4 Objetivos

2.4. Objetivos

2.4.1. Objetivo General

Comparar 9 herramientas de análisis de sentimientos con soporte para el idioma español,con la finalidad de obtener una tabla comparativa en a cuatro elementos fundamentales.

2.4.2. Objetivos Específicos

A continuación, se identifican los tres objetivos específicos de éste trabajo de tesis.

1. Velocidad de procesamiento

Medir el tiempo de procesamiento efectivo de los datos analizados con el propósito decomparar el rendimiento de velocidad de cada herramienta utilizada.

2. Precisión de los resultados obtenidos

Comparar la coherencia de los resultados que obtenidos en cada herramienta con unabase de datos etiquetada.

3. Usabilidad la herramienta

Contar la cantidad de pasos que necesita cada herramienta, desde la entrada y pre-procesamiento de los datos, hasta los archivos de de salida obtenidos.

5

Page 13: PARIDAD DE HERRAMIENTAS PARA EL ANÁLISIS DE …

3. Marco Teórico

3.1. ¿Qué es el Sentimiento?

El sentimiento se define como el estado afectivo del ánimo que es provocado por unaemoción hacia una persona, animal objeto o situación.

Los sentimientos derivan de las emociones que a su vez son reacciones instintivas queexperimenta un sujeto y de acuerdo a esto responde a ciertos estímulos externos. Por lo tanto,los sentimientos se originan de la conceptualización de las emociones.

3.2. Análisis de sentimientos

El análisis de sentimientos se refiere a los diferentes métodos de lingüística computacionalque ayudan a extraer información subjetiva del contenido existente en el mundo digital (redessociales, foros, webs, etc). Gracias al análisis del sentimiento, podemos ser capaces de extraerun valor tangible y directo, como puede ser determinar si un texto extraído de la red Internetcontiene connotaciones positivas o negativas.

3.3. Metas del Análisis de Sentimientos

Según lo descrito por Mejova, para realizar un análisis de sentimientos de manera efectiva,hay que considerar cierta tareas que son fundamentales, y que son necesarias para realizareste proceso.

La primera tarea que se debe realizar la detección del sentimiento, esto quiere decir quees lograr clasificar el texto como objetivo o subjetivo, por ejemplo “Su rostro es hermoso”, supolaridad es fácilmente identificable con el solo hecho de fijarnos en el adjetivo que posee.

El segundo paso que se debe lograr es la determinación de la polaridad del texto, estoquiere decir que a partir de un fragmento de texto se buscar clasificar la opinión en dosextremos (positivo o negativo) o en su defecto localizar la posición en una continuidad entrelas polaridades.

El proceso de clasificación pasa a ser dicotómico, esto quiere decir que pasará a serpositivo o negativo. El texto por lo general, debe pertenecer a una de las dos categorías

6

Page 14: PARIDAD DE HERRAMIENTAS PARA EL ANÁLISIS DE …

3.4 Background

mencionadas. El nivel de dificultad disminuye al procesar cuando el texto hace referenciaa una crítica, ya que poseen bien definido el sentido que se da en el texto. Sin embargoexisten casos que el proceso de clasificar la polaridad no es tan sencillo, como puede ser elcaso de una noticia, ya que dentro del texto pueden aparecer una serie de sentimientos y eldiscriminar si es “bueno” o “malo” se vuelve más complejo de discernir.

La tercera tarea que se debe lograr, que viene a ser un proceso complementario a laclasificación de sentimiento, es descubrir el objetivo de la opinión, esto quiere decir sobreque está hablando el texto. En frases o texto que suelen ser mas pequeños, esta tarea se vuelvemas simple, ya que el objetivo es claro y específico. Sin embargo, a medida que el tamañodel texto crece, como suelen ser lo blogs, páginas web, etc, es más difícil, ya que suelen tenermás de un objetivo. Otra línea de investigación es la extracción de características, que esen donde se busca encontrar palabras claves que logren determinar el objetivo o sentido deltexto.

Sin embargo, para poder realizar un análisis de polaridad y clasificar un texto debemosde hacer uso de herramientas diseñadas para este tipo de problemática.

3.4. Background

Los conceptos de análisis de sentimientos minería de opinión, análisis subjetivo, frecuen-temente se utilizan como sinónimos, sin embargo los orígenes no son exactamente iguales,ya que cada concepto presenta diferentes connotaciones. Pang and Lee (Pang and Lee, 2008)presentan una revisión más detallada sobre los orígenes de estos conceptos. De acuerdo aeste contexto, vamos a definir algunos de ellos.

3.4.1. Definición de conceptos principales

Una opinión puede definirse sencillamente como un sentimiento, actitud, emoción ovaloración positiva o negativa sobre una entidad, (que puede ser un producto, una persona,una organización, un evento o algún tema en particular) por parte de un usuario, o grupos deusuarios.

Según esta definición, una opinión se puede definir matemáticamente como una tuplade 5 elementos, ej:(e j,a jk,soi jkl,hi, tl) donde e j representa una entidad/objeto y a jk es elaspecto/característica de la entidad, soi jkl es el valor del sentimiento del autor de la opinión hi

sobre el aspecto a jk de la entidad e j en el momento tl . Ese valor puede ser positivo, negativo

7

Page 15: PARIDAD DE HERRAMIENTAS PARA EL ANÁLISIS DE …

3.4 Background

o neutro, o incluso se puede usar una clasificación más granular. hi es el autor de la opinión ytl es el momento cuando la opinión fue expresada.

Las opiniones se pueden clasificar en diferentes grupos, por ejemplo, podrían ser opi-niones regulares y comparativas. La mayoría de las opiniones son regulares y se puedensubdividir en opiniones directas o indirectas. Las opiniones directas expresan una idea sobreuna entidad o un aspecto de una entidad, mientras que las opiniones indirectas expresan unaopinión sobre una entidad o un aspecto de una entidad basado en los efectos sobre otras enti-dades. Por otro lado, las oraciones comparativas expresan la semejanza entre entidades queconsideran aspectos o características comunes. Además, las opiniones se pueden clasificar enexplícitas o implícitas, dependiendo de si expresan ideas subjetivas u objetivas.

Aparte del sentimiento y la opinión, hay dos conceptos fundamentales sobre ellos, quevendría siendo la subjetividad y la emoción. Una oración subjetiva puede expresar algunossentimientos, opiniones o creencias personales, sin embargo, no implica necesariamentealgún sentimiento. Por lo tanto, la diferencia entre oraciones objetivas y oraciones subjetivas,es que: la oración objetiva expresa cierta información objetiva sobre el mundo, mientras queuna oración subjetiva expresa algunos sentimientos, puntos de vista o creencias personales.

Un ejemplo podría ser la oración: “Creo que se han ido”. Sin embargo la subjetividada veces involucra sentimientos en cierta medida cuando se trata de un juicio, apreciación,especulación, etc. Por otro lado, se puede ver una emoción como una expresión de nuestrospropios sentimientos y pensamientos subjetivos. Las emociones están realmente cerca de lossentimientos, de hecho, la manera en que se mide la fuerza de una opinión está vinculadaa la intensidad de ciertas emociones, como el amor, la alegría, la ira, la tristeza o el miedo.Un ejemplo podría ser la frase “Me encanta ese auto”, en que el orador expresa su amorobjetivo por su auto. También es necesario comentar que el concepto de estado de ánimo,podría considerase como una combinación de emociones y sentimientos que logran incidiren el autor de un texto para escribir ese comentario.

3.4.2. Tareas

Desde el análisis de sentimientos, nacen muchas tareas, algunas de ellas están fuertementerelacionadas y es difícil de separarlas porque tienen muchos aspecto en común. las masimportantes son:

8

Page 16: PARIDAD DE HERRAMIENTAS PARA EL ANÁLISIS DE …

3.4 Background

Clasificación de Sentimientos

La clasificación de sentimientos, también llamada polaridad de sentimiento se basa enla idea de que un texto y/o documento expresa una opinión sobre la entidad de un autor ytrata de medir el sentimiento de ese autor hacia la entidad. Por lo tanto, esta tarea se enfocaprincipalmente en clasificar opiniones en tres categorías (positiva, negativa o neutral). Pareceuna tarea sencilla, pero realmente es una tarea bastante compleja, especialmente cuando lasopiniones provienen de múltiples dominios o idiomas. Esta tarea se encuentra fuertementerelacionada con la predicción de la clasificación del sentimiento. Se pueden usar diferentesescalas para medir una opinión, por ejemplo el rango [-1, 1] donde -1 indica el grado negativomáximo y 1 el grado positivo máximo, o una escala de cinco estrellas para expresar el gradode polaridad (Nigam and Hurst, 2006).

Clasificación de subjetividad

Consiste principalmente en detectar si una oración dada es subjetiva o no. Una oraciónobjetiva expresa información objetiva, mientras que una oración subjetiva puede expresarotros tipos de información personal, como emociones, creencias, etc. Además, las oracionessubjetivas pueden expresar sentimiento positivos o negativos, pero no todos lo hacen. Estatarea puede verse como un paso que precede a la clasificación de sentimientos. Una buenaclasificación de subjetividad puede asegurar una mejor clasificación de sentimientos. Inclusose considera como un proceso más difícil que el distinguir entre sentimientos positivos,negativos o neutrales (Maks and Vossen, 2012).

Resumen de opiniones

El resumen de opiniones se enfoca principalmente en extraer las características princi-pales de una entidad compartida dentro de uno o varios documentos y los sentimientos conrespecto a ellos. Por lo tanto, se pueden distinguir dos perspectivas en esta tarea: resumen deun solo documento o resumen multidocumento. El resumen de un solo documento consiste enanalizar los hechos internos presentes en el documento analizado, por ejemplo: los cambiosen la polaridad de sentimientos a lo largo del documento o la relación entre las distintasentidades y principalmente mostrar aquellos fragmentos de textos que lo describen mejor(Tata and Di Eugenio, 2010).

Por otro lado, el resumen multidocumento, una vez que se han detectado las característicasy las entidades, el sistema tiene que agrupar y ordenar las diferentes oraciones que expresansentimientos relacionados con esas entidades o características. El resumen final se puede

9

Page 17: PARIDAD DE HERRAMIENTAS PARA EL ANÁLISIS DE …

3.4 Background

presentar como un gráfico o un texto que muestre las principales características/entidades yque cuantifique el sentimiento respecto a cada uno de alguna manera, por ejemplo: agregandointensidades de sentimiento o contando el número de oraciones positivas o negativas.

Recuperación de opiniones

Esta técnica intenta recuperar documentos que expresan una opinión sobre una consultadeterminada. En este tipo de sistemas, se requieren dos scores para cada documento, elscore de relevancia y el score de opinión (ambos se ocupan generalmente para clasificardocumentos) (Lee et al., 2012; Guo and Wan, 2012).

Sarcasmo e Ironía

Esta técnica se enfoca en detectar declaraciones que contengan contenido irónico ysarcástico. Esta es una de las tareas más complicadas en este campo, especialmente debidoa la falta de acuerdo entre los investigadores sobre cómo se puede definir formalmente laironía o el sarcasmo (Reyes and Rosso, 2012).

Otros

Además de las tareas mencionadas anteriormente, se pueden resaltar otras técnicasrelacionadas con el análisis de sentimientos, por ejemplo: la detección del género de lapersona que ha escrito el texto/documento, o la detección de spam de opinión intenta detectaropiniones o comentarios que tengan contenido no confiable publicados para distorsionar laopinión pública hacia empresas, productos o servicios (Wang et al., 2012).

3.4.3. Técnicas

Varios trabajos intentan mostrar las diferentes técnicas que se aplican al Análisis deSentimiento. La mayoría de ellos agrupa los trabajos desde el punto de vista de las diferentesaplicaciones/desafíos que se pueden encontrar en el análisis de sentimientos como en (Pangy Lee, 2008) y (Liu y Zhang, 2012). Otros trabajos como (Tsytsarau y Palpanas, 2011) o(Feldman, 2013) se enfocan en los temas principales de análisis de sentimientos. Por lo tanto,Feldman agrupa todos los trabajos en cinco grupos principales: análisis de sentimiento a nivelde documento, análisis de sentimiento a nivel de oración, análisis de sentimiento basadoen aspectos, análisis de sentimiento comparativo y adquisición de léxico de sentimiento(Feldman, 2013). Y, por otro lado, Tsytsarau y Palpanas se enfocan principalmente en laagregación de opiniones, el spam de opinión y el análisis de contradicciones, especialmente

10

Page 18: PARIDAD DE HERRAMIENTAS PARA EL ANÁLISIS DE …

3.4 Background

aplicado a servicios web, por ejemplo, microblogs o datos de transmisión, entre otros(Tsytsarau y Palpanas, 2011).

Figura 3.1 Técnicas de clasificación de sentimiento. (Medhat et al., 2014)

Se presentan cuatro puntos diferentes con respecto a trabajos anteriores para clasificar lastécnicas de análisis de sentimientos: Machine Learning, Basado en Diccionarios, Estadísticay Semántica. Posiblemente, el trabajo más interesante desde el punto de vista de las técnicasde análisis de sentimientos es (Medhat et al., 2014), que presenta una categorización actuali-zada de técnicas de análisis de sentimientos que son las más conocidas (ver Fig. 3.1) queincluyen nuevas tendencias como la Detección de Emociones.

El enfoque del Machine Learning

Se pueden agrupar en dos categorías: técnicas supervisadas y no-supervisadas. El éxitode ambas técnicas se basa principalmente en la selección y extracción del conjunto apro-piado de características utilizadas para detectar sentimientos. En esta tarea, las técnicas deprocesamiento de lenguaje natural juegan un papel fundamental, y es porque algunas delas características más utilizadas son, por ejemplo: (1) términos (palabras o n-gramas) y sufrecuencia; (2) parte de la información del habla, los adjetivos pueden ser significativos; (3)las negaciones pueden cambiar el significado de cualquier oración; (4) las dependenciassintácticas (análisis de árbol) pueden determinar el significado de la oración, entro otros (Liu

11

Page 19: PARIDAD DE HERRAMIENTAS PARA EL ANÁLISIS DE …

3.4 Background

y Zhang, 2012; Chenlo y Losada, 2014).

Con respecto a las técnicas supervisadas, las máquinas de vectores de soporte (SVM),Naive Bayes, Maximum Entropy son algunas de las técnicas más comunes utilizadas (Ye,2009; Rushdi-Saleh, 2011; Montejo-Raez, 2014). Considerando que se proponen técnicassemi-supervisadas y no supervisadas cuando no es posible tener un conjunto inicial dedocumentos/opiniones etiquetadas para clasificar el resto de elementos (He y Zhou, 2011;Xianghua et al., 2013). Además, se pueden utilizar enfoques híbridos, combinando técnicassupervisadas y no supervisadas, o incluso técnicas semi-supervisadas, para clasificar lossentimientos (Kim y Lee, 2014; K onig y Brill, 2006).

El enfoque basado en Lexicón

Los enfoques basados en Lexicón, se basan principalmente en un léxico de sentimientos,es decir, una colección de términos de sentimientos conocidos, frases o incluso expresionesidiomáticas, desarrollados para los géneros tradicionales de comunicación, como el “OpinionFinder Lexicon”; pero, para este propósito se pueden utilizar estructuras aún más complejascomo ontologías (Kontopoulos, 2013), o diccionarios que miden la orientación semántica depalabras o frases (Turney, 2002; Taboada, 2011) pueden ser usados para este propósito.

Aquí se pueden encontrar dos subclasificaciones: enfoques basados en diccionarios ybasados en corpus. El primero generalmente se basa en el uso de un conjunto inicial detérminos (seeds) que generalmente se recopilan y anotan de forma manual. Este conjuntocrece buscando los sinónimos y antónimos de un diccionario. Un ejemplo de ese diccionariopodría ser WordNet, que se utilizó para desarrollar un diccionario de sinónimos llamadoSentiWordNet. El principal inconveniente de este tipo de enfoques es la incapacidad detratar con orientaciones específicas de dominio y contexto; Aun así, podría ser una solucióninteresante según el problema (Martin-Valdivia et al., 2012; MontejoRaez et al., 2014).

La segunda es una técnica basada en corpus, que nace con la finalidad de proporcionardiccionarios relacionados con un dominio específico. Estos diccionarios se generan a partirde un conjunto de términos de opiniones (semillas) que crecen a través de la búsqueda depalabras relacionadas mediante el uso de técnicas estadísticas o semánticas. Se pueden utilizarmétodos basados en estadísticas como el análisis semántico latente (LSA) (Deerwester etal., 1990), o simplemente la frecuencia de aparición de las palabras en una colección dedocumentos (Cao et al., 2011). Y, por otro lado, los métodos semánticos como el uso desinónimos y antónimos como lo hace WordNet.

12

Page 20: PARIDAD DE HERRAMIENTAS PARA EL ANÁLISIS DE …

3.5 Aprendizaje Computacional

3.5. Aprendizaje Computacional

Cuando el ser humano adquiere conocimientos, habilidades, actitudes o valores a travésdel estudio, la experiencia o la enseñanza, se dice que aprende. Este proceso es fácil para elhumano, sin embargo, lograr que una máquina aprenda como lo hacen los seres humanoses un enigma que existe desde los inicio de las computadoras. Actualmente no existe unamáquina capaz de aprender de la misma manera que lo hacen las personas, sin embargo sehan creado algoritmos eficaces para algunas tareas de aprendizaje.

En términos generales, se puede decir que, un programa aprende, si el desempeño obteni-do para realizar alguna tarea, mejora con la experiencia.

De manera formal se dice que un programa aprende de la experiencia E con respecto auna clase de tareas T y una medida de desempeño P, si su desempeño en las tareas T , medidocon P, mejora con la experiencia E.

Se puede decir entonces que el Aprendizaje Computacional estudia los procesos compu-tacionales que hay detrás del aprendizaje en humanos y en las máquinas. Esta disciplinajuega un papel fundamental en muchas áreas de la ciencia.

3.5.1. Clasificación

La clasificación de textos surge con la necesidad de separar documentos de un tema oclasificación específica de un conjunto de documentos de diferentes temas. Al lograr clasificarlos documentos por temas, la búsqueda de información se puede realizar de manera sencilla.

Debido al elevado número de documentos que pueden pertenecer a una colección dedocumentos, sobretodo en formato electrónico, realizar la clasificación de forma manual,provoca que la tarea sea complicada, costosa y que se requiera mucho tiempo, por lo quesurge la idea de hacerlo automáticamente.

Así es como surge el área de Clasificación Automática de textos, en la cual se han utilizadodiferentes métodos estadísticos y más recientemente técnicas de aprendizaje computacional.

13

Page 21: PARIDAD DE HERRAMIENTAS PARA EL ANÁLISIS DE …

3.5 Aprendizaje Computacional

3.5.2. Aprendizaje supervisado

En el aprendizaje supervisado, los algoritmos trabajan con datos que se encuentran“etiquetados” (labeled data), intentando encontrar una función que, dadas las variables deentrada (input data), les asigne la etiqueta de salida adecuada. El algoritmo se entrena con un“histórico” de datos y así se “aprende” a asignar la etiqueta de salida adecuada a un nuevovalor, es decir, que predice el valor de salida.

A continuación, describiremos algunos de los clasificadores de aprendizaje supervisadomás conocidos.

Clasificador Naïve Bayes

Es un método de clasificación supervisado y generativo que se basa en el teorema deBayes y en la premisa de independencia de los atributos para obtener la probabilidad de queun documento pertenezca a una determinada clase como se indica en la siguiente ecuación:

P(Ci | D) ∝ P(Ci)n

∏k=1

P( fk |Ci)

Donde fk son los atributos del documento, Ci es la clase y P( fk |Ci) es la probabilidad deocurrencia de atributo en la clase dada, La clase seleccionada por el clasificador sera la quemaximice la probabilidad anterior.Las implementaciones del algoritmo Naïve Bayes difieren principalmente en la aproximaciónde P( fk | Ci) y las técnicas de smoothing utilizadas para el tratamiento de probabilidadesbajas o nulas.

Clasificador Modelo de Máxima Entropía (MaxEnt)

Es un método de clasificación discriminativo donde los documentos del conjunto de datosson descriptos a partir de una lista de atributos, siendo cada uno, una restricción del modelo.Este método se basa en seleccionar la distribución de probabilidad que satisfaga todas lasrestricciones del modelo y maximice la entropía. Esto apunta a preservar la incertidumbretanto como sea posible.En modelos de máxima entropía, la probabilidad de que un documento pertenezca a unaclase se define en la siguiente ecuación:

P(c | x) =exp(∑N

i=0 wci fi)

∑c′∈C exp(∑Ni=0 wc′i fi)

14

Page 22: PARIDAD DE HERRAMIENTAS PARA EL ANÁLISIS DE …

3.5 Aprendizaje Computacional

Donde c es la clase que se desea evaluar, x es el documento, fi es cada atributo wci es el pesode ese atributo para la clase c que se está evaluando y wc′i es el peso del atributo de cada unade las posibles clases.El cálculo de peso es un problema complejo conocido como convex optimization que buscamaximizar la verosimilitud del modelo.

Clasificador Support Vector Machines

Es un método supervisado de clasificación binaria, en la cual el entrenamiento consiste enencontrar un hiperplano que separe los vectores de atributos que representan los documentosdel conjunto de datos en dos grupos, siendo esta separación la más grande posible. Aquellosvectores que definen los márgenes de la máxima separación entre las clases se conocen comosupport vectors.Para la predicción de la clase utilizando este modelo se define la siguiente ecuación:

f (x) = sign(∑i

αixi · x+b)

Siendo x el vector de atributos del documento a clasificar, αi cada uno de los pesos queponderan los vectores de atributos identificados como support features, xi cada uno de lossupport features y b el término independiente. Un valor de -1 indicará que el documentopertenece a una clase y un valor de +1 a la otra, lo que representa de qué lado del hiperplanose encuentra x.

Clasificador Decision Tree

Es un método de clasificación supervisado en el que en el entrenamiento consiste en laconstrucción de un árbol de decisión de múltiples caminos en el que para cada nodo se buscael atributo que provee mayor ganancia de información para la clase. El árbol crece hasta sutamaño máximo y luego es acotado para mejorar su capacidad de generalización para losdatos que no ocurren en el conjunto de datos de entrenamiento. A partir de este modelo seinfieren reglas de decisión sobre las cuales se basa la clasificación.

3.5.3. Aprendizaje no supervisado

El aprendizaje no-supervisado tiene lugar cuando no se dispone de datos “etiquetados”para el entrenamiento. Sólo se conocen los datos de entrada, pero no existen datos de salida

15

Page 23: PARIDAD DE HERRAMIENTAS PARA EL ANÁLISIS DE …

3.6 Preprocesamiento de textos

que correspondan a un determinado input. Por lo tanto, sólo podemos describir la estructurade los datos, para intentar encontrar algún tipo de organización que simplifique el análisis.Por ello, tiene un enfoque exploratorio.

A continuación describiremos un algoritmo de aprendizaje no-supervisado.

Polaridad de Turney

Es un algoritmo no-supervisado de clasificación subjetiva de textos que se basa en predecirla polaridad de un documento a partir de su orientación semántica.Este modelo consiste en extraer de los documentos aquellos bigramas que cumplen condeterminados patrones de opinión y luego calcular la orientación semántica a partir de ladistancia de cada bigrama a los términos del idioma inglés, “excelent” y “poor” que sugierenreferencias positivas y negativas respectivamente según la siguiente ecuación:

SO(phrase) = log2[hits(phrase NEAR “excelent”)hits(“poor”)hits(phrase NEAR “poor”)hits(“excelent”)

]

3.5.4. Aprendizaje semi-supervisado

El aprendizaje semi-supervisado es la combinación del aprendizaje supervisado y elno-supervisado. En éste se aprende con la ayuda de dos conjuntos. Uno que contiene datosasociados a una clase, y el otro que contiene datos no asociados a una clase. La idea esaprender con los datos asociados a su clase y asociar una clase a los datos que no contienenasociada una clase. Algunos de los algoritmos más comunes son: Co-training ASSEMBLE yself-training.

3.6. Preprocesamiento de textos

3.6.1. Definición

El preprocesamiento es el procedimiento de limpieza y preparación de los textos que seclasificarán. Es un hecho que los textos no estructurados en Internet, en nuestro caso Twitter,contienen grandes cantidades de ruido. Por el término ruido, lo definimos como datos que noaportan información útil para el análisis en cuestión, es decir, el análisis de sentimiento.

16

Page 24: PARIDAD DE HERRAMIENTAS PARA EL ANÁLISIS DE …

3.6 Preprocesamiento de textos

3.6.2. Técnicas comunes de preprocesamiento

Eliminar las cadenas Unidoce y el ruido

Esta técnica elimina todos caracteres que no están en español y las cadenas Unicodecomo “\u002c” y “\x06”.

Reemplazar URLs and menciones de usuario

Consiste en reemplazar las URL, menciones de usuario y los hashtag, por ejemplo si enel twitter aparece una URL como “https://www.twitter.com”, ésta podría ser reemplazada porel string “URL” y una mención de usuario que podría ser “RT @NombreUsuarioTwitter” esreemplazado por el string “AT_USER”.

Reemplazar la jerga y las abreviaciones

Los usuarios de las redes sociales suelen escribir de manera informal y sus textoscontienen una gran cantidad de jerga y abreviaturas. Algunos ejemplos son las frases “OMG”,“GTG”, o “PLS” que significan respectivamente “oh dios mío”, “me tengo que ir” y “ porfavor”.

Reemplazo de contracciones

Una técnica que puede ser usada, es la de reemplazar las contracciones (gramática), porejemplos, cadenas como “al” y “del” son reemplazadas respectivamente por “a el” y “de el”.

Remover los números

Es un método muy común que se utiliza para eliminar los números del texto, ya queno contienen ningún sentimiento. Este paso debe utilizarse después de la sustitución de lajerga, porque algunas palabras de la jerga como “salu2” que significa “saludos”, contienennúmeros.

Reemplazar repeticiones de puntuación

Se distinguen tres signos de puntuación en un texto, cuyas repeticiones nos conciernen. Eluso de estos signos de puntuación indican la existencia de emociones intensas. Si encontramosuno, lo reemplazamos por una cadena representativa que definamos, por ejemplo el token “???”lo podemos reemplazar por la cadena “multiQuestionMark”. Este proceso debe realizarseantes de eliminar la puntuación que se detalle más adelante.

17

Page 25: PARIDAD DE HERRAMIENTAS PARA EL ANÁLISIS DE …

3.6 Preprocesamiento de textos

Reemplazar las negaciones por antónimos

Se busca en cada oración la palabra “no” y luego se verifica si la siguiente palabra tieneun antónimo, por ejemplo la frase “no es buena” se reemplazará por la palabra “mala”.

Reemplazar la puntuación

Para el preprocesamiento de texto, una técnica clásica en la recuperación de informacióny en la extracción de datos es eliminar la puntuación. Sin embargo, muchas veces la presenciade signos de puntuación a menudo denota la existencia de algún sentimiento. Por ejemplo,un signo de exclamación puede significar un sentimiento positivo o negativo intenso. Por lotanto, si los eliminamos, podríamos disminuir la precisión de la clasificación.

Eliminar las stopwords

Las stopwords con palabras con alta frecuencia de presencia en todas las oraciones.Se considera innecesario analizarlas, debido a que no contienen mucha información útil oque sean un aporte para el análisis de sentimientos. El conjunto de estas palabras no estácompletamente definido, y se pueden cambiar, eliminar o agregar más según sea el caso.

Corrección ortográfica

Es muy común en los textos informales que los usuarios cometan errores de ortografíaque podrían dificultar la clasificación.

Lemmatización

Otro método para combinar muchas palabras a una, es la lematización. Este métodoanaliza una palabra morfológicamente y elimina su terminación, produciendo su forma básicao lema como se encuentra en un diccionario.

Stemming

Es el proceso de eliminar las terminaciones de las palabras para detectar su forma de raíz.Al hacerlo, muchas palabras se fusionan y la dimensionalidad se reduce.

18

Page 26: PARIDAD DE HERRAMIENTAS PARA EL ANÁLISIS DE …

3.7 Evaluación

3.7. Evaluación

Un punto muy importante que se debe tener en consideración, es la evaluación de losalgoritmos, ya que no siempre entregan una efectividad del 100%, por lo que es necesariotener métricas capaces de dar información relevante al desempeño de la clasificación.

3.7.1. Matriz de Confusión

Una matriz de confusión, es una herramienta visual que se utiliza en el aprendizajesupervisado, cada columna que posee representa el número de predicciones de cada clase,mientras que cada fila representa instancias de la clase real. El principal beneficio de lasmatrices de confusión es que facilitan ver si el sistema se confunde entre dos clases.

Clasificado como A Clasificado como BReal A Verdadero Positivo (VP) Falso Negativo (FN)Real B Falso Positivo (FP) Verdadero Negativo (VN)

Tabla 3.1 Matriz de Confusión

A partir de la matriz de confusión, es que se pueden obtener métricas para la evaluacióndel clasificador.

3.7.2. Sensibilidad (Recall)

El recall indica la capacidad del estimador para dar como casos positivos, los casos querealmente lo son. El recall viene a ser la fracción de los verdaderos positivos.

Para calcular el recall se utiliza la siguiente ecuación:

Recall =V P

V P+FN

3.7.3. Precisión

La precisión es el cociente entre los valores positivos y la suma de verdaderos positivos ylos falsos positivos, como se muestra a continuación:

Precision =V P

V P+FP

19

Page 27: PARIDAD DE HERRAMIENTAS PARA EL ANÁLISIS DE …

3.7 Evaluación

3.7.4. Valor F

El valor F es la medida de la precisión que tiene una clasificación y utiliza los valoresobtenidos de la precisión y el recall.

Para calcular el valor F se utiliza la siguiente ecuación:

F1 = 2∗ Precision∗RecallPrecision+Recall

20

Page 28: PARIDAD DE HERRAMIENTAS PARA EL ANÁLISIS DE …

4. Estado del Arte

4.1. Google Cloud Natural Language API

Figura 4.1 Logo de Google Cloud Natural Language API

4.1.1. Acerca de Google Cloud Natural Language

El API de Google Cloud Natural Language proporciona a los desarrolladores tecnologíasde comprensión del lenguaje natural, incluido el análisis de sentimientos, análisis de enti-dades, análisis de sentimiento de entidades, clasificación de contenido y análisis sintáctico.Esta API es parte de la familia mas grande de Cloud Machine Learning API.

4.1.2. Características principales del API de Google

Las características principales de esta API, son las siguientes:

Sentiment analysis: inspecciona el texto dado e identifica la opinión emocional pre-valeciente dentro del texto, especialmente para determinar la actitud de escritor comopositiva, negativa o neutra. El análisis de sentimiento se realiza a través de la funciónanalyzeSentiment

Entity analysis: inspecciona el texto dado en busca de entidades conocidas(nombrespropios, como figuras públicas, puntos de referencia, nombres comunes de restaurantes,estadios, etc) y devuelve información sobre esas entidades. El análisis de entidades serealiza a través de la función analyzeEntities

Entity sentiment analysis: inspecciona el texto dado en busca de entidades conocidas(al igual que Entity analysis) pero además de devolver información sobre la entidad,nos identifica la opinion emocional predominante de la entidad dentro del texto,especialmente para determinar la actitud de un escritor hacia la entidad como positiva,negativa o neutra. El análisis de sentimiento de entidad se realiza a través de la funciónanalyzeEntitySentiment

21

Page 29: PARIDAD DE HERRAMIENTAS PARA EL ANÁLISIS DE …

4.1 Google Cloud Natural Language API

Syntactic analysis: extrae información lingüística, dividiendo el texto dado en unaserie de oraciones y tokens, proporcionando un análisis adicional sobre estos. Elanálisis sintáctico se realiza a través de la función analyzeSyntax

Content classification: analiza el contenido del texto de entrada y lo clasifica encategorías junto al score . La clasificación de contenido se realiza a través de la funciónclassifyText.

Para efectos de este estudio, solo utilizaremos la función analyzeSentiment, ya que es laúnica que nos compete en relación al objetivo principal de la investigación. El análisis desentimiento intenta determinar si un texto (opinión) es positivo o negativo. El sentimientoestá representado por valores numéricos (score y magnitude).

4.1.3. Especificando el contenido del archivo de texto de entrada

Al realizar una solicitud al API de lenguaje natural de Google, es necesario especificar eltexto a procesar de una de las dos siguientes maneras:

Pasando directamente dentro del campo content.

Pasando una URL de Google Cloud Storage dentro del campo gcsContentUri, porejemplo

1 {2 "document":{3 "type":"PLAIN_TEXT",4 "language": "EN",5 "gcsContentUri":"gs://cloud -samples -tests/natural -

language/gettysburg.txt"6 },7 }

4.1.4. Archivo de salida de análisis de sentimientos

A continuación, se muestra una respuesta de ejemplo cuando utilizamos análisis desentimiento sobre un texto.

22

Page 30: PARIDAD DE HERRAMIENTAS PARA EL ANÁLISIS DE …

4.1 Google Cloud Natural Language API

1 {2 "documentSentiment": {3 "score": 0.2,4 "magnitude": 3.65 },6 "language": "en",7 "sentences": [8 {9 "text": {

10 "content": "Four score and seven years ago ourfathers brought forth on this continent a newnation, conceived in liberty and dedicated to theproposition that all men are created equal.",

11 "beginOffset": 012 },13 "sentiment": {14 "magnitude": 0.8,15 "score": 0.816 }17 },18 ...19 }

Estos campos se describen a continuación:

documentSentiment: Contiene el sentimiento general del documento, que contienelos siguientes campos

• score: es el rango del sentimiento entre -1.0 (negativo) y 1.0 (positivo) y corres-ponde a la inclinación emocional general del texto.

• magnitude: indica que tan fuerte es la emoción del texto dado (tanto positivacomo negativa), entre 0.0 y +inf. A diferencia del score, la magnitud no estánormalizada; Cada expresión de emoción dentro del texto (positiva o negativa)contribuye a la magnitud del texto (por lo que los bloques de texto más largo,suelen tener mayores magnitudes)

language: aquí se establece el idioma del documento, ya sea que se indique explícita-mente en este parámetro, o que sea detectado automáticamente

23

Page 31: PARIDAD DE HERRAMIENTAS PARA EL ANÁLISIS DE …

4.1 Google Cloud Natural Language API

sentences: contiene una lista de oraciones extraídas del documento original, quecontiene los siguientes campos:

• sentiment: contiene los valores de sentimientos pero a nivel de oración (tienelos valores de score y magnitude que se describieron anteriormente.)

4.1.5. Interpretación de los valores de análisis de sentimiento

El score de sentimiento de un documento indica la emoción general del texto, mientrasla magnitude de sentimiento de un documento, indica la fuerza del contenido emocionalpresente en el documento, y este valor suele ser proporcional al tamaño del documento.

Es importante tener en consideración, que la API de lenguaje natural de Google, indi-ca diferencias entre emociones positivas y negativas en un documento, pero no identificaemociones más especificas, como por ejemplo “enojado” y “triste” se consideran emocionesnegativas. Sin embargo, cuando la API analiza texto que se considera “enojado” o texto quese considera “triste”, la respuesta de la API indica solamente que el sentimiento del texto esnegativo, no “triste” ni “enojado”.

Un document con score neutral (alrededor de 0.0) puede indicar un documento con bajaemoción, o puede ser que lo clasifique como emoción mixta. Por lo general, puede usarvalores de magnitude para desambiguar estos casos, ya que un documento que realmente esneutral, tendrá un valor de magnitude bajo, mientras que los documentos mixtos, tendránvalores de magnitude más altos.

Cuando comparamos documentos entre sí (especialmente si los documento son de distin-tos tamaño), hay que asegurarse de usar los valores de magnitude para calibrar los scores, yaque nos puede ayudar a medir que tan relevante es el contenido emocional expresado en eldocumento.

La siguiente tabla muestra algunos valores de muestra y cómo interpretarlos:

24

Page 32: PARIDAD DE HERRAMIENTAS PARA EL ANÁLISIS DE …

4.2 Microsoft Azure Text Analytics API

Sentimiento Valor de muestraClaramente Positivo* "score": 0.8, "magnitude": 3.0Claramente Negativo* "score": -0.6, "magnitude": 4.0Neutral "score": 0.1, "magnitude": 0.0Mixto "score": 0.0, "magnitude": 4.0

Tabla 4.1 Muestra de sentimiento del API de Google

Fuente: Sitio web de Google Cloud Natural Language API

Los sentimientos “Claramente Positivo” y “Claramente Negativo” pueden variar paradiferentes casos de usos. Se pueden encontrar diferentes resultados para cada escenario enparticular. Se recomienda que se defina un umbral que funcione para su caso de uso, y luegoajustarlo para ir probando y verificar sus resultados. Por ejemplo, se podría definir un umbralde score superior a 0.25 como “Claramente Positivo” y luego modificarlo a 0.15, después serevisan los datos y los resultados que se encuentran de 0.15 a 0.25, y lo clasificamos comopositivos.

4.2. Microsoft Azure Text Analytics API

Figura 4.2 Logo de Microsoft Azure Text Analytics API

4.2.1. Acerca de Text Analytics

Microsoft Azure Text Analytics API es un servicio basado en la nube, que nos propor-ciona un avanzado procesamiento de lenguaje natural sobre textos sin formatos. Esta APIincluye cuatro funciones principales, que son: análisis de sentimiento, extracción de frases,detección de idioma y reconocimiento de entidades.

La API tiene el respaldo de los recursos de Microsoft Cognitive Services, que es unacolección de algoritmos de Machine Learning y de Inteligencia Artificial (AI) en la nube,que se puede consumir fácilmente desde sus propios desarrollos.

25

Page 33: PARIDAD DE HERRAMIENTAS PARA EL ANÁLISIS DE …

4.2 Microsoft Azure Text Analytics API

A continuación, describiremos brevemente las funcionalidades que provee Text Analytics:

Función DescripciónAnálisis de sentimientos Esta función, nos retorna una puntuación (score), que oscila

entre 0 y 1, donde 1 es el valor es el más positivoExtracción de frases Identifica rápidamente valores claves. Por ejemplo, si el texto

es “La comida estaba deliciosa, y el personal es amable”,nos devuelve los puntos principales: “comida” y “personal”

Detección de idioma Soporte para 120 idiomas, detecta el idioma de entrada deltexto

Reconocimiento de entidades Identifica y clasifica del texto de entrada, como personas,lugares, organizaciones, etc.

Tabla 4.2 Funcionalidades de Text Analytics

A continuación, veremos un ejemplo de como utilizar análisis de sentimientos sobre untexto usando Text Analytics de Microsoft Azure.

Esa función es útil para detectar opiniones positivas y/o negativas en redes sociales.Actualmente, en análisis de sentimientos de Text Analytics admite ingles, alemán, español yfrancés. Otros idiomas se encuentran en versión preliminar.

4.2.2. Conceptos

Text Analytics utiliza algoritmos de clasificación de Machine Learning, para generarun score entre 0 y 1. Los scores cercanos a 1 indican que una opinión es positiva y losscores cercanos a 0 nos indican que una opinión es negativa. Actualmente la API, no pro-porciona las herramientas para utilizar nuestros propios datos de entrenamiento. El modelousa una combinación de técnicas durante el análisis de texto, incluido el procesamiento detexto, análisis de categorías gramaticales, ubicaciones de palabras, y asociaciones de palabras.

4.2.3. Preparación

El análisis de sentimientos de Text Analytics, obtiene mejores resultados cuando se leproporcionan fragmentos de textos más pequeños para trabajar. Esto es lo contrario a laextracción de frases, que funciona mejor en bloques de textos que son más grandes. Para

26

Page 34: PARIDAD DE HERRAMIENTAS PARA EL ANÁLISIS DE …

4.2 Microsoft Azure Text Analytics API

obtener mejores resultados de ambas funciones, considere la posibilidad de reestructurar eltexto de entrada.

Text Analytics, recibe un archivo de formato JSON.

El tamaño del documento debe ser inferior a 5000 caracteres por documento y puedetener hasta 1000 elementos (identificadores) por colección. La colección se envía en el cuerpode la solicitud. En el siguiente ejemplo se muestra el contenido que debe tener el archivoJSON que le enviaremos a procesar a Text Analytics para el análisis de sentimientos.

1 {2 "documents": [3 {4 "language": "en",5 "id": "1",6 "text": "We love this trail and make the trip

every year. The views are breathtaking and wellworth the hike!"

7 },8 {9 "language": "en",

10 "id": "2",11 "text": "Poorly marked trails! I thought we were

goners. Worst hike ever."12 },13 {14 "language": "en",15 "id": "3",16 "text": "Everyone in my family liked the trail but

thought it was too challenging for the lessathletic among us. Not necessarily recommendedfor small children ."

17 },18 {19 "language": "en",20 "id": "4",

27

Page 35: PARIDAD DE HERRAMIENTAS PARA EL ANÁLISIS DE …

4.2 Microsoft Azure Text Analytics API

21 "text": "It was foggy so we missed the spectacularviews, but the trail was ok. Worth checking

out if you are in the area."22 },23 {24 "language": "en",25 "id": "5",26 "text": "This is my favorite trail. It has

beautiful views and many places to stop andrest"

27 }28 ]29 }

4.2.4. Paso 1: Estructurar la solicitud

Lo primero que se debe hacer, es llamar a la API REST de Text Analytics, que se hace através de HTTP POST o GET. Cada una de las solicitudes deben incluir la clave de acceso yun punto de conexión HTTP.

Como requisito previo, debe tener creada una cuenta de Cognitive Services API con TextAnalytics API. Como segundo requisito previo, debe tener la clave de acceso y el punto deconexión que se generan automáticamente cuando nos registramos en Cognitive Services API.

Posteriormente debemos definir el esquema JSON que se muestra en la subsección 4.2.3.

Actualmente es posible enviar los mismos documentos para todas las funcionalidadesque nos ofrece Text Analytics: análisis de sentimientos, extracción de frases, detección deidiomas y reconocimiento de entidades. (Es posible que el esquema varíe para cada análisisen el futuro)

28

Page 36: PARIDAD DE HERRAMIENTAS PARA EL ANÁLISIS DE …

4.2 Microsoft Azure Text Analytics API

Elemento Valores válidos ¿Necesario? Usoid El tipo de datos es una ca-

dena, pero en la práctica,los identificadores de docu-mento tienden a ser núme-ros enteros.

Obligatorio El sistema usa los identificadoresque proporcione para estructurarla salida. Se generan códigos deidioma, frases clave y puntuacio-nes de opinión para cada identifi-cador de la solicitud.

text Texto sin formato no es-tructurado, hasta 5000 ca-racteres.

Obligatorio Para la detección de idioma, eltexto se puede expresar en cual-quier idioma. Para el análisis deopiniones, la extracción de frasesclave y la identificación de enti-dades, el texto debe estar en unidioma admitido.

language Código ISO 639-1 de doscaracteres para un idiomaadmitido

Varía Análisis de opiniones, extracciónde frases clave, detección de idio-ma y vinculación de entidades;opcional para la detección deidioma. No hay ningún error sise excluye, pero sin él se debilitael análisis. El código de idiomase debe corresponder al text queproporcione.

Tabla 4.3 Parámetros para el archivo JSON como input de Text Analytics

Fuente: Sitio web de Microsoft Azure

Luego se debe crear una solicitud POST para la API de Análisis de Sentimientos.Establecemos el punto de conexión HTTP para el análisis de sentimientos, mediante unrecurso de Text Anaytics.Se debe definir un encabezado de solicitud que incluye las claves de acceso para las opera-ciones de Text Analytics.En el cuerpo de la solicitud, debemos proporcionar la colección de documentos JSON que sepreparó para este análisis.

29

Page 37: PARIDAD DE HERRAMIENTAS PARA EL ANÁLISIS DE …

4.2 Microsoft Azure Text Analytics API

4.2.5. Paso 2: Enviar la solicitud

El análisis se realiza luego de la recepción de la solicitud. El servicio puede aceptar hasta100 solicitudes por minuto, y cada solicitud puede tener un tamaño máximo de 1 MB.

El servicio no tiene estado alguno, tampoco se almacenan los datos en su cuenta. Losresultados se devuelven inmediatamente en la respuesta.

4.2.6. Paso 3: Ver los resultados

El API de análisis de sentimientos de Text Analytics clasifica el texto como predominantepositivo o negativo, y le asigna un score de 0 a 1. Los valores cercanos a 0,5 son neutros oindeterminados. Un score de 0,5 indica neutralidad. Cuando no se puede analizar un texto, elresultado siempre es 0,5. Por ejemplo, si se le entrega un texto en español con un código deidioma inglés, el score será 0,5.

La salida se devuelve inmediatamente. Se puede transferir los resultados a una aplicaciónque acepte archivos de formato JSON o simplemente guardar la salida de manera local paraimportarlo en alguna aplicación que permita manipular los datos.

En el siguiente ejemplo se muestra la respuesta que nos entrega Text Analytics para elanálisis de sentimientos:

1 {2 "documents": [3 {4 "score": 0.9999237060546875,5 "id": "1"6 },7 {8 "score": 0.0000540316104888916,9 "id": "2"

10 },11 {12 "score": 0.99990355968475342,13 "id": "3"14 },15 {16 "score": 0.980544924736023,

30

Page 38: PARIDAD DE HERRAMIENTAS PARA EL ANÁLISIS DE …

4.3 IBM Watson Natural Language Understanding

17 "id": "4"18 },19 {20 "score": 0.99996328353881836,21 "id": "5"22 }23 ],24 "errors": []25 }

4.3. IBM Watson Natural Language Understanding

Figura 4.3 Logo de IBM Watson Natural Language Understanding

4.3.1. Acerca de IBM Watson Natural Language Understanding

Con IBM Watson Natural Language Understanding , podemos analizar característicassemánticas sobre un texto de entrada, que pueden incluir categorías, emociones, conceptos,entidades, palabras claves, metadatos, relaciones, roles semánticos y sentimientos.

4.3.2. Características

Podemos enviar solicitudes a la API con texto, en HTML o con una URL pública yespecificar una o más de las siguientes funciones para analizar.

CategoríasPodemos categorizar nuestro contenido utilizando una jerarquía de clasificación de cinco

niveles. A continuación un ejemplo de categorización.

31

Page 39: PARIDAD DE HERRAMIENTAS PARA EL ANÁLISIS DE …

4.3 IBM Watson Natural Language Understanding

Entrada: url: “www.cnn.com”

Respuesta

/ noticias

/ arte y entretenimiento

/ películas y televisión

/ noticias internacionales

Conceptos Además podemos identificar conceptos de alto nivel que no están necesariamentereferenciados directamente en el texto. Por ejemplo:

Entrada:texto: “La comprensión del lenguaje natural utiliza el procesamiento del lenguaje natural

para analizar el texto”.

Respuesta

Lingüística

Procesamiento del lenguaje natural

Comprensión del lenguaje natural

EmociónPodemos también analizar la emoción transmitida en frases específicas o por el documen-

to completo. De igual manera podemos habilitar el análisis de emociones para entidades opalabras claves que son detectadas automáticamente por esta función. Por ejemplo:

Entrada:texto: “Amo las manzanas, pero odio las naranjas”

objetos: “manzanas” y “naranjas”Respuesta

“manzanas: alegría

"naranjas”: ira

Entidades

32

Page 40: PARIDAD DE HERRAMIENTAS PARA EL ANÁLISIS DE …

4.3 IBM Watson Natural Language Understanding

Con la función de entidades, podemos encontrar personas, lugares, eventos y otros tiposde entidades que se encuentren mencionadas en el texto. Por ejemplo:

Entrada: texto: “IBM es una empresa de tecnología multinacional estadounidense consede en Armonk, Nueva York, Estados Unidos, con operaciones en más de 170 países”.

Respuesta

IBM: Empresa

Armonk: Ubicación

Nueva York: Ubicación

Estados Unidos: Ubicación

Palabras ClavesPodemos buscar en nuestro texto palabras clave relevantes. Por ejemplo:

Entrada: “http://www-03.ibm.com/press/us/en/pressrelease/51493.wss”

Respuesta

Australian Open

Tennis Australia

IBM SlamTracker analytics

MetadatosCon la función de metadatos, podemos dejar como entrada un texto HTML o una URL,

y así obtener el autor de la página, el título de la página y la fecha de publicación. Por ejemplo:

Entrada: “https://www.ibm.com/blogs/think/2017/01/cognitive-grid/”

Respuesta

Author: Stephen Callahan

Girding the Grid with Cognitive Computing - THINK Blog

Publication date: January 31, 2017

33

Page 41: PARIDAD DE HERRAMIENTAS PARA EL ANÁLISIS DE …

4.3 IBM Watson Natural Language Understanding

RelacionesLa función de relaciones, nos permite identificar cuando dos entidades se encuentran

relacionadas, e identificar el tipo de relación. Por ejemplo:

Entrada:texto: “El Premio Nobel de Física 1921 fue otorgado a Albert Einstein”.

Respuesta

“awardedTo” Relación entre “Premio Nobel de Física” y “Albert Einstein”

“timeOf” Relación entre “1991” y “otorgado”

Roles semánticosPodemos analizar de nuestro texto de entrada oraciones que se componen de un sujeto,

una acción y un objeto e identificar palabras claves que son sujetos objetos de una oración.Por ejemplo:

Entrada:texto: “En 2011, Watson compitió en Jeopardy!”

Respuesta

Sujeto: Watson

Acción: compitió

Objeto: en Jeopardy

SentimientoCon esta función podemos analizar el sentimiento de frases específicas o de un documento

completo. También se puede obtener información de sentimiento para entidades y palabrasclaves detectadas al habilitar la opción de sentimiento para esas características. Por ejemplo:

Entrada:texto: “Gracias y que tengas un buen día!”

Respuesta

Sentimiento positivo (score: 0,91)

34

Page 42: PARIDAD DE HERRAMIENTAS PARA EL ANÁLISIS DE …

4.4 MonkeyLearn

Sentimiento

4.4. MonkeyLearn

Figura 4.4 Logo de MonkeyLearn

MonkeyLearn es una API de análisis de sentimiento, que permite a desarrolladores ac-ceder a sus servicios y/o bibliotecas a través de una REST API pudiendo utilizar una gamade lenguajes de programación, por ejemplo cuenta con soporte para: Python, Ruby, PHP,Javascript y Java, cada uno de ellos con su documentación correspondiente.

La API tiene la particularidad de realizar análisis de sentimiento a nivel general (Utilizaun clasificador de análisis de sentimiento genérico), si no se sabe sobre que modelo deanálisis de opiniones se debe utilizar.

De lo contrario, si sabemos que modelo usar, podemos utilizar modelos ya entrenadospara comentarios de twitter, de productos, sobre la industria hotelera, de restaurantes, depelículas, de aerolíneas. Sin embargo, la API brinda la posibilidad de que se puedan crearmodelos de entrenamientos propios, utilizando diferentes fuentes de información, por ejemplopueden ser archivos excel, csv, provenientes desde twitter, desde gmail, zendesk, rss, etc.

4.5. Meaning Cloud

Figura 4.5 Logo de Meaning Cloud

35

Page 43: PARIDAD DE HERRAMIENTAS PARA EL ANÁLISIS DE …

4.6 Recast AI

Las soluciones que ofrece Meaning Cloud son de, analítica de texto, analítica pararecursos humanos, analítica para medios sociales y de la voz del cliente.

Con su API de análisis de sentimientos, el desarrollador puede acceder a sus servicios através de los siguientes lenguajes de programación: PHP, Python, Java, JavaScript, Node.js,Ruby, C, C# y Shell.

Sin embargo, si no se desea utilizar un lenguaje de programación para hacer análisis desentimientos, Meaning Cloud brinda al usuario la posibilidad de utilizar Add-In y Pug-Inpara Excel, RapidMiner, GoogleSheets, y Zapier, si no quiere desarrollar código propio, yasí utilizar herramientas gráficas más amigables.

Servicios adicionales que nos ofrece esta API, son de extracción de tópicos, clasifica-ción de textos, identificación de lenguaje, clustering de textos, análisis de estructura dedocumentos, etc.

4.6. Recast AI

Figura 4.6 Logo de Recast AI

Es una herramienta de inteligencia artificial, la cual permite a los desarrolladores crearsus propios bot (programa informático que efectúa automáticamente tareas repetitivas através de Internet, cuya realización por parte de una persona sería imposible o muy tediosa).Con API de Recast AI se puede crear bots de manera sencilla a través de su interfaz web. Esuna plataforma colaborativa de extremo a extremo que permite a usuarios y desarrolladorescrear interfaces de conversación (que son llamados bot).

Su API está enfocada sobre el servicio al cliente de la empresa/organización. Proporcionatecnologías conversacionales a corporaciones. El primer producto que ofrece la API de Re-cast AI es un servicio de procesamiento de lenguaje natural, que permite analizar oraciones,devuelve su significado de manera global y la información clave que contiene. El segundoservicio que ofrece, es una plataforma de extremo a extremo para crear bots, se puede crear

36

Page 44: PARIDAD DE HERRAMIENTAS PARA EL ANÁLISIS DE …

4.7 Amazon Comprehend

flujos de conversación, conectar los propios bots creados con muchos canales y entrenar sucomprensión.

Y el tercer servicio, es una colección de chatbots diseñados para automatizar partesrelacionadas con los clientes de las organizaciones. Actualmente se enfoca en casos de usopara empresas del rubro de las telecomunicaciones, bancos, seguros y proveedores de energía.

4.7. Amazon Comprehend

Figura 4.7 Logo de Amazon Comprehend

Es un servicio de procesamiento de lenguaje natural que utiliza Machine Learning paraencontrar información y relaciones en los textos analizados. Se puede extraer informaciónen datos no estructurados, identifica automáticamente el idioma de los documentos/textosanalizados, extrae frases y nombres de lugares, personas, eventos. Además comprende elgrado de positividad o negatividad del texto. Este proceso lo realiza a mediante tokenizacióny categorías gramaticales y organiza automáticamente una colección de documentos portema.

Amazon Comprehend es un servicio completamente administrado, por lo que no existenservidores que aprovisionar ni modelos que construir, entrenar ni implementar. Solo se pagarápor lo que se utiliza.

37

Page 45: PARIDAD DE HERRAMIENTAS PARA EL ANÁLISIS DE …

4.8 Rossete Text Analytics

4.8. Rossete Text Analytics

Figura 4.8 Logo de Rossete Text Analytics

El API de análisis de sentimientos de Rosette Text Analytics ofrece servicios de todoslos niveles, como por ejemplo al reconocimiento de actitudes y emociones hacia una persona,lugar, cosa u alguna otra entidad. Rossete devuelve como salida, una puntuación de senti-miento para documentos completos para entidades individuales dentro de un cuerpo de textomás grande.

Para Rosette, un documento se refiere al cuerpo de un texto que expresa sentimientoscomo la revisión de una película, un editorial político, un estado de Facebook o un Tweet.Rosette cuenta con soporte para 6 idiomas para realizar el análisis de sentimientos, laslenguas soportadas son las siguientes: Árabe, Francés, Persa, Inglés, Japones y Español.

La implementación de este servicio se puede realizar a través de su API en la nube, APIlocal o en el SDK de Java. Además existen complementos para las siguientes herramientas:Elasticseach, RapidMiner y Solr, por el lado de los lenguajes de programación, podemos usarPython, PHP, Java, R, Ruby, C# y Node.js

4.9. Semantria

Figura 4.9 Logo de Semantria

Semantria de Lexalytics ofrece servicios de procesamiento de lenguaje natural, incluidoel análisis de sentimiento, analítica de textos, machine learning, extracción de entidades,categorización, entre otros. Estos servicios pueden ser consumidos desde su Cloud APIutilizando un complemento que se instala en Microsoft Excel, para sus versiones 2010, 2013y 2016. Sin embargo, es posible instalar Semantria en su version On-Premise en nuestros

38

Page 46: PARIDAD DE HERRAMIENTAS PARA EL ANÁLISIS DE …

4.10 Otros tipos herramientas

propios servidores, disminuyendo el tiempo de procesamiento en comparación a su servicioCloud.

Para el servicio de análisis de sentimientos, Semantria ofrece soporte para 25 idiomasdistintos, incluido el Español.

4.10. Otros tipos herramientas

Los software de análisis de sentimientos mencionados anteriormente, son los más po-pulares, sin embargo existen otros tipos de programas que se encuentran disponible en elmercado. Por el ejemplo SentiWordNet, Panas-t, NRC y SentiStrength, son herramientas quese encuentran basadas en Lexion.

En la actualidad, existe un nuevo método de análisis de sentimientos que combina diver-sos enfoques, y quien lo utiliza es SASA0.1.3 (Paquete de Python). Por otro lado tenemosSenticNet, que utiliza técnicas de inteligencia artificial. La herramienta que utiliza un algorit-mo genérico ponderado por entropía es EWGA.

También tenemos otros tipos de herramientas escritas en java (generalmente son librerías)como por ejemplo LingPipe, OpenNLP, MALLET y Weka. Opinion Observer es una herra-mienta de análisis de sentimientos usada para comparar reviews y presenta los resultados engráficos.

La tendencia de la investigación enfocada en análisis de sentimientos, muestra una cata-logación general de los sentimientos en lugar de crear clasificaciones positivas o negativas.El incremento en la cantidad de artículos para la clasificación general, demuestra que elanálisis de sentimientos está creciendo cada vez más. El estudio de los papers concluyó quela regla orientada a exactitud de los datos es mejor que los datos no dependientes. Se utilizanmétodos no-supervisados debido a la disponibilidad directa de datos sin etiquetar. La mayorparte de la investigación demostró que el algoritmo SVM tiene una alta precisión.

La principal limitación del aprendizaje supervisado es la creación de un conjunto de datosde entrenamiento, y puede no tener éxito cuando los datos son inadecuados.

39

Page 47: PARIDAD DE HERRAMIENTAS PARA EL ANÁLISIS DE …

4.11 Comparación de técnicas de Machine Learning

4.11. Comparación de técnicas de Machine Learning

Existen investigaciones en las cuales se comparan técnicas de Machine Learning parael análisis de sentimientos y el análisis de afecto. Los resultados del experimento realizado,demostraron que los mejores resultados de un proceso de análisis de sentimientos sobreun corpus en español, se obtienen utilizando el clasificador de Máquina de Vector Soporte(SVM). El clasificador Naive Bayes resultó la segunda mejor técnica, mientras que DecisionTree, fue el que obtuvo los perores resultados. Este comportamiento de los clasificadoresmencionados anteriormente, mantiene una tendencia respecto al rendimiento que han tenidoal aplicarlo en procesos de análisis de sentimientos sobre un corpus en Inglés.

Una característica que afecta al realizar la clasificación es el balanceo del corpus. Estose encuentra directamente vinculado a su proceso de construcción, a causa de lo dispersoque puede ser el etiquetado, considerando las características del dominio, y por otro lado setiene la cantidad de evaluadores, y teniendo en consideración el costo de tiempo y recursosde procesamiento de los datos.

Por otro lado, se analizó que, debido al corpus utilizado correspondiente a un dominioespecífico y de tamaño moderado, no es posible concluir que al utilizar stopwords o etiquetadoPOS genera mejores resultados, y su incidencia debe analizarse para casos específicos deanálisis de un clasificador.Esto indica que las distintas configuraciones de herramientas de pre-procesamiento entregandiferentes resultados de clasificación. pudiendo depender del algoritmo de clasificaciónutilizado y del corpus de trabajo.

4.12. Evaluación comparativa de herramientas de análisisde sentimiento de Twitter

Los profesionales e investigadores de la industria, están cada vez más interesados enlos sentimientos que son generados a través de la red social Twitter. En consecuencia, hansurgido una serie de herramientas de análisis de opiniones, ya sean opensource o comerciales,aunque no está claro que tan bien funcionan estas aplicaciones.

Estudios realizados(Abbasi, 2014), presentan los resultados de un análisis de referenciadetallado de las herramientas de análisis de sentimientos de Twitter. Se utilizaron 20 herra-

40

Page 48: PARIDAD DE HERRAMIENTAS PARA EL ANÁLISIS DE …

4.12 Evaluación comparativa de herramientas de análisis de sentimiento de Twitter

mientas aplicadas a 5 Datasets diferentes. Además de presentar los resultados detallados dela evaluación de desempeño, se realizaron análisis exhaustivos de errores para resaltar losdesafíos más frecuentes que enfrentan las herramientas de análisis de sentimientos de Twitter(Este estudio solo mide la efectividad de las herramientas, no hay datos sobre el tiempo deprocesamiento y sobre el uso de cada una ).

4.12.1. Evaluación de Datasets y Métricas

Data Set Descripción de Los TweetsCantidad de Tweets

Total Positivos Negativos NeutralTelco Relacionados con los productos y servi-

cios de empresas de telecomunicaciones5281 20.9% 8.9% 70.2%

Farmacéutica Relacionado con las experiencias de losusuarios con medicamentos farmacéuti-cos

5009 15.6% 11.1% 73.3%

Seguridad Relacionados con los productos y ser-vicios de las principales compañías deseguridad

5086 24% 11.1% 64.9%

Tecnología Relacionado con grandes empresas tec-nológicas. Incluye información sobrelos productos, servicios, políticas y ex-periencias generales de los usuarios delas empresas.

3502 15.1% 16.9% 68.0%

Retail Discusiones sobre de una categoría es-pecífica de productos de venta al por me-nor (pintura para el hogar) y experien-cias de usuario relacionadas con esosproductos.

3750 42.7% 9.0% 48.3%

Tabla 4.4 Descripción general de las pruebas realizadas en los distintos Datasets

Fuente: Abbasi, 2014

La tabla 4.4 proporciona una descripción general de las pruebas realizadas en los distintosDatasets. No es sorprendente que la mayoría de los tweets de cada conjunto de datos fueranneutrales, ya que por lo general, en las redes sociales cuando se habla de un tema en particular,no contienen sentimientos positivos o negativos. La única excepción de los datasets, fue elRetail, donde las personas discutían sobre pinturas para el hogar solían tener sentimientospositivos. Sin embargo, los cinco Datasets estaban bastante desequilibrados con respecto a

41

Page 49: PARIDAD DE HERRAMIENTAS PARA EL ANÁLISIS DE …

4.12 Evaluación comparativa de herramientas de análisis de sentimiento de Twitter

las distribuciones de tweets a través de su clase de polaridad positiva, negativa y neutral.

Se emplearon métricas de evaluación estándar. Estas métricas son: Acurracy, y Precision/ Recall a nivel de clase. El Acurracy es el porcentaje del total de tweets clasificado correcta-mente (como positivo, negativo o neutro). El recall a nivel de clase es el porcentaje de tweetsasociados a una clase en particular que se clasificaron correctamente. La métrica Precisionde nivel de clase es el porcentaje de todos los tweets clasificados como pertenecientes a unaclase determinada que pertenece a esa clase.

4.12.2. Resultados del experimento

La tabla 4.5 se muestran los resultados del experimento para 15 herramientas Stand-Alone, mientras que la tabla 4.6 presenta resultados del experimento que se realizaron conherramientas Workbench. También en las tablas se incluyen el Accuracy promedio de los 5Datasets como un indicador de rendimiento general.

Con respecto a las herramientas Stand-Alone, SentiStrenght, Chatterbox, Sentiment140y Texalytics son las que tienen mejor rendimiento general en todos los Datasets, con unAccuracy promedio sobre un 66%. Entre las herramientas Stand-Alone de mejor rendimiento,Sentiment140 fue el más equilibrado en todos los Datasets, con métricas de Accurary quevan desde 61% hasta un 71%. Por otro lado, cuatro de los Accurary promedio se encuentranpor debajo del 50%, y el promedio de Accurary de las 15 herramientas fue solo de un 56%.

Estos resultados nos indican que la calidad de las herramientas de análisis de sentimientosde Twitter varía considerablemente, y que la variación de rendimiento puede tener implica-ciones importantes para varias aplicaciones de análisis de sentimientos que se encuentrenbasadas en Twitter.

En base a los resultados presentados en la tabla 4.6, no es sorprendente que las herra-mientas Workbench presenten un mayor Accuracy promedio en todos los Datasets, ya queestos fueron entrenados con datos similares a los datos de evaluación.

El Accuracy promedio de estas herramientas oscilan entre 67% y 71%, y en general conuna menor variación entre los Datasets. Los resultados de las tablas 4.5 y 4.6 ilustran posiblesventajas y desventajas entre el uso de herramientas Stand-Alone y Workbench. Con el fin deinvestigar estas posibles ventajas y desventajas, se examinaron las tasas de Recall de nivel declase para ambos tipos de herramientas de mayor rendimiento.

42

Page 50: PARIDAD DE HERRAMIENTAS PARA EL ANÁLISIS DE …

4.12 Evaluación comparativa de herramientas de análisis de sentimiento de Twitter

Se utilizaron las 5 herramientas principales de tipo Stand-Alone y 3 de tipo Workbench.Estos resultados se presentan en las tablas ?? y 4.7. De acuerdo a estas tablas, es evidenteque las tasas de Recall a nivel de clase variaron considerablemente para ciertas herramientasen distintos Datasets.

Con respecto a las herramientas Stand-Alone, SenntiStrength logró buenos Recall debidoa las mayores tasas de Recall positivos y negativos en los Datasets de la industria farmacéuti-ca, seguridad y telecomunicaciones (que oscilan entre el 80% y el 90% en Recalls negativos).Sin embargo, estas altas tasas positivas/negativas fueron acompañadas por tasas de Recallsneutros que fueron considerablemente más bajos (es decir, clasificados erróneamente comopositivo/negativo). De manera similar, ChatterBox tendió a lograr un mayor Recall en lostweets positivos y neutrales, mientras que Textalytics que fue más efectivo Recalls neutrales(entre un 86% y 90% en todos los Datasets).

Con respecto a las herramientas Workbench, LightSide y FRN mostraron un sesgo similarhacia una clase de polaridad específica. Ambos métodos alcanzaron tasas de Recall neutralesmás altas pero con valores de Recall positivos y negativos considerablemente más bajos.A la inversa, BPEF alcanzó valores de Recall relativamente equilibrados en las 3 clases(positivo, negativo y neutro). Sus tasas de Recall a nivel de clase, en general estuvierondentro del 10% entre sí, con la excepción del Dataset de Telecomunicaciones, donde la tasade Recall positivo fue aproximadamente de un 17% a un 19% más baja que las otras dosclases.Las tasas de Recall a nivel de clase, en general se encuentran bastante equilibradas.

43

Page 51: PARIDAD DE HERRAMIENTAS PARA EL ANÁLISIS DE …

4.12 Evaluación comparativa de herramientas de análisis de sentimiento de Twitter

Herramienta Promedio Farma Retail Seg Tec TelcoSentiStrength 67.49 74.68 56.35 65.51 69.61 71.31Chatterbox 67.43 75.04 53.19 67.20 69.73 71.99Sentiment140 66.46 62.09 61.77 68.84 67.82 71.79Texalytics 66.22 70.33 55.14 66.33 68.29 71.02Intridea 63.31 64.18 47.37 62.63 75.19 67.20AiApplied 61.84 69.59 47.99 64.05 60.39 67.20ViralHeat 61.16 63.77 48.42 61.94 64.12 67.56Lymbix 56.63 52.03 54.81 47.60 63.45 65.25SentimentAnalyzer 55.15 55.33 51.36 54.83 56.50 57.75TextProcessing 54.06 49.68 50.01 58.40 52.40 59.79Semantria 53.50 44.68 56.33 45.46 60.99 60.06uClassify 47.22 51.70 42.12 47.51 50.31 44.47MLAnalyzer 45.20 37.95 52.15 41.35 48.06 46.47Repustate 43.98 35.80 41.06 31.93 40.90 70.20Anonymous 40.86 33.65 49.93 32.71 43.11 44.89Tabla 4.5 Acurracy de 15 herramientas (Stand-Alone) de A.S en 5 Datasets

Fuente: Abbasi 2014 [1]

Herramienta Promedio Farma Retail Seg Tec TelcoBPEF 71.38 67.81 65.24 75.32 76.3 72.21Lightside 69.35 70.71 58.22 69.86 76.99 70.99FRN 69.17 72.60 59.96 69.98 71.00 72.30EWGA 68.12 70.21 60.00 68.50 70.5 71.41RapidMiner 66.86 67.50 59.52 66.02 70.02 71.22

Tabla 4.6 Acurracy de 5 herramientas (Workbench) de A.S en 5 Datasets

Fuente: Abbasi 2014 [1]

44

Page 52: PARIDAD DE HERRAMIENTAS PARA EL ANÁLISIS DE …

4.12 Evaluación comparativa de herramientas de análisis de sentimiento de Twitter

Herramienta Efectividad Tiempo de procesamiento Pasos

IBM Watson Natural Language Understanding 67.4% 394.56 (s) 5

Amazon Comprehend 55.1% 201.86 (s) 7

Google Cloud Natural Language API 54.5% 1063.03 (s) 7

Microsoft Azure Text Analytics API 53.3% 3.06 (s) 5

Recast AI 52.2% 1982.28 (s) 5

MonkeyLearn 47.4% 1949.08 (s) 5

Rossete Text Analytics 46.4% 901.97 (s) 5

Semantria 41.8% 65.40 (s) 3

MeaningCLoud 38.0% 719.9 (s) 4

HerramientaTecnología Telecomunicaciones

Pos. Neg. Neu. Pos. Neg. Neu.

Stan

d-A

lone

SentiStrength 62.00 45.27 61.89 59.67 80.56 42.47Chatterbox 52.64 45.10 56.51 53.16 33.97 64.39Sentiment140 55.09 36.82 78.36 46.38 28.42 84.84Textalytics 26.98 18.04 90.00 25.07 29.06 90.02Intridea 69.81 81.76 74.75 32.73 68.38 46.32

Wor

k-be

nch BPEF 69.25 78.55 77.31 57.01 74.52 76.47

Lightside 47.92 55.91 84.29 38.70 49.79 83.30FRN 37.17 42.06 80.92 33.30 37.26 81.10

Tabla 4.7 Recall a nivel de clase para herramientas Stand-Alone y Workbench en Datasets deTecnología y Telecomunicaciones

Fuente: Abbasi 2014 [1]

45

Page 53: PARIDAD DE HERRAMIENTAS PARA EL ANÁLISIS DE …

5. Comparación de HerramientasPara realizar la comparación de las nueve herramientas seleccionadas, se ha utilizado

el API de desarrollo de cada una de ellas, excepto en Semantria, debido a que tiene uncomplemento en excel para realizar el análisis de sentimientos.

En las API de desarrollo de cada herramienta, brindan la posibilidad de elegir el lenguajede programación a utilizar para realizar el análisis de sentimiento. Para ésta investigación,se eligió el lenguaje de programación Python, por que todas las API permiten utilizar estelenguaje científico usado para el análisis de información en investigaciones. En primerainstancia, se utilizó el API de Twitter para descargar tweets relacionados con temas políticosdel gobierno de Chile. Posteriormente se realizó un filtro para elegir 1000 tweets que seutilizarán para la clasificación. Luego se realizará el proceso de etiquetado de los tweets quefueron descargados.

Una vez que se etiqueten los 1000 tweets, se ejecutará cada herramienta utilizando su APIdesarrollo para realizar la clasificación. Posteriormente de haber obtenido los resultados, secompararán con los tweets que fueron etiquetados manualmente, para medir la efectividad delclasificador utilizando la medida Accuracy. Además de medir el rendimiento, se determinaráel tiempo de procesamiento en segundos para los 1000 tweets.

De acuerdo a los objetivos de específicos de la investigación, se contarán los pasosnecesarios de cada una herramientas, para comparar la usabilidad en relación a la instalación,configuración y ejecución de la herramienta de análisis de sentimientos.

Posteriormente realizado el proceso de medición de la efectividad de los clasificadores,de determinar el tiempo en segundos de procesamiento y comparar la usabilidad de cadaherramienta, se realizará un análisis en base a éstas tareas y decir cual es mejor dependiendode las necesidades que tiene el usuario que realiza análisis de sentimientos de sus productosy/o servicios.

46

Page 54: PARIDAD DE HERRAMIENTAS PARA EL ANÁLISIS DE …

6. Plan de TrabajoEl plan de trabajo de esta investigación, será realizada en 6 etapas:

1.- Selección de Herramientas: El objetivo de esta etapa es seleccionar la mayor canti-dad de herramientas de análisis de sentimientos de tipo Stand-Alone y con soporte para elidioma español que se encuentren disponible en el mercado.

2.- Elaboración de Dataset: En esta etapa, creamos una cuenta de desarrollador en la redsocial Twitter, para que posteriormente se pueda codificar un script en python que descarguelos tweets que le indique y poder generar el Dataset que luego se filtrará para generar elCorpus que utilizara para la investigación.

3.- Revisión de la Literatura: A través de la literatura, buscamos estudios similares entemas de análisis de sentimientos, conceptos claves del área, comparación de herramientas,para así tener el estado del arte actual y obtener referencias que se encuentren asociadas aesta investigación.

4.- Diagrama de Procesos: La finalidad de esta etapa, es elaborar diagramas de procesosde la instalación de cada de herramienta de análisis de sentimiento utilizada en esta investiga-ción y del uso de estas mismas.

5.- Implementación de Herramientas: En esta etapa se estudian las API de cada herra-mienta de análisis de sentimientos, posteriormente se realiza la instalación y se codifica unscript por cada una de ellas.

6.- Procesamiento de los datos: El objetivo de esta etapa, es realizar el procesamientode los datos a análisis, partiendo por el etiquetado de los tweets, posteriormente viene el pre-procesamiento y procesamiento de la información, para que finalmente realizar un análisispara medir el rendimiento de las herramientas.

47

Page 55: PARIDAD DE HERRAMIENTAS PARA EL ANÁLISIS DE …

6.1 Estructura de Desglose de Trabajo (Vista de Árbol)

Figura 6.1 Plan de Trabajo de TesisFuente: Elaboración propia

6.1. Estructura de Desglose de Trabajo (Vista de Árbol)

Figura 6.2 Estructura de Desglose de Trabajo (Vista de Árbol)Fuente: Elaboración propia

48

Page 56: PARIDAD DE HERRAMIENTAS PARA EL ANÁLISIS DE …

6.2 Estructura de Desglose de Trabajo (Vista Jerárquica)

6.2. Estructura de Desglose de Trabajo (Vista Jerárquica)

Trabajo de Tesis

• 1. Selección de Herramientas

◦ 1.1 Búsqueda H. de Análisis de Sentimientos

◦ 1.2 Filtro de H. con soporte para idioma español

◦ 1.3 Filtro de H. de tipo Stand-Alone

• 2. Elaboración de Dataset

◦ 2.1 Creación cuenta Developer en Twitter

◦ 2.2 Creación de Script para descarga De Tweets

◦ 2.3 Dejar ejecutando script en servidor

◦ 2.4 Filtrar los Tweets descargados

• 3. Revisión de la Literatura

◦ 3.1 Análisis sobre Estado del Arte

◦ 3.2 Revisión de estudios similares

◦ 3.3 Conclusiones

• 4. Diagrama de Procesos

◦ 4.1 Instalación de Herramienta

◦ 4.2 Elaboración de diragramas de procesos sobre el uso de cada herramienta

• 5. Implementación de Herramientas

◦ 5.1 Estudio de las API’s

◦ 5.2 Instalación y creación de Script’s

• 6. Procesamiento de los datos

◦ 6.1 Etiquetado de los datos

◦ 6.2 Etapa de pre-procesamiento de los datos

◦ 6.3 Procesamiento de los datos

◦ 6.4 Análisis de velocidad de procesamiento

◦ 6.5 Análisis de precisión de los resultados

◦ 6.6 Análisis de usabilidad de las herramientas

49

Page 57: PARIDAD DE HERRAMIENTAS PARA EL ANÁLISIS DE …

6.3 Matriz de Riesgos

6.3. Matriz de Riesgos

A continuación, en la tabla 6.1 se muestran los posibles riesgos que podrían aparecerdurante el análisis de la investigación. En la primera columna, se describe de manera generalel riesgo, la segunda columna es un número (rango de 1 a 3) que corresponde a la proba-bilidad de ocurrencia del riesgo, la columna tres es el impacto que causaría el riesgo a lainvestigación, y finalmente la columna número cuatro, es el nivel del riesgo en base a laprobabilidad de ocurrencia e impacto.

La tabla 6.2, corresponde a la matriz de riesgos asociada a la tabla 6.1. Con la matrizpodemos identificar el nivel de riesgo que tiene un determinado riesgo.

ANÁLISIS DE RIESGOSRiesgo Probabilidad Impacto Nivel de RiesgoProblemas en la adquisición del DataSet 2 3 6Falta de presupuesto para el uso de API’s 2 1 2Inconvenientes en el etiquetado de los datos 2 2 4Sobrepasar la cuota máxima de request de la API 1 3 3

Tabla 6.1 Tabla de análisis de riesgos

Fuente: Elaboración propia

Matriz de Riesgos

Impa

cto

Alto3 6 9

Medio2 4 6

Bajo1 2 3

Bajo Medio AltoProbabilidad

Tabla 6.2 Matriz de Riesgos

Fuente: Elaboración propia

50

Page 58: PARIDAD DE HERRAMIENTAS PARA EL ANÁLISIS DE …

7. Resultados

7.1. Resultado de la efectividad del clasificador

Para el análisis realizado de acuerdo a los objetivos específicos de la investigación, seutilizó un Dataset de 1000 tweets adquiridos desde twitter con relación a temas del gobiernode Chile. Luego de haber ejecutado la tarea de análisis de sentimientos de cada una de lasherramientas seleccionadas y compararlas con el Dataset etiquetado obtuvimos los siguientesresultados.

Figura 7.1 Gráfico de análisis de la efectividad de los clasificadoresFuente: Elaboración propia

En la figura 7.1 podemos ver que el Accuracy de las herramientas fluctúa entre los 380 y674. El rendimiento más bajo es de Meaning Cloud y el más alto es de IBM Watson NaturalLanguage Understanding.

51

Page 59: PARIDAD DE HERRAMIENTAS PARA EL ANÁLISIS DE …

7.2 Resultado del tiempo de procesamiento

Se puede observar, que la diferencia entre la herramienta de menor y mejor rendimientoes de casi el doble, pero todas las demás tienen un rendimiento muy similar.

7.2. Resultado del tiempo de procesamiento

Con respecto al timing de procesamiento de los datos de las 9 herramientas, 8 fueronejecutadas con su API de desarrollo utilizando el lenguaje de programación Python, exceptoSemantria que la tarea de análisis las hace a través de un complemento para Excel

Figura 7.2 Gráfico de análisis del tiempo de procesamientoFuente: Elaboración propia

En base a los resultados presentados en la figura 7.2, se puede observar que de las herra-mientas seleccionas para realizar análisis de sentimientos sobre un corpus en español, la quetiene considerablemente el mejor tiempo de procesamiento, es la de Microsoft Azure TextAnalytics, con solo 3.06 segundos en tiempo de respuesta de los resultados.

Las herramientas con peor desempeño, son Monkey Learn y Recast AI, con un tiempo derespuesta de 1949.08 y 1982.28 segundos respectivamente.

52

Page 60: PARIDAD DE HERRAMIENTAS PARA EL ANÁLISIS DE …

7.3 Resultado de usabilidad (cantidad de pasos)

7.3. Resultado de usabilidad (cantidad de pasos)

A continuación, se puede observar mediante diagramas de procesos la cantidad de pasosque necesita cada herramienta de análisis de sentimiento para ser usada, desde el registro dela cuenta de usuario, hasta la ejecución de la tarea de análisis.

Figura 7.3 Diagrama de proceso de uso de GCPFuente: Elaboración propia

53

Page 61: PARIDAD DE HERRAMIENTAS PARA EL ANÁLISIS DE …

7.3 Resultado de usabilidad (cantidad de pasos)

Figura 7.4 Diagrama de proceso de uso de AzureFuente: Elaboración propia

Figura 7.5 Diagrama de proceso de uso de WatsonFuente: Elaboración propia

54

Page 62: PARIDAD DE HERRAMIENTAS PARA EL ANÁLISIS DE …

7.3 Resultado de usabilidad (cantidad de pasos)

Figura 7.6 Diagrama de proceso de uso de MonkeyFuente: Elaboración propia

Figura 7.7 Diagrama de proceso de uso de MeaningFuente: Elaboración propia

55

Page 63: PARIDAD DE HERRAMIENTAS PARA EL ANÁLISIS DE …

7.3 Resultado de usabilidad (cantidad de pasos)

Figura 7.8 Diagrama de proceso de uso de RecastFuente: Elaboración propia

Figura 7.9 Diagrama de proceso de uso de AWSFuente: Elaboración propia

56

Page 64: PARIDAD DE HERRAMIENTAS PARA EL ANÁLISIS DE …

7.3 Resultado de usabilidad (cantidad de pasos)

Figura 7.10 Diagrama de proceso de uso de RosetteFuente: Elaboración propia

Figura 7.11 Diagrama de proceso de uso de SemantriaFuente: Elaboración propia

57

Page 65: PARIDAD DE HERRAMIENTAS PARA EL ANÁLISIS DE …

8. Análisis de los ResultadosLuego de haber ejecutado las tareas de análisis de las herramientas, que corresponden a

la efectividad del clasificador, al tiempo de procesamiento y a la usabilidad que se refiere a lacantidad de pasos que necesitan para utilizarla, los resultados son los siguientes:

8.1. Análisis de la efectividad del clasificador

Existen varias medidas para evaluar la efectividad del clasificador, como por ejemplola Sensibilidad (Recall), que corresponde a la proporción de casos reales de la clase quefueron efectivamente clasificados como tal. También se puede evaluar con la medida Preci-sión (Presicion), que corresponde a la proporción de casos de una clase predicha que eranefectivamente de la clase.

Para efectos de esta investigación, se ha utilizado la medida Accuracy, que es el totalde elementos clasificados correctamente, porque quiere medir la efectividad global de laherramienta, no de alguna clase en particular.

Luego de haber realizado el análisis de las 9 herramientas de análisis de sentimientos,la que obtuvo el menor porcentaje de Accuracy fue Meaning Cloud con solo un 38% deefectividad del clasificador, sin embargo al ver la salida de su resultado, se observó quedemasiados tweets los clasificó como NONE, siendo que todo comentario tiene una polaridad,aunque no tenga un sesgo positivo o negativo, el resultado debería ser neutral.

Y el clasificador que tuvo el mejor porcentaje de efectividad, fue IBM Natural LanguageUnderstanding, con un 67.4%, y todas las demás tienen un Accuracy muy semejante, queoscilan entre 45% y 55%.

8.2. Análisis del tiempo de procesamiento

El tiempo de procesamiento de las herramientas seleccionadas tienen bastante variación,la que tiene el mejor tiempo de respuesta es de Microsoft Azure Text Analytics, que sedemoró en procesar 1000 tweets solo 3.06 segundos, cabe mencionar que el uso es distinto alas demás porque hay que entregarle un arreglo preparado con todos los tweets a evaluar, adiferencia de las demás herramientas, necesitan iterar uno por uno. La que se demoró más

58

Page 66: PARIDAD DE HERRAMIENTAS PARA EL ANÁLISIS DE …

8.3 Análisis de usabilidad (cantidad de pasos)

fue Recast AI, con 1982.28 segundos que corresponden a 33 minutos de procesamiento.

La segunda herramienta de mejor tiempo de respuesta fue Semantria, que demoró 65.4segundos en evaluar 1000 tweets, la particularidad que tiene Semantria, es que se utiliza através de un complemento para Microsoft Excel.

Y la tercera herramienta con mejor tiempo de respuesta, es la de Amazon Web Servicesque demoró entregar los resultados en 201.86 segundos.

8.3. Análisis de usabilidad (cantidad de pasos)

Todas las herramientas seleccionadas son muy similares en temas de usabilidad, algunasrequieren menos cantidad de pasos necesarios para ejecutar la tarea de análisis de sentimien-tos, si hay algo que todas tienen en común, es el registro con nombre de usuario y contraseñapara identificar quien utiliza la herramienta. Otro paso muy común que tienen es habilitarel servicio de facturación de manera obligatoria, independientemente si el proveedor ofrecepruebas gratuitas para uso según un tiempo defino y/o cantidad de datos a procesar. Tambiéntodas las herramientas excepto Semantria necesitan adaptar los datos a analizar al formatonecesita el API de desarrollo.

La herramientas más complejas para utilizar el servicio, es la de Google Cloud Platformy la de Amazon Web Services (Comprehend), ya que ambas necesitan habilitar el servicio defacturación y habilitar la consola para identificar al usuario que utilizará el API de desarrollo.Por otro lado, tenemos la documentación de la API del proveedor, tanto el servicio de Googlecomo el de Amazon, si bien tienen ejemplos, no se encuentran lo suficientemente claros parallegar y utilizar sus servicios, porque se necesita un poco más de conocimiento en el área dedesarrollo, de API’s e instalación de librerías y dependencias, lo que hace que el uso sea másdifícil.

Herramientas como Meaning Cloud, Monkey Learm, Azure Text Analytics, RecastAI e IBM Watson, cuentan con documentación clara y sencilla, con ejemplo que inclusoincorporan el API Key, solo basta con copiar y pegar en el IDE de desarrollo se tiene un scriptfuncional listo para utilizar, al igual que Rosette, la diferencia es que éste último necesita dosregistros, uno en RapidAPI y otro en RosseteAPI.

Finalmente tenemos Semantria, que solo basta con instalar el complemento en MicrosoftExcel, abrir el documento al cual se requiere hacer análisis de sentimientos y ejecutar el

59

Page 67: PARIDAD DE HERRAMIENTAS PARA EL ANÁLISIS DE …

8.4 Tabla comparativa de las herramientas

complemento instalado, posteriormente realizado el análisis, Semantria crea una nuevapestaña en la hoja de cálculo con los resultados.

8.4. Tabla comparativa de las herramientas

La siguiente tabla comparativa contiene un resumen de todas las herramientas selecciona-das para hacer análisis de sentimientos, con las métricas basadas en los objetivos, ordenadode mayor a menor en base a la efectividad.

Herramienta Efectividad Tiempo de procesamiento Pasos

IBM Watson Natural Language Understanding 67.4% 394.56 (s) 5

Amazon Comprehend 55.1% 201.86 (s) 7

Google Cloud Natural Language API 54.5% 1063.03 (s) 7

Microsoft Azure Text Analytics API 53.3% 3.06 (s) 5

Recast AI 52.2% 1982.28 (s) 5

MonkeyLearn 47.4% 1949.08 (s) 5

Rossete Text Analytics 46.4% 901.97 (s) 5

Semantria 41.8% 65.40 (s) 3

MeaningCLoud 38.0% 719.9 (s) 4

Tabla 8.1 Tabla resumen de las herramientas en base a las métricas de los objetivos

Fuente: Elaboración propia

60

Page 68: PARIDAD DE HERRAMIENTAS PARA EL ANÁLISIS DE …

9. ConclusionesLuego de haber realizado las tareas de análisis de sentimientos de las herramientas se-

leccionadas y obtener los resultados de la efectividad de los clasificadores, del tiempo deprocesamiento y de comparar la usabilidad, podemos concluir lo siguiente:

Primero que todo, hay que preguntarse que es lo que queremos, ¿precisión de los resulta-dos?, ¿cuantos datos vamos analizar? ¿en cuanto tiempo queremos los resultados?, ¿queremosque sea fácil de utilizar?, ¿tenemos el personal capacitado para el uso si la herramienta escompleja?

Es importante destacar que todos los análisis se realizaron sin la etapa de pre-procesamientode los datos, proceso que ayuda a eliminar datos que no aportan valor para la herramienta ala hora de hacer análisis de sentimientos, como por ejemplo eliminar los números, utilizarlemming, hacer uso de stemming, quitar las puntuaciones, reemplazar la jerga y las abrevia-ciones, realizar corrección ortográfica, eliminar las stopwords, reemplazar las negaciones porantónimos, etc.

En consecuencia de no haber realizado el pre-procesamiento de la data, era de esperarseque el Accuracy no estuviera cerca del 85%.

De las nueve herramientas seleccionadas, ocho de ellas fueron usadas con su API dedesarrollo para realizar el análisis de sentimientos, excepto Semantria, que se utilizó sucomplemento para Microsoft Excel, debido a no tener API como las demás.

En base a nuestro objetivo de medir la efectividad de las herramientas, se analizaron1000 tweets sobre contenido político, específicamente del gobierno de Sebastian Piñera. Laherramienta de IBM, fue la que obtuvo el mayor accuracy, de los 1000 comentarios que seanalizaron, 674 fueron clasificados correctamente sin utilizar técnicas de pre-procesamientode datos que son usadas para aumentar el porcentaje de efectividad.

La herramienta que obtuvo el porcentaje de clasificación correcta más baja, fue MeaningCloud con tan solo 474 tweets de un total de 1000. Esta herramienta dejó una gran cantidadde tweets sin clasificar, lo que hace que baje la efectividad, siendo que todo comentario tiene

61

Page 69: PARIDAD DE HERRAMIENTAS PARA EL ANÁLISIS DE …

una polaridad.

Las herramientas de Google, Microsoft, Amazon y RecastAI obtuvieron una clasificacióncorrecta sobre el 50% de la cantidad de comentarios analizados, también sin utilizar técnicasde pre-procesamientos de datos.

Luego tenemos a MonekyLearn, Rosette y Semantria, la cantidad de tweets clasificadoscorrectamente se encuentran bajo el 50%.

Bajo el objetivo de medir el tiempo de procesamiento de clasificación para los 1000tweets seleccionados, la herramienta que obtuvo el mejor rendimiento fue la de MicrosoftAzure, con 3.06 segundos, considerablemente más bajo en comparación al promedio detodas las herramientas correspondiente 809.02 segundos. La segunda herramienta con mejorrendimiento fue Semantria con 65.4 segundos y en tercer lugar Amazon con 201.86 segundos.

Las herramientas que obtuvieron el peor desempeño fueron Monkey Learn con 1949.08segundos, y 1982.28 segundos, un equivalente aproximado a media hora de procesamientopara 1000 tweets.

Si el usuario requiere hacer análisis de sentimientos sobre sus productos y/o servicios sinrealizar una etapa de pre-procesamiento, IBM Watson Natural Language Understanding es lamejor opción por la eficiencia de su clasificador.

Si la información a analizar es demasiada, y se necesitan los resultados al instante o entiempo real, la mejor opción es la herramienta de Microsoft Azure Text Analytics, aplicandoal menos 1 técnica de pre-procesamiento para aumentar el Accuracy.

Amazon Web Services (Comprehend) y Google Cloud Platform, también ofrecen resulta-dos en relación efectividad/tiempo de respuesta, pero al igual que la herramienta de Azure,necesitan técnicas de pre-procesamiento.

Bajo el objetivo contar la cantidad de pasos necesarios para realizar análisis de sentimien-tos en cada herramienta, haciendo referencia a la usabilidad de la misma, la herramienta másfácil de usar y la que tiene la menor cantidad de pasos hasta obtener el resultado del análisises Semantria, debido a ser la única que tiene un complemento para Microsoft Excel. Paratodas las demás herramientas seleccionadas, se debe instalar alguna librería, consumir la API

62

Page 70: PARIDAD DE HERRAMIENTAS PARA EL ANÁLISIS DE …

9.1 Trabajos futuros

del desarrollador, y la cantidad de pasos es casi la misma.

Bajo este escenario podríamos decir que Semantria es la única herramienta que la puedeutilizar cualquier usuario con conocimientos básicos de computación, ya que para las demásse necesita tener conocimientos sobre programación.

9.1. Trabajos futuros

A continuación se incorporan trabajos que podrían ser llevados a cabo a partir de estainvestigación con tal de mejorar la comparación de las herramientas.

La incorporación de técnicas de pre-procesamiento.

Incorporar al análisis el uso de emoticones (emociones).

Crear interfaz de usuario para hacer el análisis de sentimiento.

Crear herramienta que permita hacer el análisis directamente en una red social.

63

Page 71: PARIDAD DE HERRAMIENTAS PARA EL ANÁLISIS DE …

10. Anexos

10.1. Scripts utilizados para la descarga, procesamiento yanálisis de sentimiento

10.1.1. Script hecho en python para la descarga de tweets

import j s o nimport numpy as npimport osimport pandas as pdimport tweepyimport s y s

from d a t e t i m e import d a t efrom var_dump import var_dump

consumer_key=" **** "c o n s u m e r _ s e c r e t =" **** "a c c e s s _ k e y =" **** "a c c e s s _ s e c r e t =" **** "

a u t h = tweepy . OAuthHandler ( consumer_key , c o n s u m e r _ s e c r e t )a u t h . s e t _ a c c e s s _ t o k e n ( acce s s_key , a c c e s s _ s e c r e t )a p i = tweepy . API ( a u t h )

def p r o c e s s _ t w e e t ( t w e e t ) :t w e e t _ d i c t = {

’ c r e a t e d _ a t ’ : s t r ( t w e e t . c r e a t e d _ a t ) ,’ l o c a t i o n ’ : s t r ( t w e e t . a u t h o r . l o c a t i o n ) ,’ c o o r d i n a t e s ’ : s t r ( t w e e t . c o o r d i n a t e s ) ,’ a u t h o r _ s c r e e n _ n a m e ’ : s t r ( t w e e t . a u t h o r . sc reen_name ) ,’ a u t h o r _ i d ’ : s t r ( t w e e t . a u t h o r . i d _ s t r ) ,

64

Page 72: PARIDAD DE HERRAMIENTAS PARA EL ANÁLISIS DE …

10.1 Scripts utilizados para la descarga, procesamiento y análisis de sentimiento

’ a u t h o r _ u r l ’ : s t r ( t w e e t . a u t h o r . u r l ) ,’ t e x t ’ : (

s t r (t w e e t . e x t e n d e d _ t w e e t [ ’ f u l l _ t e x t ’ ]i f t w e e t . t r u n c a t e d == True e l s e s t r ( t w e e t . t e x t )

))

}

re turn = j s o n . dumps ( t w e e t _ d i c t , e n s u r e _ a s c i i = F a l s e ) + ’ , \ n ’

c l a s s C u s t o m S t r e a m L i s t e n e r ( tweepy . S t r e a m L i s t e n e r ) :def o n _ s t a t u s ( s e l f , s t a t u s ) :

i f ’ e s ’ in s t a t u s . a u t h o r . l a n g . lower ( ) :i f 0 < s t a t u s . u s e r . f r i e n d s _ c o u n t < 1000 :

i f ( s t a t u s . u s e r . f o l l o w e r s _ c o u n t > 1 5 ) :s t r _ t w e e t = (

s t r (s t a t u s . e x t e n d e d _ t w e e t [ ’ f u l l _ t e x t ’ ]i f s t a t u s . t r u n c a t e d == Truee l s e s t r ( s t a t u s . t e x t )

))i f ( not s t a t u s . r e t w e e t e d ) and ( ’RT @’ not in s t r _ t w e e t ) :

i f s t a t u s . u s e r . s t a t u s e s _ c o u n t < 110000:t w e e t _ d a t a = p r o c e s s _ t w e e t ( s t a t u s )s e l f . s a v e _ t o _ c s v ( t w e e t _ d a t a )

def o n _ e r r o r ( s e l f , s t a t u s _ c o d e ) :p r i n t (

’ E n c o u n t e r e d e r r o r wi th s t a t u s code : ’ ,s t a t u s _ c o d e , f i l e = s y s . s t d e r r

)re turn True

65

Page 73: PARIDAD DE HERRAMIENTAS PARA EL ANÁLISIS DE …

10.1 Scripts utilizados para la descarga, procesamiento y análisis de sentimiento

def o n _ t i m e o u t ( s e l f ) :p r i n t ( ’ Timeout . . . ’ , f i l e = s y s . s t d e r r )re turn True

def s a v e _ t o _ c s v ( s e l f , t w e e t ) :f i l e n a m e e = ’ { } . j s o n ’ . format ( d a t e . t o d a y ( ) )w i th open ( f i l e n a m e e , " a " ) a s t e x t _ f i l e :

t e x t _ f i l e . w r i t e ( t w e e t )

t r y :s a p i = tweepy . s t r e a m i n g . St ream ( auth , C u s t o m S t r e a m L i s t e n e r ( ) )s a p i . f i l t e r ( l o c a t i o n s =[−180 , −90, 180 , 9 0 ] , s t a l l _ w a r n i n g s =True )

e xc ep t E x c e p t i o n :p r i n t ( " E r r o r . . . e j e c u t a n d o nuevamente e l S c r i p t . " )os . sys tem ( ’ py thon ’ + s y s . a rgv [ 0 ] )

10.1.2. Script para procesar tweets y adaptarlos al formato requeridopor las herramientas de Google, Azure y AWS

import j s o n

i = 1wi th open ( ’ s e b a s t i a n . j s o n ’ , e n c o d i n g = ’ u t f −8 ’ ) a s j s o n _ f i l e :

d a t a = j s o n . l o a d ( j s o n _ f i l e )f o r p in d a t a [ ’ t w e e t s ’ ] :

#FOR GOOGLEp r i n t (

’ a n a l y z e _ s e n t i m e n t ( \ ’ ’ + p [ ’ t e x t ’ ] .r e p l a c e ( ’ \ n ’ , ’ ’ ) .r e p l a c e ( ’ \ r ’ , ’ ’ ) .r e p l a c e ( ’ \ ’ ’ , ’ ’ )+ ’ \ ’ ) ’

)

#FOR AZUREp r i n t (

" { \ ’ i d \ ’ : " , " \ ’ "+ s t r ( i )+ " \ ’ , " ,

66

Page 74: PARIDAD DE HERRAMIENTAS PARA EL ANÁLISIS DE …

10.1 Scripts utilizados para la descarga, procesamiento y análisis de sentimiento

’ \ ’ l a n g u a g e \ ’ : \ ’ e s \ ’ , ’ , ’ \ ’ t e x t \ ’ : ’ ," \ ’ "+p [ ’ t e x t ’ ] .r e p l a c e ( ’ \ n ’ , ’ ’ ) .r e p l a c e ( ’ \ r ’ , ’ ’ ) .r e p l a c e ( ’ \ ’ ’ , ’ ’ )+ " \ ’ " ’ } , ’

)

#FOR AMAZONp r i n t (

" consumePOSTRequestSync ( \ ’ "+ p [ ’ t e x t ’ ] .r e p l a c e ( ’ \ n ’ , ’ ’ ) .r e p l a c e ( ’ \ r ’ , ’ ’ ) .r e p l a c e ( ’ \ ’ ’ , ’ ’ ) +" \ ’ ) "

)i += 1

10.1.3. Script para realizar análisis de sentimientos con Google CloudNatural Language API

from go og l e . c l o u d import l anguage_v1from go og l e . c l o u d . l anguage_v1 import enumsimport s i ximport t ime

def a n a l y z e _ s e n t i m e n t ( c o n t e n t ) :c l i e n t = l anguage_v1 . L a n g u a g e S e r v i c e C l i e n t ( )i f i s i n s t a n c e ( c o n t e n t , s i x . b i n a r y _ t y p e ) :

c o n t e n t = c o n t e n t . decode ( ’ u t f −8 ’ )t y p e _ = enums . Document . Type . PLAIN_TEXT

document = { ’ t y p e ’ : type_ , ’ c o n t e n t ’ : c o n t e n t , ’ l a n g u a g e ’ : ’ e s ’ }r e s p o n s e = c l i e n t . a n a l y z e _ s e n t i m e n t ( document )s e n t i m e n t = r e s p o n s e . d o c u m e n t _ s e n t i m e n tp r i n t ( s e n t i m e n t . s c o r e )

67

Page 75: PARIDAD DE HERRAMIENTAS PARA EL ANÁLISIS DE …

10.1 Scripts utilizados para la descarga, procesamiento y análisis de sentimiento

s t a r t _ t i m e = t ime . t ime ( )

a n a l y z e _ s e n t i m e n t (" " "

@ c e c i l i a m o r e l @ s e b a s t i a n p i n e r a Grandepr imera dama gran c l a s e y c a t e g o r i a

" " ")

p r i n t ( " T o t a l e x e c u t i o n t ime : {} " . format ( t ime . t ime ( ) − s t a r t _ t i m e ) )

10.1.4. Script para realizar análisis de sentimientos con Microsoft Azu-re Text Analytics API

import r e q u e s t s# p p r i n t i s used t o f o r m a t t h e JSON r e s p o n s efrom p p r i n t import p p r i n timport t ime

s u b s c r i p t i o n _ k e y = ’ 4 c749775226142c fa338fb fd647b8eaa ’a s s e r t s u b s c r i p t i o n _ k e yt e x t _ a n a l y t i c s _ b a s e _ u r l = " h t t p s : / / w e s t c e n t r a l u s . a p i . c o g n i t i v e . m i c r o s o f t . com / t e x t / a n a l y t i c s / v2 . 0 / "

s e n t i m e n t _ a p i _ u r l = t e x t _ a n a l y t i c s _ b a s e _ u r l + " s e n t i m e n t "

s t a r t _ t i m e = t ime . t ime ( )

documents = {’ documents ’ : [ {

’ i d ’ : ’ 3 ’ ,’ l a n g u a g e ’ : ’ e s ’ ,’ t e x t ’ : ’Que h i z o S e b a s t i a n a h o r a ? ’

} ]}

68

Page 76: PARIDAD DE HERRAMIENTAS PARA EL ANÁLISIS DE …

10.1 Scripts utilizados para la descarga, procesamiento y análisis de sentimiento

h e a d e r s = { "Ocp−Apim−S u b s c r i p t i o n −Key " : s u b s c r i p t i o n _ k e y }r e s p o n s e = r e q u e s t s . p o s t ( s e n t i m e n t _ a p i _ u r l , h e a d e r s = h e a d e r s , j s o n =documents )s e n t i m e n t s = r e s p o n s e . j s o n ( )p p r i n t ( s e n t i m e n t s )

p r i n t ( " T o t a l e x e c u t i o n t ime : {} " . format ( t ime . t ime ( ) − s t a r t _ t i m e ) )

10.1.5. Script para realizar análisis de sentimientos con IBM WatsonNatural Language Understanding

import j s o nfrom w a t s o n _ d e v e l o p e r _ c l o u d import N a t u r a l L a n g u a g e U n d e r s t a n d i n g V 1from w a t s o n _ d e v e l o p e r _ c l o u d . n a t u r a l _ l a n g u a g e _ u n d e r s t a n d i n g _ v 1 import (

F e a t u r e s ,S e n t i m e n t O p t i o n s

)import t ime

b a s e _ u r l = ’ h t t p s : / / ga teway . w a t s o n p l a t f o r m . n e t / ’a p i = ’ n a t u r a l −l anguage−u n d e r s t a n d i n g / a p i ’

n a t u r a l _ l a n g u a g e _ u n d e r s t a n d i n g = N a t u r a l L a n g u a g e U n d e r s t a n d i n g V 1 (v e r s i o n = ’2018−11−16 ’ ,i am_ap ikey = ’ **** ’ ,u r l = b a s e _ u r l + a p i

)

s t a r t _ t i m e = t ime . t ime ( )

w i th open ( ’ s e b a s t i a n . j s o n ’ , e n c o d i n g = ’ u t f −8 ’ ) a s j s o n _ f i l e :d a t a = j s o n . l o a d ( j s o n _ f i l e )f o r p in d a t a [ ’ t w e e t s ’ ] :

r e s p o n s e = n a t u r a l _ l a n g u a g e _ u n d e r s t a n d i n g . a n a l y z e (l a n g u a g e = ’ es ’ ,t e x t =p [ ’ t e x t ’ ] . r e p l a c e (

69

Page 77: PARIDAD DE HERRAMIENTAS PARA EL ANÁLISIS DE …

10.1 Scripts utilizados para la descarga, procesamiento y análisis de sentimiento

’ \ n ’ , ’ ’) . r e p l a c e ( ’ \ r ’ , ’ ’ ) . r e p l a c e ( ’ \ ’ ’ , ’ ’ ) ,f e a t u r e s = F e a t u r e s (

s e n t i m e n t = S e n t i m e n t O p t i o n s ( )) ) . g e t _ r e s u l t ( )

p r i n t ( j s o n . dumps ( r e s p o n s e . g e t ( ’ s e n t i m e n t ’ ) ) )

p r i n t ( " T o t a l e x e c u t i o n t ime : {} " . format ( t ime . t ime ( ) − s t a r t _ t i m e ) )

10.1.6. Script para realizar análisis de sentimientos con MonkeyLearn

from monkeylea rn import MonkeyLearnimport t imeimport j s o n

s t a r t _ t i m e = t ime . t ime ( )

w i th open ( ’ s e b a s t i a n . j s o n ’ , e n c o d i n g = ’ u t f −8 ’ ) a s j s o n _ f i l e :d a t a = j s o n . l o a d ( j s o n _ f i l e )f o r p in d a t a [ ’ t w e e t s ’ ] :

ml = MonkeyLearn ( ’ **** ’ )d a t a = [ p [ ’ t e x t ’ ] . r e p l a c e (

’ \ n ’ , ’ ’) . r e p l a c e ( ’ \ r ’ , ’ ’ ) . r e p l a c e ( ’ \ ’ ’ , ’ ’ ) ]model_ id = ’ cl_u9PRHNzf ’r e s u l t = ml . c l a s s i f i e r s . c l a s s i f y ( model_id , d a t a )p r i n t ( r e s u l t . body )

p r i n t ( " T o t a l e x e c u t i o n t ime : {} " . format ( t ime . t ime ( ) − s t a r t _ t i m e ) )

10.1.7. Script para realizar análisis de sentimientos con Meaning Cloud

import r e q u e s t s

70

Page 78: PARIDAD DE HERRAMIENTAS PARA EL ANÁLISIS DE …

10.1 Scripts utilizados para la descarga, procesamiento y análisis de sentimiento

import t imeimport j s o n

u r l = " h t t p s : / / a p i . mean ingc loud . com / s e n t i m e n t −2.1 "

s t a r t _ t i m e = t ime . t ime ( )

w i th open ( ’ s e b a s t i a n . j s o n ’ , e n c o d i n g = ’ u t f −8 ’ ) a s j s o n _ f i l e :d a t a = j s o n . l o a d ( j s o n _ f i l e )f o r p in d a t a [ ’ t w e e t s ’ ] :

p a y l o a d = " key =****& l a n g = es&t x t ="+p [ ’ t e x t ’ ] . r e p l a c e (’ \ n ’ , ’ ’

) . r e p l a c e ( ’ \ r ’ , ’ ’ ) . r e p l a c e ( ’ \ ’ ’ , ’ ’ )h e a d e r s = {

’ c o n t e n t −t y p e ’ : ’ a p p l i c a t i o n / x−www−form−u r l e n c o d e d ’}r e s p o n s e = r e q u e s t s . r e q u e s t (

"POST" ,u r l ,d a t a = p a y l o a d . encode ( ’ u t f −8 ’ ) ,h e a d e r s = h e a d e r s

)p r i n t ( r e s p o n s e . t e x t )

p r i n t ( " T o t a l e x e c u t i o n t ime : {} " . format ( t ime . t ime ( ) − s t a r t _ t i m e ) )

10.1.8. Script para realizar análisis de sentimientos con Recast AI

import r e c a s t a iimport t imeimport j s o n

s t a r t _ t i m e = t ime . t ime ( )

w i th open ( ’ s e b a s t i a n . j s o n ’ , e n c o d i n g = ’ u t f −8 ’ ) a s j s o n _ f i l e :d a t a = j s o n . l o a d ( j s o n _ f i l e )

71

Page 79: PARIDAD DE HERRAMIENTAS PARA EL ANÁLISIS DE …

10.1 Scripts utilizados para la descarga, procesamiento y análisis de sentimiento

f o r p in d a t a [ ’ t w e e t s ’ ] :r e q u e s t = r e c a s t a i . Reques t ( ’ **** ’ , ’ e s ’ )r e s p o n s e = r e q u e s t . a n a l y s e _ t e x t (

p [ ’ t e x t ’ ] . r e p l a c e ( ’ \ n ’ , ’ ’ ) . r e p l a c e (’ \ r ’ , ’ ’

) . r e p l a c e ( ’ \ ’ ’ , ’ ’ ))p r i n t ( r e s p o n s e . raw )

p r i n t ( " T o t a l e x e c u t i o n t ime : {} " . format ( t ime . t ime ( ) − s t a r t _ t i m e ) )

10.1.9. Script para realizar análisis de sentimientos con Amazon Com-prehend

import bo to3import t imeimport j s o n

comprehend = bo to3 . c l i e n t (s e r v i c e _ n a m e = ’ comprehend ’ , reg ion_name = ’ us−e a s t −1 ’

)

s t a r t _ t i m e = t ime . t ime ( )

w i th open ( ’ s e b a s t i a n . j s o n ’ , e n c o d i n g = ’ u t f −8 ’ ) a s j s o n _ f i l e :d a t a = j s o n . l o a d ( j s o n _ f i l e )f o r p in d a t a [ ’ t w e e t s ’ ] :

t e x t = p [ ’ t e x t ’ ] . r e p l a c e (’ \ n ’ , ’ ’

) . r e p l a c e ( ’ \ r ’ , ’ ’ ) . r e p l a c e ( ’ \ ’ ’ , ’ ’ )p r i n t ( ’ C a l l i n g D e t e c t S e n t i m e n t ’ )p r i n t ( j s o n . dumps (

comprehend . d e t e c t _ s e n t i m e n t ( Text = t e x t , LanguageCode= ’ es ’ )) )p r i n t ( ’ End of D e t e c t S e n t i m e n t \ n ’ )

72

Page 80: PARIDAD DE HERRAMIENTAS PARA EL ANÁLISIS DE …

10.1 Scripts utilizados para la descarga, procesamiento y análisis de sentimiento

p r i n t ( " T o t a l e x e c u t i o n t ime : {} " . format ( t ime . t ime ( ) − s t a r t _ t i m e ) )

10.1.10. Script para realizar análisis de sentimientos con Rossete TextAnalytics

# i m p o r t u n i r e s timport t imeimport j s o nimport r e q u e s t s’ ’ ’d e f consumePOSTRequestSync ( da ta ) :

r e s p o n s e = u n i r e s t . p o s t (" h t t p s : / / r o s e t t e a p i −r o s e t t e −v1 . p . r a p i d a p i . com / s e n t i m e n t " ,h e a d e r s ={

"X−RapidAPI−Host " : " r o s e t t e a p i −r o s e t t e −v1 . p . r a p i d a p i . com " ,"X−RapidAPI−Key " : "****" ,"X−Rose t t eAPI−Key " : "****" ," Conten t−Type " : " a p p l i c a t i o n / j s o n " ," Ac ce p t " : " a p p l i c a t i o n / j s o n "

} ,params = ( " { \ " c o n t e n t \ " : \ " " + da ta + " \ " } " )

)p r i n t ( r e s p o n s e . body )

’ ’ ’s t a r t _ t i m e = t ime . t ime ( )

w i th open ( ’ s e b a s t i a n . j s o n ’ , e n c o d i n g = ’ u t f −8 ’ ) a s j s o n _ f i l e :d a t a = j s o n . l o a d ( j s o n _ f i l e )f o r p in d a t a [ ’ t w e e t s ’ ] :

params=" { \ " c o n t e n t \ " : \ " "+ p [ ’ t e x t ’ ] . r e p l a c e (’ \ n ’ , ’ ’

) . r e p l a c e ( ’ \ r ’ , ’ ’ ) . r e p l a c e ( ’ \ \ ’ , ’ ’ ) . r e p l a c e ( ’ \ " ’ , ’ ’ ) +" \ " } "u r l = ’ h t t p s : / / r o s e t t e a p i −r o s e t t e −v1 . p . r a p i d a p i . com / s e n t i m e n t ’# Adding empty header as p a r a m e t e r s are b e i n g s e n t i n pay loadh e a d e r s = {

"X−RapidAPI−Host " : " r o s e t t e a p i −r o s e t t e −v1 . p . r a p i d a p i . com" ,

73

Page 81: PARIDAD DE HERRAMIENTAS PARA EL ANÁLISIS DE …

10.1 Scripts utilizados para la descarga, procesamiento y análisis de sentimiento

"X−RapidAPI−Key " : " **** " ,"X−Rose t teAPI−Key " : " **** " ," Conten t−Type " : " a p p l i c a t i o n / j s o n " ," Accept " : " a p p l i c a t i o n / j s o n "

}r = r e q u e s t s . p o s t (

u r l ,d a t a =params . encode ( ’ u t f −8 ’ ) ,h e a d e r s = h e a d e r s

)p r i n t ( r . c o n t e n t )

p r i n t ( " T o t a l e x e c u t i o n t ime : {} " . format ( t ime . t ime ( ) − s t a r t _ t i m e ) )

74

Page 82: PARIDAD DE HERRAMIENTAS PARA EL ANÁLISIS DE …

Bibliografía

[1] Abbasi, A., Hassan, A., and Dhar, M. (2014). Benchmarking twitter sentiment analysistools. In LREC, volume 14, pages 26–31.

[2] Chenlo, J. M. and Losada, D. E. (2014). An empirical study of sentence features forsubjectivity and polarity classification. Information Sciences, 280:275–288.

[3] Collomb, A., Costea, C., Joyeux, D., Hasan, O., and Brunie, L. (2014). A study andcomparison of sentiment analysis methods for reputation evaluation. Rapport de rechercheRR-LIRIS-2014-002.

[4] CVE-2008-1368 (2008). Publication quality tables in *. [online] http://nvd.nist.gov/nvd.cfm?cvename=CVE-2008-1368.

[5] D, D. M. (2016). Sentiment analysis: A comparative study on different approaches.Procedia Computer Science.

[6] Dubiau, L. (2013). Análisis de sentimientos sobre un corpus en español: Experimentacióncon un caso de estudio. Master’s thesis, Universidad de Buenos Aires.

[7] Feldman, R. (2013). Techniques and applications for sentiment analysis. Communica-tions of the ACM, 56(4):82–89.

[8] Guo, L. and Wan, X. (2012). Exploiting syntactic and semantic relationships betweenterms for opinion retrieval. Journal of the american society for information science andtechnology, 63(11):2269–2282.

[9] He, Y. and Zhou, D. (2011). Self-training from labeled features for sentiment analysis.Information Processing & Management, 47(4):606–616.

[10] Jongeling, R., Sarkar, P., Datta, S., and Serebrenik, A. (2017). On negative results whenusing sentiment analysis tools for software engineering research. Empirical SoftwareEngineering, 22(5):2543–2584.

[11] Kaushik, A. and Naithani, S. (2015). A study on sentiment analysis: Methods and tools.International journal of Science and Research, 4:287–291.

[12] Kim, K. and Lee, J. (2014). Sentiment visualization and classification via semi-supervised nonlinear dimensionality reduction. Pattern Recognition, 47(2):758–768.

[13] König, A. C. and Brill, E. (2006). Reducing the human overhead in text categoriza-tion. In Proceedings of the 12th ACM SIGKDD international conference on Knowledgediscovery and data mining, pages 598–603.

[14] Kontopoulos, E., Berberidis, C., Dergiades, T., and Bassiliades, N. (2013). Ontology-based sentiment analysis of twitter posts. Expert systems with applications, 40(10):4065–4074.

[15] Lawrence, L. (2014). Reliability of sentiment mining tools: a comparison of semantriaand social mention. B.S. thesis, University of Twente.

75

Page 83: PARIDAD DE HERRAMIENTAS PARA EL ANÁLISIS DE …

Bibliografía

[16] Lee, S.-W., Song, Y.-I., Lee, J.-T., Han, K.-S., and Rim, H.-C. (2012). A new genera-tive opinion retrieval model integrating multiple ranking factors. Journal of IntelligentInformation Systems, 38(2):487–505.

[17] Liu, B. and Zhang, L. (2012). A survey of opinion mining and sentiment analysis. InMining text data, pages 415–463. Springer.

[18] Maks, I. and Vossen, P. (2012). A lexicon model for deep sentiment analysis andopinion mining applications. Decision Support Systems, 53(4):680–688.

[19] Mäntylä, M. V., Graziotin, D., and Kuutila, M. (2018). The evolution of sentimentanalysis—a review of research topics, venues, and top cited papers. Computer ScienceReview, 27:16–32.

[20] Medhat, W., Hassan, A., and Korashy, H. (2014). Sentiment analysis algorithms andapplications: A survey. Ain Shams engineering journal, 5(4):1093–1113.

[21] Montejo-Ráez, A., Martínez-Cámara, E., Martín-Valdivia, M. T., and Ureña-López,L. A. (2014). Ranked wordnet graph for sentiment polarity classification in twitter.Computer Speech & Language, 28(1):93–107.

[22] Morales, J. A. E. (2014). Comparación de rendimiento de técnicas de aprendizajeautomático para el análisis de afecto sobre rextos en español. Master’s thesis, Universidaddel Bío-Bío.

[23] Nigam, K. and Hurst, M. (2006). Towards a robust metric of polarity. In ComputingAttitude and Affect in Text: Theory and Applications, pages 265–279. Springer.

[24] Pang, B. (2008). Opinion mining and sentiment analysis. Foundations and Trends inInformation Retrieval.

[25] Pang, B. and Lee, L. (2008). Opinion mining and sentiment analysis foundations andtrends in information retrieval vol. 2.

[26] Reyes, A. and Rosso, P. (2012). Making objective decisions from subjective data:Detecting irony in customer reviews. Decision support systems, 53(4):754–760.

[27] Ribeiro, F. N., Araújo, M., Gonçalves, P., Gonçalves, M. A., and Benevenuto, F. (2016).Sentibench-a benchmark comparison of state-of-the-practice sentiment analysis methods.EPJ Data Science, 5(1):23.

[28] Saleh, M. R., Martín-Valdivia, M. T., Montejo-Ráez, A., and Ureña-López, L. (2011).Experiments with svm to classify opinions in different domains. Expert Systems withApplications, 38(12):14799–14804.

[29] Sasikala, P. and Sheela, L. M. I. (2017). Comparative study of sentiment analysistechniques in web.

[30] Serrano-Guerrero, J. (2015). Sentiment analysis: A review and comparative analysis ofweb services. Master’s thesis, University of Castilla-La Mancha.

[31] Symeonidis, S. (2018). A comparative evaluation of pre-processing techniques andtheir interactions for twitter sentiment analysis. Expert Systems with Applications.

76

Page 84: PARIDAD DE HERRAMIENTAS PARA EL ANÁLISIS DE …

Bibliografía

[32] Tata, S. and Di Eugenio, B. (2010). Generating fine-grained reviews of songs fromalbum reviews. In Proceedings of the 48th annual meeting of the association for compu-tational linguistics, pages 1376–1385.

[33] Tsytsarau, M. and Palpanas, T. (2012). Survey on mining subjective data on the web.Data Mining and Knowledge Discovery, 24(3):478–514.

[34] Valdebenito, F. I. O. (2014). Minería de opinión y análisis de sentimientos. Master’sthesis, Pontificia Universidad Católica de Valparaíso.

[35] Vyas, V. and Uma, V. (2018). An extensive study of sentiment analysis tools and binaryclassification of tweets using rapid miner. Procedia Computer Science, 125:329–335.

[36] Wang, G., Xie, S., Liu, B., and Yu, P. S. (2012). Identify online store review spammersvia social review graph. ACM Transactions on Intelligent Systems and Technology (TIST),3(4):1–21.

77