Documentos de Académico
Documentos de Profesional
Documentos de Cultura
AREQUIPA
FACULTAD DE INGENIERIA DE PRODUCCION Y SERVICIOS
ESCUELA PROFESIONAL DE INGENIERÍA DE SISTEMAS
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.
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.
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.
iii
Tabla de Contenidos
Página
iv
TABLA DE CONTENIDOS
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
CONCLUSIONES 43
REFERENCIAS BIBLIOGRÁFICAS 44
A Sistema de Validación 48
B Asesor Externo 50
vi
Lista de Tablas
Tabla Página
vii
Lista de Figuras
Figura Página
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.
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 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.
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.
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.
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.
• Obtener una base de datos (dataset) de servicios Web y comentarios de usuarios en cada
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
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.
Es de importancia identificar nuestras variables de investigación para poder observar y medir los
resultados esperados en el proyecto.
4
CAPITULO 1. PLANTEAMIENTO DEL PROBLEMA
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.
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.
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.
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.
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.
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.
7
CAPITULO 1. PLANTEAMIENTO DEL PROBLEMA
Esta sección describe el método y diseño a seguir durante la ejecución del proyecto de 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.
El plan a seguir durante la ejecución del proyecto de investigación están basados en seis etapas
importantes:
8
CAPITULO 1. PLANTEAMIENTO DEL PROBLEMA
1.12.1 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.
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.
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.
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.
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
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].
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].
12
CAPITULO 2. MARCO TEÓRICO
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’.
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.
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
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].
14
CAPITULO 2. MARCO TEÓRICO
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
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.
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.
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.
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].
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.
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
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
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.
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].
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).
“Google Drive is the most ingenious tool that has been created since the internet!
21
CAPITULO 3. PROCESO DE EVALUACIÓN DE SERVICIOS WEB
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.
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:
[“MongoDB”, “has”, “been”, “is”, “does”, “not”, “very”, “and ”, “to”, “of ”, “an”, “for”, “use”, “useful ”,
“easy”, “incredible”, “storage”, “software”, “support”, “large”, “amount”, “requests”]
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.
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 _ _
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].
• 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.
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
“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].
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
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
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.
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.
27
CAPITULO 3. PROCESO DE EVALUACIÓN DE SERVICIOS WEB
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].
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
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.
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.
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.”
31
CAPITULO 4. SISTEMA DE EVALUACIÓN DE CALIDAD DE SERVICIOS
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.
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
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.
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.
35
CAPITULO 4. SISTEMA DE EVALUACIÓN DE CALIDAD 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.
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/
37
CAPITULO 4. SISTEMA DE EVALUACIÓN DE CALIDAD DE SERVICIOS
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.
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.
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
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)
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.
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.
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
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.
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.
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.
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.
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.
[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.
[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
[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.
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.
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.
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.
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
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.
Número de comentarios
Positivos 242
Negativos 116
Neutros 56
49
Anexos
B
Asesor Externo
50