Está en la página 1de 62

UNIVERSIDAD NACIONAL DE SAN AGUSTIN DE

AREQUIPA
FACULTAD DE INGENIERIA DE PRODUCCION Y SERVICIOS
ESCUELA PROFESIONAL DE INGENIERÍA DE SISTEMAS

Sistema de Evaluación de la Calidad de Servicios Web a través de la Mineración de la


Experiencia de los Usuarios
Tesis para optar al Título Profesional de Ingeniero de Sistemas
Jael Louis Zela Ruiz
Asesor:
Mg. Eveling Gloria Castro Gutierrez
Co-asesor:
Prof. Dr. Chouki Tibermacine
Financiamiento de la Universidad Nacional de San Agustín de Arequipa - IBA-0012-2016, mediante
RDE-Nº089-2016 FONDECYT- CONTRATO DE SUBVENCION Nº212-2016-UNSA.

Abril 2019
Esta tesis la dedicado con todo amor y cariño a mis padres Flavia Ruiz Zapana y Roger Florentino Zela
Humpire, por su sacrificio y esfuerzo, por darme un carrera para mi futuro y por siempre creer en mí, por
siempre brindarme su apoyo, comprensión, amor y cariño.
AGRADECIMIENTOS

Quiero agradecer, primeramente, a Dios que me permitió lograr un objetivo más en mi vida, y
siempre me ha dado salud y bienestar.

Quiero agradecer a mis padres que siempre me han apoyado durante toda mi vida universitaria y a
mis hermanos que confiaron en mí.

Quiero agradecer a mi asesora de tesis Eveling Castro Gutierrez, por su orientación y guía en el
desarrollo de este proyecto de investigación, por su paciencia, dedicación, comprensión y amistad.

Quiero también agradecer al profesor Chouki Tibermacine y la profesora Mariane Huchard, de la


Universidad de Montpellier, en Francia, que me brindaron su apoyo y co-asesoramiento en el
desarrollo de este trabajo.

A la Universidad Nacional de San Agustín de Arequipa, UNSA, por el financiamiento del proyecto de
investigación según contrato N° 212-2016-UNSA, por su confianza en mi persona y por haber
invertido en este proyecto de investigación.

Agradezco a todas las personas que de una forma u otra me brindaron su apoyo sincero e
incondicional.

i
RESUMEN

En los recientes años, la selección de servicios Web ha llegado a convertirse en una tarea no trivial,
debido a la gran cantidad de servicios Web disponibles en la Internet y a los servicios Web
funcionalmente similares. Consecuentemente, la Calidad de Servicio (QoS) ha sido usado con el
objetivo de comparar servicios similares en funcionalidad, donde valores de calidad son medidos
usando diferentes atributos de calidad, tales como disponibilidad, tiempo de respuesta y rendimiento.
Sin embargo, estos valores no siempre reflejan la calidad que los usuarios perciben. Hoy, con la Web
2.0, algunos directorios de servicios Web permiten a los usuarios publicar comentarios sobre los
servicios indexados. Estos comentarios son frecuentemente analizados por potenciales usuarios,
nuevo usuarios en busca de servicios, con el fin de tener un mayor conocimiento sobre la calidad de
los servicios. Los comentarios de usuarios son un buen indicador debido que describen la calidad
subjetiva de los usuarios, de los cuales se puede inferir y/o calcular una reputación del servicio Web.
Por otro lado, debido al gran número de servicios y a la enorme cantidad de comentarios por servicio,
la tarea de analizar comentarios llega a demandar bastante tiempo y ser tediosa para nuevo usuarios.
Ante esta problemática, este trabajo propone un proceso de evaluación de la reputación de servicio
Web basado en técnicas de Mineración de Textos. Este proceso recolecta y procesa los comentarios
de usuarios para evaluar si el comentario presenta información subjetiva, así mismo evalúa la polaridad
del comentario (positivo o negativo), esto refleja la satisfacción o decepción de los usuarios con
respecto a la calidad del servicio Web. Para lograr este objetivo, se colectaron comentarios de dos
directorios de servicios Web, ProgrammableWeb y G2Crowd, posteriormente varios tipos de
características fueron extraídos de los comentarios como Bag of Words, Bigrams, Part of Speech y
TF-IDF, así también diferentes algoritmos de aprendizaje de máquina fueron usados, tales como Naive
Bayes, Support Vector Machine y Maximum Entropy. Finalmente, el Promedio Bayesiano fue usado
para calcular un valor de reputación para los servicios. Una plataforma de consulta fue implementada
para disponibilizarla al público en general para poder comparar y seleccionar servicios Web.

Palabras Claves: Calidad de Servicios, Servicios Web, Mineración de Textos, Calidad de


Experiencia.

ii
ABSTRACT

Nowadays Web Service selection has become a non-trivial task because of the increasing number of
services available on the Internet and the functionally similar Web services. Consequently, Quality of
Service has been used in order to compare similar services, where quality values are measured in
different quality attributes such as availability, response time, throughput. However, these values not
always reflect the quality that users perceive. Today, with the Web 2.0, some Web service directories
enable users to publish reviews on the indexed Web services. These reviews are frequently carefully
analyzed by potential users, in order to get a better perception of these services. User reviews are a
good indicator to describe the subjective quality and reputation (as a consequence) of a given service.
Nonetheless, due to the huge number of Web services and the number of reviews per service, this task
turns heavy. In order to avoid this long and tedious task of searching and analyzing user reviews, we
propose a process, based on text mining, to automatically assess an approximation of the subjective
quality of Web services from their reviews. This process mines user reviews to measure their overall
polarity (positive or negative) that reflects the user perception of the quality in Web services. For doing
so, we extract different text features and make use of different machine learning techniques to grasp
the way the assessment should be done. For evaluating the proposed process, we have conducted
many experiments on a large collection of real Web services and user reviews gathered from
ProgrammableWeb and G2Crowd directories. Different features were extracted from the user reviews
such as Bag of Words, Bigrams, Part of Speech, and TF-IDF, as well as multiple machine learning
algorithms as Naive Bayes, Support Vector Machine and Maximum Entropy. Finally, the Bayesian
Average algorithm was used to compute a reputation value for Web services. A query platform was
implemented in order to make available these reputations in order to be helpful for future potential Web
service users.

Keywords: Quality of Services, Web Services, Text Mining, Quality of Experience.

iii
Tabla de Contenidos
Página

Lista de Tablas vii

Lista de Figuras viii

1 PLANTEAMIENTO DEL PROBLEMA 1


1.1 Descripción de la Realidad Problemática . . . . . . . . . . . . . . . . . . . . . .. 1
1.2 Delimitaciones y Definición del Problema . . . . . . . . . . . . . . . . . . . . .. 2
1.2.1 Delimitaciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 2
1.2.2 Definición del Problema . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 2
1.3 Formulación del Problema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 3
1.4 Objetivo de la Investigación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 3
1.4.1 Objetivo General . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 3
1.4.2 Objetivos Específicos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 3
1.5 Hipótesis de la Investigación . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 4
1.6 Variables e Indicadores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 4
1.6.1 Variable Independiente . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 4
1.6.2 Variable Dependiente . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 4
1.7 Viabilidad de la Investigación . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 5
1.7.1 Viabilidad Técnica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 5
1.7.2 Viabilidad Operativa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 5
1.7.3 Viabilidad Económica . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 5
1.8 Justificación e Importancia de la Investigación . . . . . . . . . . . . . . . . . .. 6
1.8.1 Justificación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 6
1.8.2 Importancia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 7
1.9 Limitaciones de la Investigación . . . . . . . . . . . . . . . . . . . . . . . . . . .. 7
1.10 Tipo y Nivel de la Investigación . . . . . . . . . . . . . . . . . . . . . . . . . . .. 7
1.10.1 Tipo de Investigación . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 8
1.10.2 Nivel de Investigación . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 8
1.11 Método y Diseño de la Investigación . . . . . . . . . . . . . . . . . . . . . . . .. 8
1.11.1 Método de la Investigación . . . . . . . . . . . . . . . . . . . . . . . . . .. 8
1.11.2 Diseño de la Investigación . . . . . . . . . . . . . . . . . . . . . . . . . .. 8
1.12 Técnicas e Instrumentos de Recolección de la Información . . . . . . . . . . .. 9
1.12.1 Técnicas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 9
1.12.2 Instrumentos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 9

iv
TABLA DE CONTENIDOS

1.13 Observaciones Finales . . . . . . . . . . . . . . . . . . . . . ............. 9

2 MARCO TEÓRICO 10
2.1 Marco Conceptual . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
2.1.1 Arquitectura Orientada a Servicios . . . . . . . . . . . . . . . . . . . . . . 10
2.1.2 Servicio Web . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
2.1.3 Calidad de Servicio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
2.1.4 Calidad de Experiencia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
2.1.5 Reputación de Servicio Web . . . . . . . . . . . . . . . . . . . . . . . . . . 14
2.1.6 Métricas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
2.2 Estado del Arte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
2.2.1 Modelos Basados en Estadística . . . . . . . . . . . . . . . . . . . . . . . . 15
2.2.2 Modelos Basados en Lógica Difusa . . . . . . . . . . . . . . . . . . . . . . 16
2.2.3 Modelos Basados en Mineración de Datos . . . . . . . . . . . . . . . . . . 16
2.2.4 Modelos Basados en Sistemas de Recomendación . . . . . . . . . . . . . 17
2.2.5 Modelos en Otros Dominios . . . . . . . . . . . . . . . . . . . . . . . . . . 18
2.3 Observaciones Finales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20

3 Proceso de Evaluación de Servicios Web 21


3.1 Recolección de Comentarios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
3.2 Extracción de Características . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
3.2.1 Bag of Words . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
3.2.2 N-grams . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
3.2.3 Part of Speech . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
3.2.4 TF-IDF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
3.3 Análisis de Subjetividad . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
3.3.1 Naive Bayes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
3.3.2 Support Vector Machine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
3.3.3 Maximum Entropy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
3.4 Análisis de Sentimiento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
3.5 Reputación de servicios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
3.6 Observaciones Finales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29

4 Sistema de Evaluación de Calidad de Servicios 30


4.1 Recolección de Comentarios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
4.2 Extracción de Características . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
4.3 Análisis de Subjetividad . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
4.4 Análisis de Sentimiento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
4.5 Reputación de Servicios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
4.6 Sistema de Consulta . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
4.6.1 Arquitectura . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
4.6.2 Base de Datos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
4.6.3 Reputation Services . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
4.6.4 QServices WebApp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
4.7 Observaciones Finales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
v
TABLA DE CONTENIDOS

CONCLUSIONES 43

REFERENCIAS BIBLIOGRÁFICAS 44

A Sistema de Validación 48

B Asesor Externo 50

vi
Lista de Tablas

Tabla Página

1.1 Calculo del valor de reputación de servicios (elaboración propia) . . . . . . . . . . 6

3.1 Calculo del valor de reputación de servicios (elaboración propia) . . . . . . . . . . 29

4.1 Extracción de características (elaboración propia) . . . . . . . . . . . . . . . . . . . 32


4.2 Resultados del Análisis de Subjetividad (elaboración propia) ............ 34
4.3 Resultados del Análisis de Sentimiento (elaboración propia) . . . . . . . . . . . . . 36
4.4 Muestra Representativa de la Reputación de Servicios Web (elaboración propia) 37
4.5 Validación de Resultados (elaboración propia) ..................... 37

A.1 Resultados del Sistema de Vaidación (elaboración propia) . . . . . . . . . . . . . . 49

vii
Lista de Figuras

Figura Página

2.1 Arquitectura SOA [1, 2] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11


2.2 Jerarquía de los conceptos de calidad [1]. . . . . . . . . . . . . . . . . . . . . . . . . 13

3.1 Pasos del proceso de evaluación de la caliadad de servicios Web basado en la


experiencia de los usuarios (elaboración propia). . . . . . . . . . . . . . . . . . . . . 21
3.2 Multiples limites de decisión en clasificación de dos clases [3] . . . . . . . . . . . 26
3.3 Representación gráfica del algoritmo Support Vector Machine [3] . . . . . . . . . 26

4.1 Ejemplo de comentario subjetivo [4]. . . . . . . . . . . . . . . . . . . . . . . . . . . . 31


4.2 Arquitectura de la plataforma de consulta QServices (elaboración propia). . . . . 38
4.3 Base de datos de la plataforma de consulta QServices (elaboración propia). . . . 39
4.4 Plataforma de consulta QServices (elaboración propia). . . . . . . . . . . . . . . . 40
4.5 Resultado de la busqueda por la palabra “payment”. 1) Logo del servicio. 2) Nombre del
servicio. 3) Reputación del servicio calculada a través de nuestro model. 4) Descripción del
servicio. 5) Categoria del servicio (elaboración propia). 41
4.6 Comentarios del servicio “Authorize.Net” y la polaridad de cada comentario (elaboración
propia) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41

A.1 Sistema de Validación (elaboración propia) . . . . . . . . . . . . . . . . . . . . . . . 48

viii
Capitulo
1
PLANTEAMIENTO DEL PROBLEMA

E ste capítulo profundiza en la definición del problema y sus delimitaciones, así también, la solución propuesta en este
proyecto de investigación y los diferentes
métodos a ser usados.

1.1 Descripción de la Realidad Problemática

En los recientes años, los servicios Web han llegado a ser la tecnología más popular para desarrollar
aplicaciones orientadas a servicios (SOA, del inglés Service Oriented Architecture) [5]. Servicios Web
están basados en un conjunto de tecnologías estandarizadas como WSDL (Web Service Description
Language) y protocolos de Internet como SOAP (del inglés Simple Object Access Protocol ) y HTTP
(del inglés Hypertext Transfer Protocol ). Servicios Web son componentes auto contenidos que
pueden ser fácilmente explorados, reusables, compuestos de otros servicios, publicables y
localizados a través de la Web [6]. Sin embargo, debido a su popularidad, un número creciente de
servicios Web similares en funcionalidad pueden ser encontrados en Internet, dificultando la tarea de
selección de servicios para una determinada tarea.

La calidad de servicios (QoS, del inglés Quality of Service) ha llegado a ser el criterio de evaluación
más apropiado para diferenciar servicios Web similares. La calidad de servicios es un conjunto de
atributos que son clasificados en dos grupos [6]. QoS de Red (Network QoS) tales como tiempo de
descarga (download time), rendimiento (throughput), tiempo de respuesta (round-trip time), etc. QoS
de servicio Web (en inglés Web service QoS) como disponibilidad (availability), precisión (accuracy),
tiempo de respuesta (response time), etc. En la actualidad, la selección de servicio Web están basados
en QoS [7–9]. Estos enfoques basados en QoS dependen de la información obtenida sobre cada
atributo de calidad QoS, esta información puede ser obtenidos de dos formas: de forma estática (static
release) o

1
CAPITULO 1. PLANTEAMIENTO DEL PROBLEMA

por supervisión en tiempo de ejecución (runtime monitoring) [10]. La información estática es


especificada en la descripción del servicio Web como una extensión de su WSDL, este tipo de
información usualmente no es actualizada y es obtenida en ambientes controlados en plataformas
específicas. Por otro lado, el tipo por supervisión en tiempo de ejecución es un proceso costoso, que
consume recursos, tiempo y dinero. Herramientas de supervisión son ejecutados en el lado del cliente
para recolectar y analizar información QoS.

Por otro lado, existe otra fuente de información QoS que es de fácil acceso y que provee información
más subjetiva de la calidad del servicio. Comentarios de usuarios son una fuente valiosa de
conocimiento, donde usuarios pueden libremente publicar sus opiniones y experiencias al público.
Comentarios de usuarios en servicios Web llega a ser una importante fuente de información subjetiva
sobre la calidad de los servicios. Upadhyaya
[11] define como calidad de experiencia (QoE, del inglés Quality of Experience) a la calidad obtenida
a partir de los comentarios de usuarios. Futuros usuarios de servicios Web recurren a revisar
comentarios de otros usuarios durante su tarea de selección de servicio, con el fin de seleccionar el
servicio más adecuado. Sin embargo, esta tarea llega a ser tediosa y requiere de bastante tiempo
debido a la enorme cantidad de comentarios por servicio y a la cantidad de servicios existentes en la
Web.

1.2 Delimitaciones y Definición del Problema

Esta sección presenta las delimitaciones del alcance de este proyecto, basado en una área de
investigación específica en la computación. Seguidamente, se define el problema que las empresas
y desarrolladores pasan durante la selección de servicios Web.

1.2.1 Delimitaciones

Este proyecto de investigación se encuentra en el área de mineración de texto (del inglés Text Mining),
el cual es una disciplina multidisciplinar que abarca otras áreas como recuperación de información,
mineración de datos, aprendizaje de máquina, estadística, y linguística computacional (del inglés
Information Retrieval, Data Mining, Machine Learning, Statistics, y Computacional Linguistics,
respectivamente). Este proyecto es una investigación experimental y aplicativa, que comprende el
desarrollo de una plataforma de consulta sobre la calidad de servicios Web.

Esta plataforma permitirá buscar servicios Web de acuerdo a su nombre, retornando una lista de
servicios Web ordenados según su reputación basado en su calidad de servicio. Esta reputación es
un valor numérico calculado a través de los comentarios escritos por usuarios del servicio.

1.2.2 Definición del Problema

La tarea de selección de servicios Web para una determinada tarea ha llegado ser una tarea no trivial,
debido a que hoy en día existen mas de un servicio Web que ofrecen una misma funcionalidad,
servicios funcionalmente similares. Por ejemplo: Google Drive, Dropbox,

2
CAPITULO 1. PLANTEAMIENTO DEL PROBLEMA

SkyDrive y Box son servicios similares que ofrecen almacenamiento de archivos en la nube. Sin
embargo, seleccionar una de ellas para fines específicos, por ejemplo almacenamiento de información
crítica y sensible de una empresa, que requiere una protección mayor no es una tarea fácil desde que
factores de calidad de servicio necesitan ser analizados (rendimiento, seguridad, disponibilidad,
integridad). Opiniones de usuarios que usan o usaron tales servicios suelen ser de gran ayuda para
nuevos usuarios. Estas opiniones expresan la satisfacción o desagrado del servicio durante el uso de
sus usuarios. Sin embargo, debido a la masiva cantidad de información en la Web, comentarios de
usuarios, no es fácil para nuevos usuarios tener una visión general de la calidad de los servicio.

1.3 Formulación del Problema

La existencia de múltiples servicios con funcionalidades similares y la enorme cantidad de información


en la Web, hacen difícil la selección de servicios Web para un fin determinado. Por lo tanto, crea la
necesidad de un sistema de evaluación de la calidad de servicios Web que aplique técnicas de
mineración de textos en las experiencias de los usuarios (comentarios de usuarios), para calcular un
nivel de reputación en los servicios Web.

1.4 Objetivo de la Investigación

Esta sección define los objetivos generales y objetivos específicos de la investigación.

1.4.1 Objetivo General

Elaborar una sistema de consulta de la calidad de servicios Web a través de la experiencia de los
usuarios usando mineración de textos.

1.4.2 Objetivos Específicos

Entre los objetivos específicos tenemos:

• Analizar el estado del arte de soluciones similares a este proyecto.

• Obtener una base de datos (dataset) de servicios Web y comentarios de usuarios en cada
servicio.

• Identificar y seleccionar opiniones subjetivas en las opiniones de los Servicios Web.

• Identificar la orientación de sentimiento en las opiniones subjetivas para medir el grado de


satisfacción de los usuarios respecto al servicio.

• Atribuir un nivel de reputación para cada servicio de acuerdo a las opiniones de sus usuarios.

• Implementar un módulo de consulta de servicios Web que apoye a las empresa y/o
desarrolladores en la selección de servicios Web.

3
CAPITULO 1. PLANTEAMIENTO DEL PROBLEMA

1.5 Hipótesis de la Investigación

La hipótesis nula e hipótesis alternativa de este proyecto de investigación son:

Hipótesis Nula, H0: Es posible que las técnicas de mineración de opiniones midan el grado de
satisfacción de los usuarios para calcular la reputación de servicios Web.

Hipótesis Alternativa, H1: Las técnicas de mineración de opiniones no miden el grado de


satisfacción de los usuarios, por lo tanto no es posible calcular la reputación de servicios Web.

1.6 Variables e Indicadores

Es de importancia identificar nuestras variables de investigación para poder observar y medir los
resultados esperados en el proyecto.

1.6.1 Variable Independiente

Las variables independientes del proyecto de investigación son:

• Características de texto que representen las opiniones de los usuarios

• Clasificador de la subjetividad de las opiniones de los usuarios.

• Clasificador de la polaridad de las opiniones de los usuarios.

a) Indicadores: Los indicadores de medición de las variables independientes son:

• Precisión y exhaustividad en la clasificación de las opiniones.


• Precisión y exhaustividad en la clasificación en la subjetividad
• Precisión y exhaustividad en la clasificación en la polaridad

b) Indices Los índices de aceptación en las variables independientes son:

• Una precisión y exhaustividad mayor al 70% de las opiniones correctamente


clasificadas.

1.6.2 Variable Dependiente

Las variables dependientes del proyecto de investigación son:

• Reputación del Servicio Web

a) Indicadores: Los indicadores de medición de las variables dependientes son:

4
CAPITULO 1. PLANTEAMIENTO DEL PROBLEMA

• Grado de aceptabilidad de los usuarios

b) Indices Los índices de aceptación en las variables dependientes son:

• Un grado de aceptación mayor al 70% de los resultados.

1.7 Viabilidad de la Investigación

Esta sección da a conocer los diferentes aspectos que disponen el éxito o fracaso del proyecto de
investigación. La viabilidad del proyecto está dada desde tres niveles: técnico, operativo y económico.

1.7.1 Viabilidad Técnica

En el nivel técnico, existen diversas técnicas y algoritmos para el procesamiento de texto (opiniones),
extracción de características y clasificación de texto; para los cuales existen diferentes librerías en
diferentes lenguajes de programación que implementan estos algoritmos como nltk, treetagger,
sklearn, WEKA, Stanford CoreNLP, etc. Por otro lado, se cuenta con diferentes fuentes de opiniones
1 2
de usuarios en servicios Web como: ProgrammableWeb , G2Crowd , entre otros.

1.7.2 Viabilidad Operativa

En el nivel operativo, se cuenta con el apoyo de la asesora de tesis, la profesora Eveling Castro
3
Gutierrez , Docente Investigadora de la UNSA. Por otro lado, también se cuenta con el apoyo del co-
4
asesor, el profesor Chouki Tibermacine , doctor en ciencia de la computación y docente en la
Universidad de Montpellier, Francia, investigador en el Laboratoire d’Informatique, de Robotique et de
5
Microélectronique de Montpellier (LIRMM) .

El desarrollo de este proyecto tiene previsto seguir un deserrallo incremental, iniciando con un análisis
del estado de arte del area de investigación. Posteriormente, presentar una propuesta basados en los
trabajos existentes. Finalmente, realizar una comparación de los resultados obtenidos.

1.7.3 Viabilidad Económica

En el nivel económico, este proyecto de investigación se encuentra financiado por la Universidad


Nacional de San Agustín de Arequipa, según contrato N° EO53-2016-02-UNSA.
1
http://www.programmableweb.com/apis/directory
2
https://www.g2crowd.com/
3https://dina.concytec.gob.pe/appDirectorioCTI/VerDatosInvestigador.do?id _investigador=
11018
4
http://www.lirmm.fr/~tibermacin/
5
http://www.lirmm.fr/

5
CAPITULO 1. PLANTEAMIENTO DEL PROBLEMA

Entre los costos asociados en este proyecto tenemos costos en materiales e insumos, servicios
tecnológicos, pasajes y viáticos y otros gastos. Estos costos suman un total de 11,955.00 soles, los
cuales se encuentran detallados en la Tabla 1.1.

Table 1.1: Calculo del valor de reputación de servicios (elaboración propia)

Descripcion Precio
Libro “Introduction to Information Retrieval” 230.00
Libro “Natural Language Processing with Python” 217.00
Libro “Foundations of Statistical Natural Language Processing” 346.50
Libro “Machine Learning” 420.00
Repositorio de código fuente 367.50
Maquina virtual 800.00
Presentación de articulo pasajes y veático 4 400.00
Suscripción bibliotecas digitales 574.00
Inscripción en conferencia internacional 2 600.00
Sustentación, publicación y obtención de titulo profesional 1 000.00
Utiles de oficina, copias e impresiones 200.00
Material necesario para presentación de avances 500.00
Impresión y empaste de tesis e borradores 300.00
Total 11 955.00

Por otro lado, desde que este proyecto tiene propósitos de investigación y no es considerado un
proyecto de inversión económica, este proyecto espera ampliar el conocimiento en el área de estudio
(mineración de textos y servicios Web), así también incrementar el reconocimiento nacional e
internacional de la Universidad Nacional de San Agustín de Arequipa. Sin embargo, también
esperamos obtener beneficios sociales con la platafor para la ciudadanía en aspectos de tiempo,
gastos, accesibilidad y disponibilidad. Si hoy se invierten días o meses en identificar el servicio Web
más adecuado y de mejor calidad para un requisito en específico, con este proyecto se pretende
reducir ese tiempo a minutos para comparar diferentes servicios Web. Asimismo, los gastos
monetarios incurridos hoy en buscar el servicio Web adecuado (pago por uso de los servicios para
realizar pruebas, o pago a terceros para realizar evaluaciones en los servicio), con este proyecto estos
gatos serán reducidos y/o eliminados. El servicio ofrecido por este proyecto será de libre acceso y
disponible para todos, lo cual beneficia a cualquier tipo de usuario.

1.8 Justificación e Importancia de la Investigación

En esta sección daremos a conocer los motivos que justifican la ejecución de este proyecto de
investigación y su importancia académica y social.

1.8.1 Justificación

Desde que los servicios Web crecen en un 130% cada año [12, 13], usuarios se encuentran con
amplios repositorios de servicios Web donde muchos de ellos pueden realizan

6
CAPITULO 1. PLANTEAMIENTO DEL PROBLEMA

funcionalidades similares. Por ejemplo: almacenamiento en la nube tales como Google Drive,
Dropbox, Box, SugarSync, SkyDrive, etc. Usuarios que ya tuvieron experiencias con estos servicios,
suelen publicar sus opiniones, experiencias y evaluaciones en sitios Web públicos, por ejemplo
ProgrammableWeb y G2Crowd. Estas opiniones proporcionan información valiosa sobre aspectos de
calidad del servicio para usuarios nuevos. Sin embargo, estos usuarios invierten horas, días o
semanas leyendo todas las opiniones posibles para encontrar los aspectos positivos y negativos de
cada servicio. Esta tarea se convierte en ardua y tediosa.

Por lo tanto, la falta de un sistema de consulta para la evaluación de la calidad de servicios Web
basados en la experiencia (opiniones) de otros usuarios es realmente necesaria para optimizar este
proceso de selección. Este sistema ayudaría a usuarios durante la búsqueda y selección de servicios
Web, permitiendo comparar servicios que proveen funcionalidades similares según sus niveles de
calidad.

1.8.2 Importancia

La importancia de esta investigación está enfocada en dos principales sectores, académico y social.
En el sector académico, la evaluación de la calidad de servicios a través de la experiencia de sus
usuarios servirá como información complementaria en los actuales algoritmos de selección de
servicios Web durante la composición de servicios dinámicos. Un modelo de evaluación de calidad de
servicios por atributos de calidad de experiencia será propuesto en las áreas de Servicios Web y
Mineración de Opiniones fortaleciendo la relación entre estas áreas y despertando nuevo intereses de
investigación. En el sector social, un sistema de consulta de calidad de servicios Web disponible para
un grupo de potenciales usuarios. Futuros usuarios de servicios como empresas y personas
involucradas en el desarrollo de aplicaciones basadas en servicios serán beneficiadas al contar con
una herramienta que ayudará en la toma de decisiones al momento de seleccionar un servicio Web
para sus necesidades.

1.9 Limitaciones de la Investigación

Entre las limitaciones de este proyecto de investigación tenemos:

• Cantidad insuficiente de opiniones de usuarios sobre Servicios Web.

• Opiniones de servicios Web no etiquetados para el entrenamiento de los algoritmos de


aprendizaje de máquina.

1.10 Tipo y Nivel de la Investigación

En esta sección presentamos el tipo y nivel de investigación del proyecto.

7
CAPITULO 1. PLANTEAMIENTO DEL PROBLEMA

1.10.1 Tipo de Investigación

El presente proyectos es una investigación de tipo aplicativa.

1.10.2 Nivel de Investigación

El nivel de la investigación es experimental.

1.11 Método y Diseño de la Investigación

Esta sección describe el método y diseño a seguir durante la ejecución del proyecto de investigación.

1.11.1 Método de la Investigación

El método de investigación a ser utilizado en este proyecto es el método científico. El método científico
es una serie de procedimientos ordenados que se usa en investigación científica, y que está basado
en la observación de fenómenos u objetos de forma ocasional o causalmente. Posteriormente extraer
características de las observaciones y poder formular una hipótesis. Subsecuentemente,
experimentos son ejecutados para aceptar o refutar la hipótesis. Finalmente dar a conocer las
conclusiones de la investigación.

1.11.2 Diseño de la Investigación

El plan a seguir durante la ejecución del proyecto de investigación están basados en seis etapas
importantes:

a) Recolección de datos: a través de la técnica de scrapping, se recolectará opiniones de


usuarios de servicios Web publicados en los diferentes directorios de servicios Web.

b) Extracción de características: usando diferentes técnicas de procesamiento de lenguaje


natural se extraerán diferentes características de las opiniones.

c) Análisis subjetivo: haciendo uso de algoritmos de aprendizaje de máquina, se clasificará las


opniones objetivas y subjetivas.

d) Análisis sentimental: se clasificará las opiniones subjetivas entre positivas o negativas.

e) Reputación de servicios: se calculará la reputación de cada servicio basado en sus


opiniones positivas y negativas.

f) Plataforma de consulta: se desarrollará una plataforma de consulta al público, que integrará


todo los pasos anteriores en un solo sistema.

8
CAPITULO 1. PLANTEAMIENTO DEL PROBLEMA

1.12 Técnicas e Instrumentos de Recolección de la


Información
El presente proyecto de investigación hará uso de las siguientes técnicas e instrumentos de
recolección de información:

1.12.1 Técnicas

Se ejecutarán las siguientes técnicas:

• Análisis documental: este análisis mostrará las diferentes técnicas y enfoques que existen en
el área de mineración de comentarios y calidad de servicios Web.

• Observación experimental: se recogerán datos de los usuarios en condiciones controladas para


validar los resultados obtenidos. Los resultados obtenidos a través del proceso experimental de
este proyecto, será validado con datos recolectados de usuarios reales para ser comparados
con los resultados de este proyecto.

1.12.2 Instrumentos

Los instrumentos a ser usados de acuerdo a las técnicas de recolección de información son:

• Revisión bibliográfica: para la realización de un análisis documental del estado del arte del
problema y las soluciones existentes.

• Ficha de registro de datos: esta registrará los resultados obtenidos durante la ejecución de los
experimentos en el proyecto.

1.13 Observaciones Finales

Este capítulo detalló el contexto del problema, y los desafíos en este proyecto de investigación, como:
calcular la reputación de los servicios Web a través de comentarios de usuarios. Al mismo tiempo, se
definió las delimitaciones y alcance del problema, así como la hipótesis y objetivo en el presente
proyecto. También se dio a conocer las limitaciones del proyecto y los métodos a ser usados. En el
siguiente capítulo, se definirán los principales conceptos abordados en este proyectos.

9
Capitulo
2
MARCO TEÓRICO

E ste capítulo define los conceptos fundamentales sobre servicios Web, calidad de servicios y reputación de servicios Web.
Así también, da a conocer las diferentes soluciones existentes en la literatura sobre la evaluación de la reputación y calidad
de servicios Web.

2.1 Marco Conceptual

Conceptos como arquitectura orientada a servicios, servicios Web, calidad de servicio, calidad de
experiencia y reputación de servicios Web serán abordados a continuación.

2.1.1 Arquitectura Orientada a Servicios

Arquitectura Orientada a Servicios o del inglés Service-Oriented Architecture (SOA) es un modelo de


arquitectura ampliamente usado en aplicaciones distribuidas, los cuales usan servicios como la unidad
funcional primaria. La interacción entre usuarios y servicios es realizada a través de interfaces
estandarizadas y bien definidas [14]. Las aplicaciones SOA son conocidas por ser dinámicas,
heterogéneas, distribuidas y autónomas.

La implementación de SOA técnicamente consiste de una combinación de tecnologías que proveen


una eficiente comunicación. Los servicios llegan a ser publicables y descubribles.

En un ambiente SOA existen 3 actores principales: el proveedor del servicio, el consumidor del
servicio y el agente de servicio (del inglés, service broker) [15, 16], como se muestra en la Figura 2.1.

10
CAPITULO 2. MARCO TEÓRICO

SERVICE BROKER
(UDDI)

(WSDL)FIND
PUBLISH(WSDL)

BIND
SERVICE PROVIDER (SOAP) SERVICE CONSUMER

Figure 2.1: Arquitectura SOA [1, 2]

1. El proveedor del servicio es quien diseña el sistema de software para ser usado por
usuarios finales a través de la red y una interface publicable (WSDL) [2].

2. El agente de servicio es un parte confiable que obliga al proveedor de servicios a cumplir


ciertas normas de seguridad y privacidad para asegurar una verdadera relación entre los
proveedores y consumidores [17, 18]. El agente de servicios mantiene una lista indexada de
servicios disponibles (WSDL) con información adicional del servicio incluyendo información de
integración, calidad de servicio (QoS), acuerdo de nivel de servicio (SLA, Service Level
Agreement) y posibles tasas de compensación.

3. El consumidor de servicio son en su mayoría organizaciones, personas, sistemas y servicios,


que interactúan con los servicios. Ellos no necesitan preocuparse con la implementación de
servicio, mientras este ofrezca la funcionalidad requerida y provea la calidad de servicio
deseada [2, 17].

2.1.2 Servicio Web

El objetivo principal de SOA es representar una unidad de negocio reusable y esto es posible a través
de servicio. Papazoglou y Heuvel [16] definen un servicio como una pieza de funcionalidad publica
con tres (3) propiedades principales: 1) Servicios son auto-contenidos, ellos controlan su propio
estado. 2) Ellos son independientes de plataforma, esto significa que las interfaces no están limitadas
al tipo de plataforma en el lado del proveedor como en el consumidor. 3) Servicios en SOA pueden
ser dinámicamente localizados, invocados y combinados.

Servicio Web han llegado a ser la tecnología de implementación preferida para SOA, prometiendo la
máxima participación, reutilización e interoperabilidad del servicio. El World Wide Web Consortium
(W3C) define un servicio Web como [19]:

“A Web service is a software system identified by a URI [RFC 2396], whose public
interfaces and bindings are defined and described using XML. Its definition can be
discovered by other software systems. These systems may then interact

11
CAPITULO 2. MARCO TEÓRICO

with the Web service in a manner prescribed by its definition, using XML based messages
conveyed by Internet protocols”.

“Un servicio Web es un sistema de software identificado por una URI [RFC 2396], cuyas
interfaces y enlaces públicos son definidos y descritos usando XML. Su definición puede
ser descubierta por otros sistemas de software. Estos sistemas pueden interactuar con
el servicio Web en una manera pre-escrita por su definición, usando mensajes basados
en XML enviados a través de protocolos de Internet”.

Servicio Web son caracterizados por usar tecnologías Web específicas como Identificador de
Recursos Uniforme (del inglés, Uniform Resource Identifier, URI) para proveer una identificación
uniforme, protocoles de internet para comunicación, y XML para definir interfaces y representar el
intercambio de mensajes. El proveedor del servicio define una interfaz del servicio usando WSDL (del
inglés, Web Services Description Language), luego este es publicado en un agente de servicio
(service broker) usando un registro UDDI (Universal Description, Discovery, and Integration), de esta
forma el servicio es disponible y descubrible para potenciales usuarios. Un consumidor de servicio
pregunta al agente de servicios por un servicio en particular, el cual responde retornando la interface
WSDL del servicio. Finalmente el consumidor invoca al servicio a través de SOAP (Simple Object
Access Protocol ) [15].

2.1.3 Calidad de Servicio

La Calidad de Servicio (QoS) es definida para expresar características no funcionales de un sistema,


en muchos de los casos está relacionado a la red, pero este también implica a servidores, bases de
datos, aplicaciones y sistemas distribuidos [20]. El ISO 8402 define calidad como “Todas las
características de un producto o servicio que puedan satisfacer las necesidades establecidas o
implícitas”. En servicios Web, Calidad de servicio es definido como un conjunto de características no
funcionales que pueden impactar en la calidad del servicio Web. Oriol et al. [1] presentó una relación
jerárquica explicita entre diferentes conceptos en calidad de servicios (Figura 2.2).

12
CAPITULO 2. MARCO TEÓRICO

Set of Quality Characteristics of a Service


QoS

Quality Group of Quality Attributes


Characteristics

Feature of the Service that affects


Quality Attributes Quality

Quality Metrics Quantitative Measurements


of Quality Attributes

Figure 2.2: Jerarquía de los conceptos de calidad [1].

a) Calidad de Servicio. La calidad de servicio es conformada por un conjunto de características


de calidad de un servicio.

b) Características de Calidad. Las características de calidad o también llamados factores de


calidad son propiedades que no proveen medidas cuantitativas o cualitativas. Ellos son
propiedades de calidad de alto nivel que representan atributos de calidad genéricos para un
servicio Web [1]. Las características de calidad necesitan se descompuestos en conceptos más
específicos llamados atributos de calidad. Ejemplos de características de calidad son
rendimiento, confianza (del inglés, Dependability) y seguridad.

c) Atributos de Calidad. Los atributos de calidad son propiedades que afectan directamente a la
calidad del producto o servicio, y como consecuencia varia la experiencia de los usuarios [21].
Los atributos de calidad pueden ser medidos cuantitativamente o cualitativamente, y estos son
focos de preocupación en proveedores de servicios por que pueden producir impactos negativos
en los productos y/o servicios. Algunos ejemplos de atributos de calidad son: acuracia, tiempo
de respuesta, disponibilidad e integridad.

d) Métricas de Calidad. El ISO 24765 [22] define métricas de calidad como “una grado cuantitativo
que un artículo posee dado un atributo de calidad” (en inglés: “a quantitative measurement of
the degree to which an item possess a given quality attribute”). Un atributo de calidad puede ser
medido diferentes métricas, esta va a depender de los intereses de los usuarios. Por ejemplo:
la disponibilidad puede ser medida a través de la ‘disponibilidad promedio’, ’tiempo indisponible
al año’, ’tiempo promedio entre fallas’.

2.1.4 Calidad de Experiencia

Mientras que Calidad de Servicio (QoS) refiere a propiedades no funcionales de los servicios Web.
Calidad de Experiencia (QoE) es una medida subjetiva que refleja la experiencia del usuario con un
servicio [11]. Esta experiencia de los usuarios es comúnmente

13
CAPITULO 2. MARCO TEÓRICO

encontrada en comentarios de los mismos publicados en diversos sitios Web, tales como:
1 2
ProgrammableWeb y G2Crowd . Desde que comentarios de usuarios provienen de un número
grande de usuarios que usan diversas plataformas desde diferentes localizaciones, QoE llega a ser
una fuente confiable de información.

Atributos de Calidad de Experiencia. Un usuario es capaz de brindar su opinión sobre


cualquier aspecto de un servicio Web. Por ejemplo: costo, velocidad, disponibilidad, facilidad de
uso, etc. Cada aspecto de un servicio es llamado de Atributo de Calidad de Experiencia [10]. A
diferencia de los Atributos de Calidad, los Atributos de Calidad de Experiencia reflejan la calidad
del servicio desde el punto de vista del usuario.

2.1.5 Reputación de Servicio Web

Servicios Web son evaluados a través del grado de confianza y reputación que estos puedan tener.
Donde, de acuerdo a la Real Academia Española (RAE), reputación es definida como: “Opinión o
consideración en que se tiene a alguien o algo”. Esta definición puede ser interpretada como una
medida de confiabilidad hacia un servicio, inferida a través de comentarios y/o calificaciones dadas por
miembros de una comunidad [23].

2.1.6 Métricas

1. Validación Cruzada de K-iteraciones: La validación cruzada es usado para estimar la


precisión de un estimador, tales como algoritmos de predicción (clasificadores)
[24]. Este enfoque de validación se basa en dividir aleatoriamente la base de datos, D, en k
grupos de igual tamaño, D1, D2, .., Dk. Donde D1 es usado como datos de prueba y el algoritmo
es entrenado con los k-1 grupos restantes, posteriormente el error
es calculado. Este procedimiento es ejecutado en k iteraciones, donde los datos de prueba son
D2, luego D3, hasta Dk. El error final es posteriormente calculado como el promedio de los
errores en cada iteración.

X
Error Æ 1 errori (2.1)
2. Precisión y Recall: Dos de las métricas más básicas y frecuentemente usadas para medir la
efectividad de métodos de recuperación de información clasificada son precisión y recall. Estas
métricas están basadas en el conjunto de documentos recuperados en un caso de prueba [25].

• Precisión: es la fracción de documentos recuperados que son relevantes.

(#documentos_rel evantes_recu perados)


Precisión Æ (#documentos_recu perados) (2.2)
1
http://www.programmableweb.com/apis/directory
2
https://www.g2crowd.com/

14
CAPITULO 2. MARCO TEÓRICO

• Recall: es la fracción de documentos relevantes recuperados.

(#documentos_rel evantes_recu perados)


Recall Æ (#documentos_rel evantes) (2.3)

3. F-Measure: Esta métrica es usada para combinar las dos métricas anteriores, precisión y recall.
Básicamente, F-Measure calcula el promedio armónico entre
la precisión y el recall.
precision £ recall
FÆ2£ (2.4)
precision Å recall

2.2 Estado del Arte

Esta sección presenta los diferentes trabajas de investigación en la literatura que buscan realizar una
evaluación en la reputación de servicios Web para poder realizar de forma automática la selección de
servicios. Diferentes enfoques han sido tomados para lograr este objetivo, a continuación mostraremos
importantes trabajos desde diferentes enfoques.

2.2.1 Modelos Basados en Estadística

Modelos Estadísticos [26] son modelos matemáticos que a través de un conjunto de distribuciones de
probabilidad llega a inferir y/o aproximar un conjunto de datos. Estos modelos están basados en
ecuaciones matemáticas que incorporan variables aleatorias y no aleatorias. En servicios Web,
modelos estadísticos con usados para calcular la reputación de servicios Web, estos crean confianza
en los valores calculados debido que consideran múltiples fuentes de confianza y usan los modelos
estadísticos para combinarlos.

Por ejemplo: Nguyen et al. [27] propuso un modelo basado en Redes Bayesianas (BN, del inglés
Bayesian Network ) que combina información subjetiva y objetiva de la calidad de servicios Web desde
fuentes de confianza, tales como: ratings de usuarios (información subjetiva) e información de
monitoración de QoS (información objetiva). Nguyen definió tres métricas de confianza a partir de las
informaciones subjetivas y objetivas las cuales llamó: confianza directa (rating personal del servicio),
recomendación de confianza (ratings de otros usuarios) y confianza de conformidad (valores QoS).
Basando en estas tres métricas, un valor de confianza final es calculado a través de una suma
ponderada. Sin embargo, este modelo no representa completamente la calidad subjetiva de los
usuarios, debido que está basada en ratings (5 estrellas), los cuales no expresan con exactitud la
percepción del usuario, ya que los usuarios están limitados a escoger entre 5 valores que no detallan
su punto de vista.

Por otro lado Malik and Bouguettaya [28] propusieron una herramienta llamada RATEWeb, que es un
sistema de evaluación de la reputación de servicios Web basado en el Modelo de Oculto de Markóv
(HMM, del inglés Hidden Markov Model ). Este modelo calcula un valor de reputación basado en la
experiencia de los usuarios, específicamente de los ratings dejados por usuarios. Ratings fueron
dados para cada atributo QoS de acuerdo a las preferencias personales de los usuarios. Sin embargo
la desventaja de este modelo es que

15
CAPITULO 2. MARCO TEÓRICO

existe una limitación al usuario, de poder expresar su percepción de la calidad del servicio (limitado a
calificaciones de 1 a 5), por lo que usuarios no pueden proveer información adicional acerca de su
experiencia. Por otro lado HMM es una máquina de estados finita, y el número de estados depende
en el escenario, siendo necesario muchos experimentos para encontrar el número adecuado de
estados con el mejor resultado.

2.2.2 Modelos Basados en Lógica Difusa

Lógica Difusa [29] es un enfoque basado en aproximaciones en vez de valores exactos, es decir un
valor de confianza podría ser un valor real cualquiera entre 0 y 1. En servicios Web, este modelo es
usado para analizar la semántica detrás de comentarios de usuarios, con el fin de reconocer los
intereses de los usuarios y para detectar falsos ratings.
Por ejemplo, Sherchan et al. [29] propusieron un modelo basado en lógica difusa para validar los
ratings dados por usuarios, con el objetivo de detectar engaños y entender el fundamento de cada
rating para entender los intereses de los usuarios. Sherchan et al. combinaron la información subjetiva
representada por ratings de usuario e información objetiva representada por valores QoS obtenidos
por monitoración de servicios. Ratings son estimados usando lógica difusa a partir de los valores QoS
(objetivos), luego estos valores son comparados con los ratings de usuarios (subjetivo) y los ratings
que coinciden son declarados confiables.

Sin embargo, a pesar que los modelos basado en lógica difusa se basan en reglas y comparaciones,
estos no calculan un valor final de reputación que ayude a nuevos usuarios en la toma de decisión
durante la tarea de selección de servicios Web. Por otro lado, los valores QoS obtenidos, son medidos
en ambientes controlados, los cuales no cubren la variedad de escenarios en la actualidad, por
ejemplo, un usuario en un país lejano, con limitada conexión a internet usando un dispositivo móvil.

2.2.3 Modelos Basados en Mineración de Datos

Mineración de datos [30] es un campo multidisciplinar que incorpora elementos de campos como
inteligencia artificial, aprendizaje de máquina, visualización de datos y estadística. Mineración de datos
incluye tareas como detectar la relación entre diferentes variables, agrupar datos similares y resumir
información de una forma concisa.

Hoy en día, la mineración de datos está siendo ampliamente adoptada en muchos dominios como
medicina, ingeniería, ciencia, y negocios. Sin embargo, esta disciplina no ha sido muy bien explorada
en el domino de cálculo de confianza y reputación de servicio Web. Comentarios han llegado a ser
una fuente de información de confianza para mineración de datos, donde información generada por
usuarios quienes han tenido interacción pasada con un determinado servicio Web, provee información
subjetiva. Comentarios de usuarios, por lo general, expresan opiniones, sentimientos, evaluaciones,
apreciaciones, actitudes y emociones hacia un objetivo, servicio Web [30].

Por ejemplo, Upadhyaya et al. [11] tomo en consideración la definición de calidad de

16
CAPITULO 2. MARCO TEÓRICO

experiencia (QoE) y usó técnicas de mineración de textos para extraer atributos de QoE a su vez
evaluar la opinión relacionada a cada atributo. Upadhyaya et al. sostuvieron que los adjetivos y
adverbios representaban las opiniones y los sustantivos representaban los atributos. Luego de
recolectar un gran número de comentarios, extrajo pares de palabras consecutivas como: adjetivo +
adjetivo, adverbio + adjetivo o adjetivo + sustantivo, para relacionar las opiniones y los atributos. A
través de técnicas de aprendizaje de máquina (clusterización) agrupó los sustantivos similares para
representar un solo atributo QoE. Un análisis de sentimiento también fue aplicado sobre los adjetivos
usando SentiWordNet [31] para identificar la polaridad de cada opinión.

Sin embargo, las agrupaciones consideradas por Upadhyaya no cubrían otras estructuras
gramaticales como: “This service is good”, “I love it”, “It works fine” or “I am unable to signup” donde
verbos y adverbios toman un rol fundamental en la identificación de la polaridad de las opiniones. Por
otro lado, este trabajo no tiene explorado otras técnicas de aprendizaje de máquina que puedan
ayudar a mejorar el modelo propuesto.

2.2.4 Modelos Basados en Sistemas de Recomendación

Desde que el objetivo final en obtener una valor de reputación de un servicio Web es poder
recomendar a los usuarios el servicio con mejor calidad de servicio. Considerando este punto de vista,
modelos basados en algoritmos de recomendación para servicios Web han surgido en la literatura,
con el objetivo de brindar a los usuarios los servicios más adecuados para sus necesidades.

Kang et al. [32] propusieron un enfoque para recomendar servicios Web basado en los intereses
funcionales de los usuarios, preferencias en los atributos de calidad de servicio (QoS) y las
preferencias de otros usuarios. Luego construían un historial de las preferencias de los usuarios en
estos tres aspectos para encontrar los top-k servicios Web más similares a los requerimientos de
servicio de un nuevo usuario.

Por otro lado, Liu et al. [33] propuso un enfoque basado en filtros colaborativos (del inglés,
Collaborative Filtering). Esta técnica usa la localización de los usuarios y valores de QoS para
encontrar preferencias similares entre usuarios usando Collaborative Filtering.

Sin embargo, a pesar que estos enfoques se basan en recomendar servicios para los usuarios, estos
necesitan de un historial de preferencias de los usuarios para poder brindar una recomendación.
Además necesita de valores cuantitativos de calidad de servicio (QoS), los cuales pueden ser
obtenidos de forma estática (brindado por los proveedores de los servicios) o de forma dinámica
(usando monitores para extraer los valores). Aunque toda esta información es muy valiosa para
realizar una buena recomendación, que está basada por similitud de las preferencias de los usuarios
y no por la calidad que un nuevo usuario este buscando. Así mismo, los valores de calidad usados en
este enfoque no representan a la calidad que puede ser percibida por los usuarios.

17
CAPITULO 2. MARCO TEÓRICO

2.2.5 Modelos en Otros Dominios

La tarea de encontrar una reputación de un servicio a partir del punto de vista de los usuarios, ha sido
una tarea que no solamente se ha enfocado en servicios Web. En realidad, esta tarea se expande en
muchos otros dominio, tales como productos, candidatos políticos, aplicaciones, etc. Con el objetivo
de obtener indicadores necesarios para generar una evaluación desde la perspectiva de usuarios,
surgieron diversos trabajos en múltiples dominios.

Kale y Padmadas [34] extrajeron emociones de las personas a partir de tweets; ellos siguieron un
proceso que iba desde recolectar tweets, pre-procesamiento, extracción de características de los tweet
y un análisis de sentimiento. Sin embargo, Kale y Padmadas extrajeron apenas el Part-of-Speech de
los textos como característica y realizaron una clasificación de los tweets entre positivos y negativos.
Los resultados obtenidos fueron relativamente bajos, obteniendo 42.8 % en como precisión en tweets
positivos y 87.5 % en tweets negativos. Sin embargo, Kale y Padmadas apenas usaron un tipo de
característica de texto, y no exploraron otras características que podrían brindarles mejores
resultados.

Por otro lado, Dhar et al. [35] propusieron un modelo para minar tweets sobre productos, donde
empresas que ofrecen dichos productos están interesados por conocer más acerca de sus clientes y
realizar mejoras. Ellos siguen un modelo similar a Kale y Padmadas, extrayendo características de
texto, Part-of-Speech y aspectos, adjetivos y sustantivos respectivamente. El objetivo de extraer estos
dos tipos de palabras fue el de crear pares de aspecto-expresión, así asociar adjetivos que son las
palabras que expresan una calificación con respecto al objeto de la oración, en este caso los aspectos.
Posteriormente, Dha et al. usaron técnicas de Deep Learning, específicamente Convolutional Neural
Networks para clasificar los tweets entre positivos y negativos. Los resultados alcanzados obtuvieron
una acuracia de 74.66 %. Si bien este trabajo analizó los resultados de una de las técnicas de
aprendizaje de maquina más reciente, que son la redes neuronales convolucionales, los resultados
obtenidos no superaron los resultados obtenidos por Kale y Padmadas [34], y este podría ser debido
a que no exploraron nuevas características de texto.

Bandana [36] propuso un enfoque híbrido al usar dos técnicas para procesar comentarios de películas
(Movie Reviews), combinando un enfoque basado en algoritmos de aprendizaje de maquina con un
enfoque basado en lexicón (basado en conocimiento). Características como Part-of-Speech, TF-IDF
y Bag-of-Words fueron extraídos usando como base de conocimiento SentiWordNet, así usar estas
características en la clasificación de sentimientos de los comentarios usando Naive Bayes y Support
Vector Machine. Los resultados obtenidos en este trabajo fueron de 89 % de precisión usando Naive
Bayes y 85 % con Support Vector Machine. Si bien este trabajo usó diferentes características, estas
estuvieron fuertemente relacionadas a SentiWordNet, que a pesar de ser una herramienta con
abundante conocimiento (palabras), no llega a ser suficiente en diferentes dominios. Sin embargo, los
resultados (precisión y recall) fueron relativamente buenos en comparación con los trabajos ya
mencionados.

18
CAPITULO 2. MARCO TEÓRICO

El análisis de la aceptación de las personas respecto a un tópico, asunto, producto, servicio o


personaje, se ha maximizada en la última década, siendo aplicado en múltiples dominios. La política
es una de ella, Dorle y Pise [37] propusieron un modelo para evaluar la aceptación y/o reputación de
personas relacionadas con la política. Este modelo recolecta información de redes sociales como
Twitter y Facebook, con el objetivo de pre-procesarlos (eliminar caracteres especiales, stopwords,
mensajes publicitarios, elimina etiquetas HTML y URL, expandir abreviaciones), posteriormente
extraer características del texto. Dorle e Pise usaron Part-of-Speech como característica fundamental
de su modelos, para luego usar una red neuronal recurrente (RNN,Recurrent Neural Network ) en
combinación de LSTM (Long Short Term Memory. Los resultados obtenidos fueron de un 63 % de
opiniones positivas e 27 % negativas, concluyendo que las personas políticas poseen una mayor
aceptación de la población. Sin embargo, a pesar que Dorle y Pise usan una de las técnicas más
recientes en aprendizaje de máquina, redes neuronales recurrentes, este no logró buenos resultados,
ya que las características de texto fueron muy limitadas, usando solamente Part-of-Speech.

Alfarrarjeh et al. [38] propuso un modelo para detectar las impresiones de las personas ante un
desastre natural. Alfarrarjeh et al. desarrollo un modelos similar a los trabajo presentados
anteriormente, sin embargo, adicionó variables de espacio y tiempo, planteando una modelo geo-
espacial. La fuente de datos para este trabajo fueron Twitter y Flickr durante el huracán Sandy y el
terremoto en Napa. El modelo consistía de un análisis de sentimiento de las publicaciones de las
personas en Twitter y Flickr, usando un pre-procesamiento para eliminación de ruido en el texto
(stopwords, abreviaciones, emojis, caracteres especiales), para identificar la polaridad usó como
característica de texto Part-of-Speech para extraer los pares de palabras “adjetivo + sustantivo”, luego
usó algoritmos como Naive Bayes y Support Vector Machine. Finalmente, las publicaciones fueron
divididas geográficamente en grupos, que a su vez fueron ordenamos según su fecha de publicación.
Alfarrarjeh definió ventanas (rangos de tiempo) de un día, para medir la distribución temporal de los
sentimientos en las publicaciones, de esta forma agrupó los resultados obtenidos para visualizar las
reacciones de las personas durante estos desastres. El usó de informaciones adicionales que hoy en
día son fácilmente adquiridas, localización y tiempo, fue realmente una buena estrategia de Alfarrarjeh
et al., consiguiendo mapear las percepciones de las personas a través del tiempo y la localización. Sin
embargo, ellos tuvieron un nivel exploratorio escaso con referente a las características de texto y de
algoritmos de clasificación, ya que solamente hicieron uso de Part-of-Speech.

La extracción de la percepción de las personas referente a un tópico, ha llegado a expandirse muy


rápidamente en diferentes dominios como política, cine, productos, servicios, agricultura, etc. Sin
embargo, la mayoría de los trabajos usan como fuente de datos redes sociales como Twitter, Facebook
o Flickr, donde las publicaciones suelen informales y con mucho ruido (emojis, slang, abreviaciones,
errores de escritura, etc.) lo que dificulta la extracción de información. Por otro lado, las características
de texto usadas por estos trabajos es muy escasa, ya que, en su mayoría hacen uso solamente de
Part-of-Speech, dejando de lado otras características como Bag-of-Words, N-grams, Term Frequence
o TF-IDF (del inglés, Term Frequence - Inverse Document Frequence).

19
CAPITULO 2. MARCO TEÓRICO

No obstante, han sido usados diferentes algoritmos de aprendizaje de máquina, que han permitido
comparar diferentes resultados en cada dominio. Si bien, esta área ha ido creciendo muy
rápidamente, aún no ha llegado a un estado maduro [38].

2.3 Observaciones Finales

En este capítulo se definió los conceptos fundamentales usados en este trabajo de investigación que
permiten tener una mejor ideas sobre servicios, calidad de servicio y reputación de los mismos.
También fue presentada una vista general de los trabajos de investigación en reputación de servicios
Web existentes en la literatura. Se analizaron las ventajas y desventajas de los diferente modelos,
tales como basados en estadísticas, lógica difusa, mineración de datos, sistemas de recomendación,
así como también una vista general de trabajos similares en otros dominios. En el siguiente capítulo
daremos a conocer nuestro modelo de solución propuesto que está basada en la mineración de
comentarios de usuarios, siguiendo algunos procesos estándares en la extracción de información a
partir de texto.

20
Capitulo
3
Proceso de Evaluación de Servicios Web

E ste capítulo presenta la propuesta de este proyecto de investigación para calcular la reputación de
servicio Web y crear una plataforma de consulta. Esta propuesta está basada en el trabajo presentado por
Upadhyaya et al. [11] usó técnicas de aprendizaje no supervisado para identificar las polaridades de las
opiniones de usuarios. En esta propuesta, exploramos las técnicas de aprendizaje supervisado para identificar
la polaridad de las opiniones de usuarios. Además que se propone un primer filtro para la extracción de
información objetiva en los comentarios de los usuarios. Los pasos de esta
propuesta son mostrados en la Figura 3.1:

Figure 3.1: Pasos del proceso de evaluación de la caliadad de servicios Web basado en la
experiencia de los usuarios (elaboración propia).

Cada paso será detallado en las siguientes secciones.

3.1 Recolección de Comentarios

La recolección de comentarios refiere al proceso de obtener el número mayor de comentarios de


servicios Web. Estos comentarios pueden provenir de diferentes fuentes con el fin de capturar diversas
formas de expresar opiniones de usuarios. Por otro lado, partiendo de la asunción que un comentario
usualmente puede contener más de una opinión [30]. Por ejemplo, el comentario:

“Google Drive is the most ingenious tool that has been created since the internet!

21
CAPITULO 3. PROCESO DE EVALUACIÓN DE SERVICIOS WEB

However, it is a bit confusing to download/delete at times.”

Este comentario expresa dos opiniones al mismo tiempo, donde cada oración contiene al menos una
opinión. Por ese motivo, los comentarios recolectados serán divididos en oración para efectuar un
análisis a nivel de oraciones.

Por otro lado, desde que la propuesta de este proyecto de investigación es hacer uso de algoritmos
supervisados, los comentarios recolectados deberán ser etiquetados (previamente clasificados) con
el objetivo de entrenar los algoritmos de clasificación a ser usados.

3.2 Extracción de Características

El proceso de extracción de características obtiene las informaciones más relevantes y


representativas de las oraciones en cada comentario. Para este objetivo, existen diferentes técnicas
en el campo de extracción de características donde cada técnica se especializa en una determina
característica. Entre las técnicas más usadas, que han brindado resultados buenos en diferentes
problemas de mineración de textos son:

3.2.1 Bag of Words

Bag of Words (BoW) es una técnica para extraer características de textos, su enfoque es muy simple
y flexible. BoW está basado en el número de ocurrencias de las palabras en un documento para
formar un vectores de ocurrencia [39, 40], formando un vocabulario de palabras [41]. Es llamado “Bag”
debido que cualquier información sobre estructura del texto u orden de las palabras es descartado.
El objetivo es encontrar documentos similares basados en su contenido, y a través del contenido
poder aprender algo sobre el significado del texto. Por ejemplo, para las oraciones:

1) “MongoDB has been very useful and very easy to use”

2) “MongoDB is an incredible storage software”

3) “MongoDB does not support for large amount of requests”

Así, el BoW para estas tres oraciones seria:

[“MongoDB”, “has”, “been”, “is”, “does”, “not”, “very”, “and ”, “to”, “of ”, “an”, “for”, “use”, “useful ”,
“easy”, “incredible”, “storage”, “software”, “support”, “large”, “amount”, “requests”]

De esta forma vectores para cada oración basados en el BoW construído.

22
CAPITULO 3. PROCESO DE EVALUACIÓN DE SERVICIOS WEB

1) [1,1,1,0,0,0,2,1,1,0,0,0,1,0,1,0,0,0,0,0,0,0]

2) [1,0,0,1,0,0,0,0,0,0,1,0,0,0,0,1,1,1,0,0,0,0]

3) [1,0,0,0,1,1,0,0,0,1,0,1,0,0,0,0,0,0,1,1,1,1]

3.2.2 N-grams

Esta técnica surge como un enfoque más sofisticado al BoW, creando un vocabulario de grupo de
palabras, permitiendo así extraer un poco más de significado del texto [40]. En este enfoque cada
grupo de palabras (token) es llamado de “grama” (del inglés, gram). Así un N-gram es una secuencia
de N palabras consecutivas, secuencias de dos palabras son llamadas “Bigrams”, secuencias de tres
palabra son llamadas “Trigrams”. Para nuestro ejemplo anterior (Subsección 3.2.1) el nuevo
vocabulario seria:

[“MongoDB has”, “has been”, “been very”, “very useful ”, “useful and ”, “and very”, “very easy”,
“easy to”, “to use”, “MongoDB is”, “is an”, “an incredible”, ...]

Nuevos vectores de características son creados para cada oración usando este vocabulario de
gramas.

3.2.3 Part of Speech

Part of Speech (PoS) es una técnica que asigna etiquetas a cada palabra de acuerdo a su rol
gramatical dentro de la oración (sustantivo, adjetivo, adverbio, verbo, etc.) [40]. Actualmente, las
1
etiquetas siguen un estándar definido por el proyecto Penn Treebank de la Universidad de
Pensilvania. El objetivo de esta técnica es diferenciar a las palabras según su rol, ya que palabras con
diferentes etiquetas gramaticales pueden ser tratados de forma diferente. En esta técnica es común
eliminar los signos de puntuación (punto, punto y coma, guion, etc.), así también stopwords, los cuales
son un conjunto de las palabras comunes tales como: artículos, preposiciones, conjunciones, y
pronombres, las cuales no agregan valor diferencial entre las oraciones. Por ejemplo, nuestras
2
oraciones anteriores pueden ser lematizada , eliminado stopwords y signos de puntuación, y
etiquetada de la siguiente forma:

1 { MongoDB/NN very/RB useful/JJ easy/JJ use/VB }


2 { MongoDB/NN incredible/JJ storage/NN software/NN }
3 { MongoDB/NN not/RB support/VB large/JJ amount/NN request/NN }

1 _ _
https://www.ling.upenn.edu/courses/Fall 2003/ling001/penn treebank pos.html
_
2
Proceso que analiza la morfología de la palabra para convertirla en su representación base, singular e irregular

23
CAPITULO 3. PROCESO DE EVALUACIÓN DE SERVICIOS WEB

Donde las palabras “MongoDB”, “storage”, “software”, “amount” y “request” son etiquetadas como
sustantivos, “use” y “support” son etiquetadas como verbos, “very” y “not” como advervios, y “useful ”,
“easy”, “incredible”, “large” como adjetivos.

3.2.4 TF-IDF

TF-IDF es una técnica de recuperación de información que significa Frecuencia de Término (TF) y
Frecuencia Inversa de Documento (IDF) (del inglés, Term Frequency - Inverse Document Frequency)
esta técnica asigna un peso (valor numérico) a cada palabra de un documento que representa la
importancia de esa palabra en el documento [25, 39].

EL TF-IDF es el producto de dos medidas estadísticas de cada palabra: la frecuencia de término


(palabra) y la frecuencia inversa de documento.

• Frecuencia de Término (TF): el TF de una palabra es la frecuencia, número de veces que


aparece, en un documento.
(número de veces que el término t aparece en el documento d )
TF(t, d) Æ (número de terminos en el documento d ) (3.1)

• Frecuencia Inversa de Documento (IDF): el IDF de una palabra mide cuan significante es esa
palabra entre todos los documentos.
(número total de documentos)
IDF(t) Æ ln( (número de documento que contienen el término t) ) (3.2)

De esta forma, al multiplicar estos dos valores obtenemos el TF-IDF de cada palabra. Mientras más
alto sea el valor del TF-IDF, más raro es la palabra y mientras más bajo se el valor del TF-IDF, más
común es la palabra. Finalmente un vector característica es construido con los valores TF-IDF de cada
palabra.

3.3 Análisis de Subjetividad

En este modelo propuesto para evaluar la reputación de servicios Web a partir de comentarios de
usuarios, nos encontramos en el proceso de identificar la subjetividad de los comentarios.
Subjetividad significa reconocer si una determinada oración expresa una opinión del usuario o no,
siendo por ello que este proceso se basa en una clasificación de oraciones con opinión (subjetivas) y
sin opinión (objetivas).

Oraciones subjetivas: u oraciones con opinión, son las oraciones que expresan un sentimiento
positivo o negativo que proviene de la mente de una persona [42], oraciones subjetivas será
ampliado en la Sección 3.4.

Oraciones objetivas: u oraciones sin opinión, son oraciones que expresan hecho, descripciones
o informaciones [30], por lo tanto, no presentan un sentimiento positivo o negativo.

24
CAPITULO 3. PROCESO DE EVALUACIÓN DE SERVICIOS WEB

Por ejemplo, las oraciones:

“Google Drive is a file storage and synchronization service developed by Google.”

“Google Drive is the most ingenious tool that has been created since the internet!”

Mientras que la primera oración es completamente informativa, donde define y describe que es
Google Drive, la segunda oración expresa el sentimiento del usuario al calificar al servicio como “the
most ingenious tool ”. Por lo tanto, la primera oración seria clasificada como una oraciones objetiva y
la segunda como una oración subjetiva

Este proceso se enfoca en identificar oraciones las cuales expresan sentimientos u opiniones de los
usuarios acerca de su percepción de la calidad de los servicios Web. Este proceso parte a partir de
las características de texto extraídas del proceso anterior y separa las oraciones en dos clases,
oraciones objetivas y oraciones subjetivas. El objetivo de este proceso es de eliminar las oraciones
objetivas y quedarnos con las oraciones subjetivas, es decir, seleccionar las oraciones que contienen
un sentir de los usuarios.

Para este proceso serán usados diferentes algoritmos de aprendizaje supervisado para clasificación
de texto, los cuales siguen diferentes enfoques tal como: Naive Bayes, Support Vector Machine y
Maximun Entropy [30].

3.3.1 Naive Bayes

Naive Bayes es uno de los clasificadores de aprendizaje de máquina más simple, eficiente y muy
usado en clasificación de texto. Naive Bayes es un clasificador probabilístico que clasifica usando una
regla de decisión Máximo A Posteriori en un modelo Bayesiano [43]. El objetivo de este clasificador
probabilístico es, dado un conjunto de palabras x Æ {x 1, x2, ..., xn}
y un conjunto de clases y Æ {y1, y2, ..., ym}, determinar la probabilidades de que las palabras
pertenezcan a cada clase, P(yijx). Para ese fin, Naive Bayes se base en la Regla de Bayes [43]:

P(y)P(xjy)
P(yjx) Æ P(x) (3.3)
Esta regla se basa en calcular la probabilidad de que las palabras {x 1, x2, ..., xn} pertenecen a la clase
yi dado que ya existieron casos donde esas palabra pertenecieron a dicha clase. Sin embargo, esta
regla solo sucede cuando P(x) È 0, es decir, que no es posible calcular dicha probabilidad si no
existieron casos previos [43].

Así también, Naive Bayes se basa en la asunción de independencia condicional, es decir, la presencia
o ausencia de una palabra en un documento es independiente de la presencia o ausencia de cualquier
otra palabra [24, 25].

25
CAPITULO 3. PROCESO DE EVALUACIÓN DE SERVICIOS WEB

3.3.2 Support Vector Machine

Support Vector Machine es un método de aprendizaje de maquina basado en espacio de vectores,


donde el objetivo es encontrar el límite de decisión entre dos clases, también llamado hiperplano [3,
24, 25]. Desde que para una clasificación de dos clases, pueden existir varios hiperplanos consiguen
separar ambas clases, tal como la Figura 3.2

Figure 3.2: Multiples limites de decisión en clasificación de dos clases [3]

SVM busca un hiperplano que maximice la distancia entre los puntos de ambas clases. La distancia
de este hiperplano y los puntos más cercanos a este, determinan el margen del clasificador. Esto
quiere decir, que la función de decisión para el SVM está especificado por un subconjunto de datos,
que definen la posición del hiperplano de separación. Estos datos son llamados vectores de soporte.
La Figura 3.3 muestra el margen y los vectores de soporte.

Figure 3.3: Representación gráfica del algoritmo Support Vector Machine [3]

26
CAPITULO 3. PROCESO DE EVALUACIÓN DE SERVICIOS WEB

3.3.3 Maximum Entropy

Maximum Entropy es un clasificador de aprendizaje de máquina, es un clasificador probabilístico que


a lo contrario a Naive Bayes, este algoritmo no asume que las características son independientes uno
de otro. Este clasificador está basado en el principio de Máxima Entropía, que declara que la
distribución probabilística que mejor representa al estado actual de los datos es el de mayor entropía
[24].

Entropía es definida como la medida del grado de homogeneidad de los datos, así la entropía máxima
seria el mayor grado de homogeneidad de los datos en una distribución probabilística [44]. Así la
entropía de la distribución p(y) es:

X
H(p) Æ ¡ i Æ0 p(yi) log2 p(yi) (3.4)
Donde y es el conjunto de clases {y1, y2, ..., ym}, p(yi) es la proporción del número de elementos que
pertenecen a la clase yi al número total de elementos.

3.4 Análisis de Sentimiento

Análisis de Sentimiento es considerado como un campo de estudio que analiza las opiniones,
sentimientos, apreciaciones, actitudes, y emociones de las personas hacia entidades o sus atributos
[42]. Estas entidades pueden ser productos, servicios, organizaciones, eventos, personas o tópicos.
El análisis de sentimiento se enfoca principalmente en opiniones que expresan o implican sentimientos
positivos o negativos. Por ejemplo, del comentario mostrado en la Sección 3.1, la oración “Google
Drive is the most ingenious tool that has been created since the internet!”, expresa una opinión positiva
con respecto a Google Drive, mientras que la oración “However, it is a bit confusing to download/delete
at times” expresa una opinión negativa sobre el mismo servicio. Este tipo de oraciones que expresan
sentimientos u opiniones por lo general son oraciones subjetivas, contrarias a las oraciones objetivas
las cuales declaran o describen hechos.

Desde que el análisis de sentimiento se centra en las opiniones que expresan sentimientos positivos
o negativos, es necesario entender que significa una opinión.

Opinión es un concepto amplio que representa sentimiento, evaluación, apreciación o actitud,


asociado hacia un objeto de opinión ( opinion target), y expresada por una persona ( opinion
holder) [42].

El objeto de opinión es la entidad o una parte o atributo de la entidad al cual es expresado un


sentimiento. En nuestro ejemplo anterior, el objeto de opinión seria “Google Drive” y algunos atributos
de este podrían ser “download ” y “delete”. Por otro lado, la persona que mantiene la opinión es quién
experimento un determinado sentimiento durante su

27
CAPITULO 3. PROCESO DE EVALUACIÓN DE SERVICIOS WEB

experiencia o interacción con el objeto de opinión. Finalmente, el sentimiento es el sentir, la actitud, la


evaluación o la emoción subyacente asociado con una opinión que puede tener dos orientaciones o
polaridades, positivas o negativas.

Por lo tanto, este proceso se centra en identificar el sentimiento asociado en cada opinión de las
oraciones subjetivas identificadas en el proceso anterior. Así mismo, identificar la polaridad de los
sentimientos en las opiniones de los usuarios. Similar al proceso de análisis de subjetividad, este
proceso toma las características de texto extraídas de las oraciones y a partir de ellas clasifica las
oraciones con opinión positiva y con opinión negativa [42]. Desde que el análisis de sentimiento es un
proceso de clasificación de texto entre positivos y negativos, diferentes algoritmos de aprendizaje
supervisado ya existentes pueden ser usados. Algunos de los algoritmos usados con frecuencia en
análisis de sentimiento y que proporcionaron mejores resultados en diferentes dominios han sido
Naive Bayes, Support Vector Machine y Maximum Entropy [42].

3.5 Reputación de servicios

En este proceso se calcula un valor simple para cada servicio Web, valor de reputación, a partir del
número de opiniones positivas y negativas identificados anteriormente. Sin embargo, para el cálculo
del valor de reputación, no es posible aplicar una substracción simple entre el número de opiniones
positivas y negativas, ya que no se obtendrá un valor representativo para cada servicio Web. Por otro
lado, un promedio simple del número de opiniones positivas sobre el número total de opiniones del
servicio, tampoco muestra un valor representativo de la reputación de los servicios Web debido a que
este valor no es proporcional al número total de opiniones que el servicio posee. Sin embargo, el
Promedio Bayesiano (del inglés, Bayesian Average Algorithm) calcula un valor de reputación más
balanceado de acuerdo al número opiniones positivas que el servicio posee y al número total de
opiniones del mismo. El Promedio Bayesiano está basado en la siguiente formula:

NR Å ni ri

re putacion Æ
i N Å ni (3.5)
Donde re putacioni es el valor de reputación calculado para el servicio Web i, N es el número total de
opiniones, R representa el promedio total de opiniones positivas. n i es el número total de opiniones
para el servicio Web i, y ri representa el promedio de opiniones positivas para el servicio Web i. El
Cuadro 3.1 muestra un ejemplo con las diferentes formas de cálculo del valor de reputación para tres
servicios con diferentes cantidades de opiniones positivas y negativas.

28
CAPITULO 3. PROCESO DE EVALUACIÓN DE SERVICIOS WEB

Table 3.1: Calculo del valor de reputación de servicios (elaboración propia)

Servicio Servicio Servicio


A B C
Op. Positivas 5 13 11
Op. Negativas 0 8 0
Substracción Simple 5 5 11
Promedio 1 0,619 1
Promedio Bayesiano 0,81 0,72 0,83

3.6 Observaciones Finales

Este capítulo mostró los pasos a seguir para la extracción de opiniones de usuarios a partir de
comentarios de los mismos, e identificación de su polaridad con respecto al servicio en cuestión.
Finalmente, la reputación de los servicio es calculado a través de un promedio bayesiano. Diferentes
técnicas de extracción de características en textos son aplicados y múltiples algoritmos de
clasificación son usados para identificar la subjetividad y polaridad de las opiniones. En el siguiente
capítulo conduciremos múltiples experimento siguiente estos pasos, donde en cada paso se realizará
un análisis de los resultados.

29
Capitulo
4
Sistema de Evaluación de Calidad de Servicios

E ste capítulo se evaluará el proceso descrito en el capítulo anterior. Se conducirán diferentes experimentos
con los siguientes objetivos: 1) Evaluar los diferentes tipos de características descritos en la Sección 3.2 e identificar
los más representativos para el análisis de subjetividad y de sentimiento. 2) Comparar los resultados de los algoritmos
de clasificación descritos en las Secciones 3.3 y 3.4, y encontrar el más preciso.
3) Calcular el valor de reputación de los servicios Web.

4.1 Recolección de Comentarios

La recolección de comentarios para este experimento, fueron recolectados de dos reconocidos


1 2
directorios de servicios Web: ProgrammableWeb y G2Crowd . Estos directorios poseen actividad
constante donde el número de comentarios agregados y de servicios Web registrados se incrementan
continuamente en los últimos años [11]. La recolección de los comentarios fue realizada a través de
la técnica de Web scraping, implementado usando las tecnologías NodeJS y CheerIO. El scraper
automáticamente navega a través de los directorios web, recolectando información de los diferentes
servicios registrados. La información recolectada son los nombres de los servicios, la descripción del
servicio y los comentarios de los usuarios.

El resultado de la recolección dejó un total de 12,962 servicios Web desde ProgrammableWeb y 2,718
servicios de G2Crowd. El número de comentarios obtenidos fueron de 715 comentarios en
ProgrammableWeb y 16,132 de G2Crowd. Entre los servicios recolectados se obtuvieron servicios
clasificados en las categorías: mapas, social, fotos, video, música, búsqueda, mensajería, ventas,
marketing, y desarrollo.
1
http://www.programmableweb.com/
2
https://www.g2crowd.com/

30
CAPITULO 4. SISTEMA DE EVALUACIÓN DE CALIDAD DE SERVICIOS

Todos los comentarios recolectados fueron en idioma inglés, debido que se quiere medir la calidad de
los servicio desde el punto de vista de los usuarios, un punto de vista subjetivo. Usuarios ubicados en
diferentes puntos del mundo, nos garantizan una muestra más representativa de la calidad subjetiva
de los servicios. Los comentarios recolectados desde G2Crowd, ya poseían una clasificación previa
del tipo sentimental, debido que los usuarios de este repositorio respondían obligatoriamente a
preguntas como: “Que es lo que más te gusta?” y “Que es lo que no te gusta?”, respecto al servicio.
Figura 4.1 muestra un ejemplo de comentario.

Figure 4.1: Ejemplo de comentario subjetivo [4].

4.2 Extracción de Características

Según Bing [30], un comentario puede contener más de una opinión y, por lo general, una oración
puede expresar una opinión. Este proceso, descrito en la Sección 3.2, extrae diferentes características
de las oraciones con el objetivo de obtener una representación reducida de cada oración, las
características extraídas fueron: n-grams, bag of words, part of speech, y TF-IDF. El Cuadro 4.1
muestra las características extraídas para las oraciones:

• “The durability of the storage is quoted as being able to survive concurrent faults, which is
absolutely awesome.”

• “At times, the retrieval at data can incur some delay.”

31
CAPITULO 4. SISTEMA DE EVALUACIÓN DE CALIDAD DE SERVICIOS

Table 4.1: Extracción de características (elaboración propia)

Bag of Words
[‘the’, ‘durability’, ‘of’, ‘the’, ‘storage’, ‘is’, ‘quoted’, ‘as’, ‘being’, ‘able’, ‘to’,
‘survive’, ‘concurrent’, ‘faults’, ‘which’, ‘is’, ‘absolutely’, ‘awesome’]

[‘at’, ‘times’, ‘the’, ‘retrieval’, ‘at’, ‘data’, ‘can’, ‘incur’, ‘some’, ‘delay’]
Bigrams
[(‘The’, ‘durability’), (‘durability’, ‘of’), (‘of’, ‘the’), (‘the’, ‘storage’), (‘storage’,
‘is’), (‘is’, ‘quoted’), (‘quoted’, ‘as’), (‘as’, ‘being’), (‘being’, ‘able’), (‘able’, ‘to’),
(‘to’, ‘survive’), (‘survive’, ‘concurrent’), (‘concurrent’, ‘faults’), (‘faults’, ‘which’),
(‘which’, ‘is’), (‘is’, ‘absolutely’), (‘absolutely’, ‘awesome’)]

[(‘at’, ‘times’), (‘times’, ‘the’), (‘the’, ‘retrieval’), (‘retrieval’, ‘at’), (‘at’, ‘data’),
(‘data’, ‘can’), (‘can’, ‘incur’), (‘incur’, ‘some’), (‘some’, ‘delay’)]

Part of Speech
[(‘durability’, ‘NN’), (‘storage’, ‘NN’), (‘quote’, ‘VVN’), (‘able’, ‘JJ’), (‘survive’,
‘VVP’), (‘concurrent’, ‘JJ’), (‘fault’, ‘NNS’), (’absolutely’, ‘RB’), (‘awesome’,
‘JJ’)]
[(‘times’, ‘CC’), (‘retrieval’, ‘NN’), (‘datum’, ‘NNS’), (‘incur’, ‘VVP’), (‘delay’,
‘NN’)]
TF-IDF
{‘durabl’: 0.3482, ‘storag’: 0.2751, ‘quot’: 0.3482, ‘abl’: 0.2751,
‘surviv’: 0.3482, ‘concurr’: 0.3482, ‘fault’: 0.3482, ‘absolut’: 0.3482,
‘awesom’: 0.3482}
{‘time’: 0.4185, ‘retriev’: 0.3769, ‘data’: 0.4771, ‘incur’: 0.4771,
‘delay’: 0.4771}

Por cada tipo de característica se construyó una matriz de frecuencia donde cada fila de la matriz
representa una oración, en forma de vector de características, y las columnas representan cada
elemento del corpus generado por todos los comentarios de servicios Web, de acuerdo a la
característica extraída.

4.3 Análisis de Subjetividad

Extraídas las características de cada oración y representadas en una matriz de frecuencia, se


condujeron diferentes experimentos con cada tipo de característica y combinaciones de ellas. Cada
combinación se ejecutó en los diferentes algoritmos de clasificación descritos en la Sección 3.3, tales
como Naive Bayes, Support Vector Machine y Maximum Entropy. Los algoritmos supervisados usados
para clasificación requieren de dos fases para ser usados, 1) la fase de entrenamiento, donde el
algoritmo es ajustado de acuerdo a un grupo grande de comentarios que ya poseen una clasificación,
es decir, ya están clasificados subjetivamente, y 2) la fase de prueba, donde un conjunto menor de
comentarios es usado

32
CAPITULO 4. SISTEMA DE EVALUACIÓN DE CALIDAD DE SERVICIOS

para probar el algoritmo de clasificación ya entrenado y validar sus resultados. Para la fase de
entrenamiento de los algoritmos de clasificación fueron usados las descripciones de los servicios
como oraciones objetivas (divididos en oraciones), desde que la descripción de un servicio Web
contiene información explicita de las funcionalidades del servicio. Por otro lado, las oraciones de los
comentarios de los servicios fueron usados como oraciones subjetivas, debido que ellas fueron
escritas por los usuarios de los servicios y representan sus opiniones respecto al servicio.

El conjunto de datos de entrenamiento estaba conformado por 56,386 oraciones objetivas y 56,386
oraciones subjetivas. Un 80% del total de oraciones fueron destinadas para la fase de entrenamiento
de los algoritmos de clasificación y 20% para la fase de prueba. La técnica de validación usada en los
experimentos fue la validación cruzada de K iteraciones (del inglés, k-fold cross validation, Subsección
2.1.6), con K Æ 5 para validar y comparar los resultados de nuestros experimentos. Así mismo, fueron
usados las métricas de precisión, recall y F-measure.

Una vez ejecutado los diferentes algoritmos de clasificación con cada tipo de característica se
obtuvieron los resultados mostrados en la Tabla 4.2. En los resultados observamos que usando Bag
of Words como representación de las oraciones, los algoritmos de clasificación obtuvieron una
precisión muy parecida, donde Naive Bayes obtuvo una precisión mayor de 93.95% en oraciones
subjetivas con 91.29% clasificadas correctamente (recall ), comparado con Maximum Entropy que
obtuvo una precisión de 93.36% de los cuales el 92.79% fueron realmente clasificados correctamente,
muestra finalmente que a pesar de tener una precisión menor que Naive Bayes es más acertado en
su clasificación. Por otro lado, en las oraciones objetivas, Maximum Entropy obtuvo mayor precisión
con 93.19%, de los cuales el 93.32% fueron clasificadas correctamente. Por lo tanto, comparando los
valores F-Measure, Maximum Entropy brinda una mejor clasificación.

Usando la representación mediante Bigrams, Naive Bayes obtuvo una mayor precisión y recall en
comparación de los demás algoritmos, con 95.20% en oraciones subjetivas con 91.51% de recall
(porcentaje de oraciones correctamente clasificadas) y 92.12% en oraciones objetivas con 95.33% en
recall. Comparando los F-Measure de todos los algoritmos Naive Bayes llegó a ser 3% mejor que SVM
y 2% mejor que Maximum Entropy. Seguidamente, en el uso de Part of Speech como representación,
el algoritmo de clasificación con mejores resultados fue Maximum Entropy con 91.03% de F-Measure
en oraciones subjetivas y 91.35% en oraciones objetivas. En el uso de TF-IDF, los algoritmos no
demostraron tener buenos resultados en comparación con las otras representaciones, siendo el SVM
con 89.89% y 90.05% de F-Measure en oraciones subjetivas y objetivas respectivamente, el que
obtuvo resultados considerables. Finalmente, se realizaron pruebas usando combinaciones de los
tipos de representación de las oraciones, para intentar agregar valor en su caracterización. Sin
embargo, los resultados obtenidos, no fueron superiores a los resultados obtenidos usando los tipos
de representación individuales. Concluyendo que las combinaciones no agregar valor discriminativo
entre las oraciones al momento de su clasificación.

33
CAPITULO 4. SISTEMA DE EVALUACIÓN DE CALIDAD DE SERVICIOS

En resumen, la combinación entre el tipo de representación de las oraciones y el algoritmo de


clasificación que mejores resultados brindó durante la clasificación de oraciones subjetivas y objetivas
fue el uso de Bigrams y Naive Bayes. Este resultado se interpreta que los pares de palabras (Bigrams)
presentan un mayor valor discriminativo entre las oraciones, donde un par de palabras pueden
pertenecer a una sola clase (subjetiva u objetiva). No obstante, el valor discriminativo en palabras
individuales es menor, debido que existe una mayor probabilidad que una palabra simple pertenezca
a ambas clases.

Table 4.2: Resultados del Análisis de Subjetividad (elaboración propia)

Oraciones Subjetivas Oraciones Objetivas


NB SVM MaxEnt NB SVM MaxEnt
Bag of Words
Precisión 0.9395 0.9277 0.9336 0.9192 0.9220 0.9319
Recall 0.9129 0.9175 0.9279 0.9404 0.9276 0.9332
F-Measure 0.9244 0.9211 0.9293 0.9284 0.9236 0.9314
Bigrams
Precisión 0.9520 0.9418 0.9308 0.9212 0.8926 0.9039
Recall 0.9151 0.8819 0.8959 0.9533 0.9449 0.9325
F-Measure 0.9319 0.9092 0.9112 0.9361 0.9169 0.9166
Part of Speech
Precisión 0.8898 0.9073 0.9182 0.9322 0.9047 0.9115
Recall 0.9312 0.8996 0.9060 0.8833 0.9069 0.9183
F-Measure 0.9085 0.9016 0.9103 0.9056 0.9044 0.9135
TF-IDF
Precisión 0.9967 0.8986 0.5040 0.5237 0.9077 0.8723
Recall 0.0906 0.9033 0.9942 0.9997 0.8967 0.0214
F-Measure 0.1659 0.8989 0.6689 0.6873 0.9005 0.0416
Bigrams / TF-IDF / Part of Speech
Precisión 0.8951 0.9214 0.9206 0.9369 0.9123 0.9153
Recall 0.9357 0.9064 0.9099 0.8889 0.9216 0.9208
F-Measure 0.9134 0.9120 0.9135 0.9108 0.9155 0.9167
Bag of Words / Bigrams / TF-IDF / Part of Speech
Precisión 0.8832 0.9226 0.9250 0.9409 0.9130 0.9165
Recall 0.9406 0.9071 0.9110 0.8740 0.9227 0.9252
F-Measure 0.9094 0.9129 0.9163 0.9045 0.9164 0.9195

4.4 Análisis de Sentimiento

Al igual que en el proceso anterior, el análisis de sentimiento fue ejecutado usando los diferentes tipos
de características descritos en la Sección 3.2 y los diferentes algoritmos de clasificación descritos en
la Sección 3.4. Para estos experimentos fueron usadas las oraciones subjetivas, es decir, solamente
los comentarios de los usuarios, debido que estos expresan las opiniones de los mismos con respecto
al servicio. El número total de oraciones positivas usadas en este proceso fueron 56,386 y de
oraciones negativas fueron 56,386. Las oraciones fueron divididas en un 80% para entrenamiento de
los algoritmos de clasificación y 20% para probar los algoritmos ya entrenados. La técnica de
validación usada en los experimentos fue la validación cruzada de K iteraciones (del inglés, k-fold
cross

34
CAPITULO 4. SISTEMA DE EVALUACIÓN DE CALIDAD DE SERVICIOS

validation, Subsección 2.1.6), con K Æ 5 para validar y comparar los resultados de nuestros
experimentos. Así mismo, fueron usados las métricas de precisión, recall y F-measure.

Los resultados obtenidos en el análisis de sentimiento tuvieron un comportamiento similar al análisis


de subjetividad con respecto a las técnicas y algoritmos usados. La Tabla 4.3 muestra los resultados
obtenidos para cada tipo de característica usando los diferentes algoritmos de clasificación. Usando
Bag of Words como representación, Maximum Entropy fue el clasificador que mostró mejores
resultados en comparación a los demás algoritmos, obteniendo en oraciones positiva una precisión
de 80.53% con 79.18% de recall y en oraciones negativas una precisión de 79.52% con 80.72%,
siendo sus F-Measures de 79.81% y 80.08% respectivamente. Mientras que usando Bigrams, Naive
Bayes obtuvo un mejor F-Measure en comparación con los otros algoritmos, 80.29% en oraciones
positivas y 79.44% en oraciones negativas. Por otro lado, Maximum Entropy fue más preciso usando
Part of Speech como representación de las oraciones, llegando a un 76.02% de precisión con 75.63%
de recall en oraciones positivas siendo su F-Measure de 75.63% y en oraciones negativas, 75.58%
de precisión con 75.91% de recall y F-Measure de 75.65%.

Seguidamente, realizamos pruebas usando la característica TF-IDF, y se notó que los resultados no
fueron muy bueno, obteniendo 5.42% y 66.89% de F-Measure en oraciones positivas y oraciones
negativas respectivamente usando Naive Bayes. Sin embargo, SVM logró obtener mejores
resultados, comparados con Naive Bayes, con 69.41% de F-Measure en oraciones positivas y 68.18%
en oraciones negativas. En pruebas usando múltiples características, los resultados no fueron mejor
que en características aisladas, confirmando que las características no agregan valor discriminativo
entre ellas.

En resumen, la combinación de Bigramas como características de representación de oraciones y


Naive Bayes como clasificador en la polaridad de las oraciones subjetivas, brindaron mejores
resultados en comparación con el resto de combinaciones. Nuevamente, se puede interpretar que la
probabilidad de tener dos palabras consecutivas que pertenezcan a una sola clase es mayor en
comparación de tener una sola palabra.

35
CAPITULO 4. SISTEMA DE EVALUACIÓN DE CALIDAD DE SERVICIOS

Table 4.3: Resultados del Análisis de Sentimiento (elaboración propia)

Oraciones Positivas Oraciones Negativas


NB SVM MaxEnt NB SVM MaxEnt
Bag of Words
Precisión 0.7273 0.7478 0.8053 0.7749 0.7549 0.7952
Recall 0.7979 0.7597 0.7918 0.6957 0.7413 0.8072
F-Measure 0.7598 0.7531 0.7981 0.7314 0.7474 0.8008
Bigrams
Precisión 0.7882 0.7798 0.8073 0.8117 0.7919 0.7743
Recall 0.8190 0.7961 0.7602 0.7787 0.7746 0.8167
F-Measure 0.8029 0.7876 0.7821 0.7944 0.7829 0.7940
Part of Speech
Precisión 0.7268 0.7102 0.7602 0.7103 0.7186 0.7558
Recall 0.7030 0.7262 0.7543 0.7294 0.7005 0.7591
F-Measure 0.7130 0.7174 0.7563 0.7181 0.7086 0.7565
TF-IDF
Precisión 0.7586 0.6868 0.5027 0.5049 0.6942 0.7089
Recall 0.0281 0.7045 0.9921 0.9909 0.6728 0.0186
F-Measure 0.0542 0.6941 0.6673 0.6689 0.6818 0.0362
Bigrams / TF-IDF / Part of Speech
Precisión 0.7446 0.7412 0.7697 0.7294 0.7524 0.7617
Recall 0.7228 0.7589 0.7590 0.7474 0.7325 0.7713
F-Measure 0.7322 0.7493 0.7639 0.7371 0.7416 0.7661
Bag of Words / Bigrams / TF-IDF / Part of Speech
Precisión 0.7448 0.7349 0.7588 0.7214 0.7484 0.7708
Recall 0.7100 0.7566 0.7764 0.7510 0.7245 0.7512
F-Measure 0.7254 0.7449 0.7669 0.7345 0.7355 0.7602

4.5 Reputación de Servicios

Este proceso evalúa la calidad de un conjunto de servicios Web. Sin embargo, para poder realizar
este proceso de manera justa e imparcial, el proceso de cálculo de reputación de servicios fue
realizado en un conjunto de datos (muestra) no etiquetada, es decir, sin ninguna clasificación previa.
Para este proceso, se escogieron las técnicas y algoritmos con mejores resultados en los procesos
anteriores, los cuales fueron Bigrams y Naive Bayes.

Los comentarios recolectados desde ProgrammableWeb fueron usados para este propósito, debido
que estos comentarios no están previamente clasificados, ni responden a preguntas del tipo: “Que te
gusta mas?” o “Que no te más?” como fue el caso de los comentarios de G2Crowd. Por otro lado, los
comentarios recolectados desde G2Crowd fueron usados, en su totalidad, para entrenar nuestro
clasificador.

Los comentarios no etiquetados fueron pasados por los procesos descritos en este capítulo, iniciando
en la extracción de características, análisis de subjetividad, análisis de sentimiento y finalmente por
el calcula de la reputación de cada servicio Web. La reputación fue calculado según la fórmula del
Promedio Bayesiano descrita en la Sección 3.5. La Tabla 4.4 contiene una muestra representativa de
las reputaciones calculadas en orden de

36
CAPITULO 4. SISTEMA DE EVALUACIÓN DE CALIDAD DE SERVICIOS

3
acuerdo a su reputación . Los valores de reputación fueron redondeados a 4 decimales.

Table 4.4: Muestra Representativa de la Reputación de Servicios Web (elaboración propia)

Name Positive Negative Score


Wordstream Keyword Niche Finder 8 0 0.5000
PeerIndex 6 0 0.4960
Basecamp 6 2 0.4920
FotoFlexer 3 1 0.4879
Shopzilla 3 2 0.4859
FedEx 1 0 0.4857
EarthTools 0 0 0.4836
Salesforce.com 1 2 0.4817
Yelp 0 1 0.4816
Shutterfly 1 3 0.4798
Active 0 2 0.4796
Trulia 1 4 0.4779
Shopping.com 2 11 0.4669

Para validar los resultados obtenidos, se escogió una muestra de 100 servicios Web con comentarios
no etiquetados (414 comentarios), y se pidió a 15 alumnos de Maestría y Doctorado en Ciencias de la
Computación, no relacionados en este proyecto de investigación, para evaluar y etiquetar los
comentarios de servicios (Anexo A). Cada comentario recibió al menos 3 calificaciones de diferentes
alumnos para obtener un consenso al momento de asignar una etiqueta al comentario. Métricas como
precisión, recall y F-Measure fueron usadas para validar los resultados generados por nuestro modelo
y los resultados obtenidos de la evaluación manual. La Tabla A.1 muestra los valores obtenidos de
las tres métricas.

La medidas obtenidas por las tres métricas confirman que el modelo planteado para la evaluación de
la calidad de los servicios Web brinda buenos resultados, los cuales demuestran que las técnicas de
mineración de opiniones pueden medir el grado de satisfacción de los usuarios con respecto a los
servicios Web. Así mismo, nuestra hipótesis nula (Sección 1.5) es válida.

3
La lista completa de los resultados: http://www.students.ic.unicamp.br/»ra153621/lirmm/

Table 4.5: Validación de Resultados (elaboración propia)

Precision Recall F-Measure


Positive sentences 0.89 0.67 0.764
Negative sentences 0.59 0.85 0.695

37
CAPITULO 4. SISTEMA DE EVALUACIÓN DE CALIDAD DE SERVICIOS

4.6 Sistema de Consulta

Con el objetivo poner este modelo de evaluación de la calidad de servicios Web a disposición de la
sociedad en general, es que en esta sección construiremos un sistema de consultas para que
personas interesadas en saber sobre la calidad de servicios en específico, pueda hacer uso de esta
herramienta.

4.6.1 Arquitectura

La implementación de este sistema de consultas fue diseñado bajo una arquitectura basada en
microservicios. La Figura 4.2 muestra un diagrama de como el sistema fue estructurado. La lógica de
negocio está alojada en la aplicación Reputation Services y este provee múltiples servicios (REST
API) para ser consumidos por un cliente de servicios. QServices WebApp es una aplicación web que
muestra visualmente la información sobre las reputaciones de los servicios hacia el usuario a través
de diferentes interfaces de usuario. La Base de Datos es base relacional que almacena toda la
información respecto a los servicios y a los comentarios dejados por los usuarios, asi también la
polaridad calculada de cada comentarios calculada por nuestro modelo. La reputación calculada para
cada servicio es también almacenada para su fácil acceso.

Figure 4.2: Arquitectura de la plataforma de consulta QServices (elaboración propia).

Cada aplicación, Base de Datos, Reputation Service y Qservices WebApp están completamente
separadas y alojadas en diferentes servidores para permitir su escalamiento de forma horizontal
cuando un gran número de usuarios accedan al sistema.

4.6.2 Base de Datos

Durante el diseño de la base de datos fue creado el Modelo Entidad-Relación (MER) como se muestra
en la Figura 4.3. El modelo es simple con solo tres entidades. La entidad “Service” que almacena la
información del servicio como: nombre, descripción y reputación. La entidad “Review” que almacena
el comentario de un usuario, la fecha que fue escrito el comentario y la polaridad del comentario
calculada durante nuestro análisis de sentimiento (Sección 4.4). La entidad “Category” que almacena
las diferentes categorías de servicios, con el fin de agrupar los servicios según su funcionalidad. La
base de datos fue implementada en MySQL 5.6.

38
CAPITULO 4. SISTEMA DE EVALUACIÓN DE CALIDAD DE SERVICIOS

Figure 4.3: Base de datos de la plataforma de consulta QServices (elaboración propia).

4.6.3 Reputation Services

Esta aplicación contiene la lógica del negocio, en ella se realizan los principales procesamientos del
sistema. Para ello, se habilitan un conjunto de servicios REST, con el objetivo que sean de fácil acceso
para cualquier tipo de cliente consumidor (aplicaciones Web, aplicaciones para celular y/o
aplicaciones terceras). El formato de los mensajes enviados y recibidos es en JSON (del inglés,
JavaScript Object Notation)

Por ejemplo el servicio para buscar servicios financieros seria:

1 HTTP GET /qservices/services?q=financial

1 HTTP/1.1 200 OK
2 Content-Type: application/json

3 {

4 "status": 200,
5"services": [

6 {
7 "id": 1234,
8 "name": "Paypal",
9 "description": "Paypal is an electronic commerce company ..."
10 "category": {
11 "id": "financial",
12 "name": "Financial",
13 }
14 "reputation": 0.4879
15 },
16 ...
17 ]
18 }

39
CAPITULO 4. SISTEMA DE EVALUACIÓN DE CALIDAD DE SERVICIOS
4.6.4 QServices WebApp

Esta es la aplicación web de la plataforma de consultas. Esta plataforma lleva el nombre de QServices
que se conecta internamente con los servicios de Reputation Services (Subsección 4.6.3). Esta
aplicación web presenta tres principales interfaces de usuario. El buscador (Figura 4.4) que presenta
una entrada para poder realizar búsquedas por palabras claves.

Figure 4.4: Plataforma de consulta QServices (elaboración propia).

La interfaz de resultados (Figura 4.5), al realizar una consulta, la plataforma retorna una lista de
servicios ordenados por su nivel de reputación.

Finalmente la interface de detalle de un servicio (Figura 4.6), los comentarios de cada servicio son
mostrados al seleccionar un servicio. Esta lista de comentarios presenta una fecha y su polaridad
según nuestro modelo predictivo durante el análisis de sentimiento.

4.7 Observaciones Finales

En este capítulo, se mostró los detalles en el paso a paso de nuestro proceso de evaluación de la
reputación de servicios Web a partir de comentarios hechos por usuarios de los servicios. También
se mostraron algunas métricas de los algoritmos usados con el objetivo de compararlos. El modelo
final fue conformado con la combinación de algoritmos con mejores resultados en cada paso. En el
siguiente capítulo, analizaremos los resultados del proceso total, plantearemos nuestras definiciones
y proyectaremos trabajos futuros.

40
CAPITULO 4. SISTEMA DE EVALUACIÓN DE CALIDAD DE SERVICIOS

Figure 4.5: Resultado de la busqueda por la palabra “payment”. 1) Logo del servicio. 2)
Nombre del servicio. 3) Reputación del servicio calculada a través de nuestro model. 4)
Descripción del servicio. 5) Categoria del servicio (elaboración propia).

Figure 4.6: Comentarios del servicio “Authorize.Net” y la polaridad de cada comentario (elaboración
propia)

41
CONCLUSIONES Y TRABAJOS FUTUROS

S e describen las principales conclusiones obtenidas a partir de los diferentes experimentos realizados durante la
búsqueda del proceso de evaluación de reputación de servicios Web. Así mismo, discutiremos trabajos futuros a ser
realizados a partir de los resultados alcanzados.

Conclusiones

PRIMERA.- Con este trabajo de investigación, la hipótesis se afirma concluyendo que sí es


posible calcular una reputación de servicios Web usando técnicas de mineración de textos de
una forma automática. Técnicas en extracción de características en textos como Bag of Words,
Bigrams, Part of Speech y TF-IDF, así como algoritmos muy conocidos en aprendizaje de
máquina como Naive Bayes, Support Vector Machine y Maximum Entropy, demostraron que
nuestro objetivo fue alcanzado con éxito.

SEGUNDA.- Con el desarrollo de este proyecto, afirmamos que un análisis del estado de arte,
no solo al inicio de proyecto sino durante todo el proyecto, nos ayuda a tener una visión
constante de las diferentes técnicas y enfoques usados para alcanzar el mismo objetivo.

TERCERA.- Actualmente existen algunos directorios de servicios Web, que permite a sus
usuarios añadir sus dudas, expectativas y experiencias con los servicios Web. Es así que dos
repositorios con creciente número de servicios Web indexados fueron usados para obtener una
base de comentarios en los mismos, ProgrammableWeb y G2Crowd.

CUARTA.- Dentro del proceso propuesto para el análisis de comentarios de usuarios fueron
considerados 5 pasos: 1) recolección de comentarios de usuario, 2) extracción de
características, 3) análisis de subjetividad, 4) análisis de sentimiento y 5) cálculo de la
reputación de los servicios. Este proceso es básicamente nuestra contribución en comparación
a trabajos relacionados que están enfocados en subconjuntos de estos pasos.

QUINTA.- Para el análisis de subjetividad e sentimiento, Bigrams y Naive Bayes fueron la


combinación de técnicas en extracción de características en textos y algoritmo de clasificación
de textos, respectivamente, que mejores resultados obtuvo

42
CAPITULO 4. SISTEMA DE EVALUACIÓN DE CALIDAD DE SERVICIOS

en comparación con otras técnicas como BoW, TF-IDF, SVM o Maximum Entropy. Bigrams
mejoraron la precisión y recall en un 2% que las otras técnicas y Naive Bayes obtuve una
precisión de 2% mayor que los otros algoritmos de clasificación.

SEXTA.- Durante nuestra ejecución de experimentos también se descubrió que el uso de


características de texto combinados durante el análisis de subjetividad y sentimientos no mejora
los resultados, los valores obtenidos en las métricas fueron similares a los resultados donde
fueron usados características aisladas.

SEPTIMA.- En la atribución de niveles de reputación a servicios Web basados en la experiencia


de los usuarios, el algoritmo Bayesian Average ha sido el más preciso como medida de
agregación de medidas en bases de datos no balanceadas, desde que fórmulas tradicionales
como promedio aritmético, promedio geométrico, mediana o moda, no retornan un valor
balanceado en la reputación de servicios con número de comentarios no balanceados.

OCTAVA.- Con los resultados obtenidos se desarrolló un sistema de consultas de la calidad de


servicios que está basado en la mineración de comentarios que representan la experiencia de
sus usuarios, este sistema será una herramienta útil para futuros usuarios que deseen usar
servicios Web de calidad.

Recomendaciones

A partir de los resultados alcanzados en este trabajo de investigación se proponen las siguientes
recomendaciones para trabajos futuros:

PRIMERA.- Realizar nuevos experimentos usando el proceso ya definido en este trabajo sobre
bases de datos mayores, incluyendo API’s y productos de software con el fin de mejorar el
proceso ya definido.

SEGUNDA.- Realizar una evaluación de la calidad de servicios Web basado en la experiencia


de sus usuarios en otros idiomas, tales como español.

TERCERA.- Comparar nuestros resultados con resultados obtenidos en otros trabajos, así
también ejecutar más experimentos usando otros algoritmos de clasificación.

CUARTA.- Ejecutar nuevos experimentos con técnicas más avanzadas, por ejemplo algoritmos
de Deep Learning, ya que estos algoritmos actualmente proveen excelentes resultados en otras
áreas de la computación y creemos que estos puedan mejorar los resultados en el análisis de
textos.

QUINTA.- Realizar un análisis de la percepción de calidad más detallada, extrayendo atributos


de calidad a partir de los comentarios, tales como disponibilidad, rendimiento, seguridad y
obtener un valor de reputación por atributo.

43
REFERENCIAS BIBLIOGRÁFICAS

[1] M. Oriol, J. Marco, and X. Franch, “Quality models for web services: A systematic mapping,”
Information and Software Technology, vol. 56, pp. 1167–1182, October 2014.

[2] T. Erl, SOA Design Patterns. Upper Saddle River, NJ, USA: Prentice Hall PTR, 1st ed., 2009.

[3] C. M. Bishop, Pattern Recognition and Machine Learning (Information Science and Statistics).
Berlin, Heidelberg: Springer-Verlag, 2006.

[4] “G2Crowd.” https://www.g2crowd.com/. Accessed: 2019-01-30.

[5] Z. Zheng, Y. Zhang, and M. R. Lyu, “Investigating qos of real-world web services,” IEEE
Transactions on Services Computing, vol. 7, pp. 32–39, Jan 2014.

[6] F. Lalanne, A. Cavalli, and S. Maag, “Quality of experience as a selection criterion for web
services,” in Signal Image Technology and Internet Based Systems (SITIS), 2012 Eighth
International Conference on, pp. 519–526, Nov 2012.

[7] C. R. Choi and H. Y. Jeong, “A broker-based quality evaluation system for service selection
according to the qos preferences of users,” Information Sciences, vol. 277, pp. 553 – 566, 2014.

[8] E. Al-Masri and Q. H. Mahmoud, “Qos-based discovery and ranking of web services,” in
Computer Communications and Networks, 2007. ICCCN 2007. Proceedings of 16th International
Conference on, pp. 529–534, Aug 2007.

[9] M. A. Oskooei and S. M. Daud, “Quality of service (qos) model for web service selection,” in
Computer, Communications, and Control Technology (I4CT), 2014 International Conference on,
pp. 266–270, Sept 2014.

[10] B. Upadhyaya, Y. Zou, I. Keivanloo, and J. Ng, “Quality of experience: What end-users say about
web services?,” in Web Services (ICWS), 2014 IEEE International Conference on, pp. 57–64,
June 2014.

[11] B. Upadhyaya, Y. Zou, I. Keivanloo, and J. Ng, “Quality of experience: User’s perception about
web services,” IEEE Transactions on Services Computing, vol. 8, pp. 410–421, May 2015.

44
REFERENCIAS BIBLIOGRÁFICAS

[12] E. Al-Masri and Q. H. Mahmoud, “Investigating web services on the world wide web,” in Proceedings of the 17th International
Conference on World Wide Web, WWW ’08, (New York, NY, USA), pp. 795–804, ACM, 2008.

[13] Y. Zhang, T. Lei, and Y. Wang, “A service recommendation algorithm based on modeling of implicit demands,” in 2016 IEEE
International Conference on Web Services (ICWS), pp. 17–24, June 2016.

[14] T. Rajendran and P. Balasubramanie, “Analysis on the study of qos-aware web services discovery,” Journal of Computing, vol. 1, pp. 119–130, December
2009.

[15] M. A. Oskooei and S. M. Daud, “Quality of service (qos) model for web service selection,” in International Conference on Computer,
Communications, and Control Technology, I4CT 2014, (Langkawi, Malaysia), pp. 266–270, September 2014.

[16] M. Papazoglou and W.-J. van den Heuvel, “Service oriented architectures: Approaches, technologies and research issues,” The
International Journal on Very Large Data Bases, vol. 16, pp. 389–415, July 2007.

[17] T. Erl, Service-Oriented Architecture: Concepts, Technology, and Design. Upper


Saddle River, NJ, USA: Prentice Hall PTR, 2005.

[18] T. Erl, SOA Principles of Service Design (Paperback). Upper Saddle River, NJ, USA: Prentice Hall Press, 1st ed., 2016.

[19] D. Austin, A. Barbir, C. Ferris, and S. Garg, “Web services architecture requirements..” Available in:
https://www.w3.org/TR/wsa-reqs/, February 2004. [Accessed on 27/07/2016].

[20] S. Ran, “A model for web services discovery with qos,” ACM Special Imterest Group on E-Commerce Exchanges, vol. 4, pp. 1–10, Mar.
2003.

[21] M. P. . P. Team, Microsoft Application Architecture Guide, 2nd Edition. Microsoft Corporation, 2009.

[22] ISO/IEC/IEEE, “Systems and software engineering – vocabulary,” ISO/IEC/IEEE 24765:2010(E), pp. 1–418, December 2010.

[23] C. Constantinov, M. Mocanu, N. Barbulescu,˘ E. Popescu, and A. Mocanu, “Movierate: Considerations on applying a custom social reputation engine for movie
reviews,” in

2017 18th International Carpathian Control Conference (ICCC), pp. 183–188, May 2017.

[24] G. James, D. Witten, T. Hastie, and R. Tibshirani, An Introduction to Statistical Learning: With Applications in R. Springer Publishing
Company, Incorporated, 2014.

[25] C. D. Manning, P. Raghavan, and H. Schütze, Introduction to Information Retrieval. New York, NY, USA: Cambridge University Press, 2008.

45
REFERENCIAS BIBLIOGRÁFICAS

[26] A. C. Davison, Models, p. 161–224. Cambridge Series in Statistical and Probabilistic


Mathematics, Cambridge University Press, 2003.

[27] H. T. Nguyen, W. Zhao, and J. Yang, “A trust and reputation model based on bayesian network
for web services,” in 2010 IEEE International Conference on Web Services, pp. 251–258, July
2010.

[28] Z. Malik and A. Bouguettaya, “Rateweb: Reputation assessment for trust establishment among
web services,” The VLDB Journal, vol. 18, no. 4, pp. 885–911, 2009.

[29] W. Sherchan, S. Loke, and S. Krishnaswamy, “A fuzzy model for reasoning about reputation in
web services,” 01 2006.

[30] B. Liu, Sentiment Analysis and Opinion Mining. Morgan & Claypool Publishers, 2012.

[31] A. Esuli and F. Sebastiani, “Sentiwordnet: A publicly available lexical resource for opinion
mining,” in In Proceedings of the 5th Conference on Language Resources and Evaluation
(LREC’06, pp. 417–422, 2006.

[32] G. Kang, M. Tang, J. Liu, X. . Liu, and B. Cao, “Diversifying web service recommendation results
via exploring service usage history,” IEEE Transactions on Services Computing, vol. 9, pp. 566–
579, July 2016.

[33] J. Liu, M. Tang, Z. Zheng, X. . Liu, and S. Lyu, “Location-aware and personalized collaborative
filtering for web service recommendation,” IEEE Transactions on Services Computing, vol. 9,
pp. 686–699, Sept 2016.

[34] S. Kale and V. Padmadas, “Sentiment analysis of tweets using semantic analysis,” in 2017
International Conference on Computing, Communication, Control and Automation (ICCUBEA),
pp. 1–3, Aug 2017.

[35] S. Dhar, S. Pednekar, K. Borad, and A. Save, “Sentiment analysis using neural networks: A new
approach,” in 2018 Second International Conference on Inventive Communication and
Computational Technologies (ICICCT), pp. 1220–1224, April 2018.

[36] R. Bandana, “Sentiment analysis of movie reviews using heterogeneous features,” in 2018 2nd
International Conference on Electronics, Materials Engineering Nano-Technology (IEMENTech),
pp. 1–4, May 2018.

[37] S. Dorle and D. N. Pise, “Political sentiment analysis through social media,” in 2018 Second
International Conference on Computing Methodologies and Communication (ICCMC), pp. 869–
873, Feb 2018.

[38] A. Alfarrarjeh, S. Agrawal, S. H. Kim, and C. Shahabi, “Geo-spatial multimedia sentiment


analysis in disasters,” in 2017 IEEE International Conference on Data Science and Advanced
Analytics (DSAA), pp. 193–202, Oct 2017.

[39] C. D. Manning and H. Schütze, Foundations of Statistical Natural Language Processing.


Cambridge, MA, USA: MIT Press, 1999.

46
REFERENCIAS BIBLIOGRÁFICAS

[40] D. Jurafsky and J. H. Martin, Speech and Language Processing (2Nd Edition). Upper Saddle
River, NJ, USA: Prentice-Hall, Inc., 2009.

[41] Y. Goldberg and G. Hirst, Neural Network Methods in Natural Language Processing. Morgan &
Claypool Publishers, 2017.

[42] B. Liu, Sentiment analysis: Mining opinions, sentiments, and emotions. Cambridge University
Press, 1 2015.

[43] I. Goodfellow, Y. Bengio, and A. Courville, Deep Learning. The MIT Press, 2016.

[44] A. L. Berger, V. J. D. Pietra, and S. A. D. Pietra, “A maximum entropy approach to natural


language processing,” Comput. Linguist., vol. 22, pp. 39–71, Mar. 1996.

47
Anexos
A
Sistema de Validación

E ste sistema recolecta las apreciaciones reales de personas que analizaron un conjunto de comentarios y brindaron una
calificación positiva o negativa de dicho comentario.
Esta calificación es un valor numérico entre -2 y 2, donde -2 y -1 son calificaciones atribuidas para un
comentario negativo, 0 para un comentario neutro, 1 y 2 para un comentario positivo. Este sistema
fue implementado en lenguaje Python 2.7, usando el framework Django 1.9. Figura A.1 muestra una
imagen del sistema de calificación.

Figure A.1: Sistema de Validación (elaboración propia)

48
ANEXOS A. SISTEMA DE VALIDACIÓN

Una muestra de 100 servicios Web fueron ingresados en el sistema de validación, sumando un total
de 414 comentarios. Con el objetivo de obtener calificaciones mas precisas, por cada comentario
fueron recolectados 3 difierentes calificaciones por personas diferentes. Se pidió a 15 alumnos de
Maestria y Doctorado en Ciencias de la Computación, que no estan relacionados con este proyecto.

Los resultados obtenidos fueron de tres tipos:

• Comentarios con un consenso, son comentarios que obtuvieron calificaciones similares o


idénticas. Por ejemplo, el comentario

“I think this is a great service.”

obtuvo las siguientes calificaciones [2, 1, 1].

• Comentarios con un desacuerdo, estos comentarios obtuvieron calificaciones diferentes y


contradictorias, tales como [-2, 2, 2], [-1, -2, 1] y [1, 0, -1]. Por ejemplo, el comentario

“This api is working on https only...”

obtuvo las siguientes calificaciones [-1, 1, -1]. El motivo de estos resultados pueden tener
relación con el punto de vista de los usuarios, es decir, usuarios que calificaron negativamente
pueden haber tomado un punto de vista de accesibilidad, ya que el servicio no cuenta con otros
protocolos disponibles. Los usuarios que calificaron positivamente pueden haber tomado un
punto de vista de seguridad, y se preocupa con la protección de la información.

• Comentarios neutros, son comentarios que obtuvieron todas sus calificaciones cero ([0, 0, 0]).
Estos comentarios no presentan información relevante. Por ejemplo, el comentario

“The Cohuman Service will shut down Aug 31, 2011”

obtuvo en todas sus calificaciones el valor de cero, debido que este comentario es
informativo, y no brinda alguna experiencia de parte de los usuarios.

Los resultados finales fueron:

Table A.1: Resultados del Sistema de Vaidación (elaboración propia)

Número de comentarios
Positivos 242
Negativos 116
Neutros 56

49
Anexos
B
Asesor Externo

Chouki Tibermacine es un profesor asociado en la Universidad de Montpellier (Francia) desde el


2007. Él recibió la acreditación de supervisor de investigación en junio del 2018 de la Universidad de
Montpellier. Él se graduó antes con el grado de Doctor en Ingeniería de Software en la Universidad de
Southern Brittany (Francia) en el 2006 y como Magister en Sistemas Distribuidos en la Universidad de
Paris Sorbonne (Francia) en el 2003. Sus actuales intereses en investigación están enfocados en la
promoción de prácticas de desarrollo para y por la reutilización de software, usando componentes y
servicios. Él es co-autor de cerca de 40 artículos en colaboración con la industria e investigadores
académicos, en Francia, Algeria, Túnez y Canadá. Él forma parte de la organización de He serves as
a publicity chair in la Conferencia Europe en Arquitectura de Software (European Conference on
Software Architecture - ECSA 2019). Antes formó parte de los eventos ASE 2018, ECOOP 2013,
ECSA 2013 y ECMFA 2013. Desde el 2010 al 2015, él fue co-responsable por el grupo francés en
ingeniería reversa, mantenimiento y evaluación de software. Él recibió la distinción de mejor artículo
por la ACM SIGSOFT en la conferencia CBSE 2011 y CSBE 2014. Él es From 2010 to 2015, he was
co-responsible for the French working group on software reverse-engineering, maintenance and
evolution. Él es considerado como Excelencia Científica en la Universidad de Montpellier desde el
2012.

50

También podría gustarte