2 UN GESTOR DE EXPERIÈNCIES SOA. EMOCIONS … un gestor de experiÈncies soa. extracciÓ...
Transcript of 2 UN GESTOR DE EXPERIÈNCIES SOA. EMOCIONS … un gestor de experiÈncies soa. extracciÓ...
TEXT2EMOTION: UN GESTOR DE EXPERIÈNCIES SOA. EXTRACCIÓ D’EMOCIONS PER AL SUPORT A LA GESTIÓ DE RELACIÓ
AMB CLIENTS
MemòriadelProjecteFideCarrera
d'EnginyeriaenInformàtica
realitzatper
RodolfoGuichónAguilaridirigitper
JoanSerratGual
Bellaterra,22dejunyde2011
ii
Alosquedansentidoatodo,SusiyPol.
iii
“Laspersonascompranemocionalmenteyjustificanlógicamente”
BuckRodgers,IBM
iv
ÍndiceGeneral
Resumen
Resum
Summary
I Introducción
1. Introducciónyobjetivos
1.1. Objetivodelproyecto.........................1.2. EstadodelArte.............................1.3. EstudiodeViabilidad...........................1.4. Planificación..............................
2. Fundamentostecnológicos
2.1. ¿QuéesCloudComputing?......................2.2. ¿QuéesServiceOrientedArchitecture?...............2.3. Plataformasdedesarrollo.......................
2.3.1. GoogleAppEngine.......................2.3.2. AmazonEC2..........................2.3.3. Force.com............................
II Serviciosdeclasificacióndeexperiencias
3. Modeladoyclasificacióndelasemociones
3.1. Introducción..............................3.2. Parteemocionaldelasexperiencias..................3.3. Clasificacióndelasexperiencias...................
3.3.1. Preprocesodetextos.....................3.3.2. Cambioderepresentación..................3.3.3. Clasificación...........................
viii
ix
x
1
2
257
11
13
131517171819
21
22
222225252729
v
4. Desarrollodelosserviciosdeclasificación
4.1. Introducción...............................4.2. Modelado................................4.3. Ensamblado...............................4.4. Despliegue................................
III Casosdeestudio
5. Caso1:DepartamentoComercialdeunaindustriaquímica
5.1. Introducción...............................5.2. Acciónyreacción:creandotareasapartirdevaloracionesde
experiencias...............................5.3. EntornodetrabajoenForce.com...................
5.3.1. Aplicación............................5.3.2. Objetospersonalizables....................5.3.3. Interfacesdeusuario......................5.3.4. Accesoaserviciosexternos..................
5.4. Resultados................................
6. Caso2:CommunityManagement
6.1. Introducción...............................6.2. Acciónyreacción:creandotareasapartirdevaloracionesde
experiencias...............................6.3. EntornodetrabajoenForce.com...................
6.3.1. Aplicación............................6.3.2. Objetospersonalizables....................6.3.3. Interfacesdeusuario......................6.3.4. Accesoaserviciosexternos..................
6.4. Resultados................................
Conclusiones
Bibliografía
31
31323444
46
47
47
48494951525558
61
61
62636363646666
68
69
vi
Índicedefiguras
Figura1.1.1CustomerExperienceManagement..................... 2Figura1.1.2Esquemadelasoluciónpropuesta.......................3Figura1.2.1CloudComputing................................ 6Figura2.1.1Capasdeserviciosdelanube......................... 14Figura2.2.1Zonadeafectacióndeloscontratos..................... 15Figura2.2.2Zonadeafectacióndelacoplamiento..................... 15Figura2.2.3ZonadeAfectacióndelaabstracción..................... 16Figura2.2.4Localizacióndeservicios........................... 16Figura2.2.5Composicióndeservicios........................... 16Figura2.3.1.1LogotipoGoogleAppEngine........................ 17Figura2.3.2.1LogotipoAmazonWebServices...................... 18Figura2.3.3.1LogotipoForce.com............................. 20Figura3.2.1Factoresqueafectanalestadoemocional.................. 23Figura3.2.2Cuadrantesemocionales............................ 23Figura3.3.1.1Raíces,morfemas,sufijos,prefijoseincrementos............. 26Figura3.3.2.1ObtencióndelamatrizDocumento‐Palabra................27Figura3.3.2.2LatentSemanticAnalysis.......................... 28Figura3.3.3.1k‐nearestNeighbor............................. 29Figura4.1.1MetodologíadedesarrolloSOA........................ 31Figura4.2..1ModelodeProcesodeEntrenamiento.................... 33Figura4.2.2ModelodelProcesodeClasificación..................... 34Figura4.3.1ContratodeRequerimientodeServicios................... 35Figura4.3.2ContratodeRequerimientodeServicios................... 36Figura4.3.3DiagramadeUnidadesFuncionales...................... 37Figura4.3.4DiagramadeTopologíadeServicios..................... 37Figura4.3.5DiagramaComponenteAbstracto...................... 38Figura4.3.6Especificación:Parsing............................. 39Figura4.3.7Especificación:Analysing........................... 39Figura4.3.8Especificación:Collecting........................... 40Figura4.3.9Especificación:Training............................ 40Figura4.310Especificación:Classifying.......................... 40Figura4.3.11ServiceDataModel............................. 41Figura4.3.12ServiceProviders............................... 42Figura4.3.13Text2EmotionServiceProvider....................... 42Figura4.314SubsistemaText2Emotion.......................... 43Figura4.41Levantamientodelainstanciadelservidordeaplicaciones........ 44Figura4.42Consoladelservidordeaplicaciones..................... 45Figura4.43DesplieguedelosserviciosText2Emotion.................. 45Figura4.44Webdelserviciodesplegado......................... 45Figura5.21Recordatoriodetareaarealizar....................... 49Figura5.3.11Definicióndeaplicación........................... 49
vii
Figura5.3.12Definicióndeficha.............................. 50Figura5.3.13Aplicaciónfinal................................ 50Figura5.3.21Definicióndellamada............................ 51Figura5.3.22CamposdeLlamada............................. 52Figura5.3.23Desencadenadordellamada........................ 52Figura5.3.31PantalladeLlamadas............................ 53Figura5.3.32PantalladeEmails.............................. 53Figura5.3.33PantalladeVisita............................... 54Figura5.3.34PantalladeReuniones............................ 54Figura5.3.35PantalladeFax................................ 55Figura5.3.36PantalladeSeguimiento........................... 55Figura5.3.41Accesoasitioremoto............................ 56Figura5.3.42Paso1:SeleccionarficheroWSDL...................... 56Figura5.3.43Paso2:AnálisisdelficheroWSDL...................... 57Figura5.3.44Paso3:GeneracióndelasclasesApex................... 57Figura5.3.45SeguimientodeTrabajosdeApex...................... 57Figura5.3.46Tareageneradaautomáticamente..................... 57Figura5.41Caso1:MatrizdeConfusión.......................... 59Figura5.42Caso1:MatrizdeErrorRelativo........................ 59Figura5.43Caso1:MatrizdeDesviaciónestándar.................... 59Figura5.44Efectividaddeprocesocomercial....................... 60Figura5.45EfectividadestimadaconelusodeText2Emotion.............. 60Figura6.3.11AplicaciónFinal................................ 63Figura6.3.31PantalladeHoteles.............................. 64Figura6.3.32PantalladeOpiniones............................ 64Figura6.3.33PantalladeRespuestas............................ 65Figura6.3.34Pantalladedefiniciónderespuestas..................... 65Figura6.3.35Pantalladeprogramacióndedescargas.................. 66Figura6.3.36Caso2:Matrizdeconfusión......................... 67Figura6.3.37Caso2:MatrizdeErrorRelativo....................... 67Figura6.3.38Caso2:MatrizdeDesviaciónEstándar................... 67
viii
Resumen
Customer ExperienceManagement (CEM) se ha convertido en un factor clave para eléxito de las empresas. CEM gestiona todas las experiencias que un cliente tiene con unproveedordeserviciosoproductos.Esmuyimportantesabercomosesienteunclienteencada contacto y entonces poder sugerir automáticamente la próxima tarea a realizar,simplificandotareasrealizadasporpersonas.
Enesteproyectosedesarrollaunasoluciónparaevaluarexperiencias.Primerosecreanservicioswebqueclasificanexperienciasenestadosemocionalesdependiendodelniveldesatisfacción,interés,…Estoesrealizadoatravésdemineríadetextos.Seprocesayclasificainformación no estructurada (documentos de texto) que representan o describen lasexperiencias.Seutilizanmétodosdeaprendizajesupervisado.Estaparteesdesarrolladaconunaarquitecturaorientadaa servicios (SOA)paraasegurarelusodeestándares yque losservicios sean accesibles por cualquier aplicación. Estos servicios son desplegados en unservidordeaplicaciones.
Enlasegundapartesedesarrolladosaplicacionesbasadasencasosreales.EnestafaseCloudcomputingesclave.Seutilizaunaplataformadedesarrolloenlíneaparacreartodalaaplicaciónincluyendotablas,objetos,lógicadenegocioeinterfacesdeusuario.Finalmentelosserviciosdeclasificaciónsonintegradosalaplataformaasegurandoquelasexperienciassonevaluadasyquelastareasdeseguimientosonautomáticamentecreadas.
ix
Resum
CustomerExperienceManagement(CEM)s’haconvertitenunfactorclauperl’èxitdelesempreses.CEMgestionatoteslesexperiènciesqueunclienttéambunproveïdordeserveïsoproductes.Ésmoltimportantsabercomsónelssentimentsd’unclienteencadacontacteiaixí poder suggerir automàticamente la pròxima tasca a realitzar, simplificant tasquesrealitzadesperpersones.
Enaquestprojecteesdesenvolupaunasolucióperavaluarexperiències.Primerescreenserveïs web que classifiquen experiències en estats emocionals depenent del nivell desatisfacció, interès, … Això és realitzat amb mineria de textos. Es processa i classificainformació no estructurada (documents de text) que representen o descriuen lesexperiències.S’utilizenmètodesd’aprenentatgesupervisat.Aquestapartésdesenvolupadaamb una arquitectura orientada a serveïs (SOA) per assegurar l’ús d’estandars i que elsserveïs siguin accesibles per qualsevol aplicació. Aquests serveïs son desplegats en unservidord’aplicacions.
En la segonapart esdesenvolupados aplicacionsbasadesen casos reals. En aquesta faseCloud computing es clau. S’utilizaunaplataformadedesenvolupamenten líniapara creartotal’aplicacióinclouenttaules,objetes,lògicadenegociiinterfíciesd’usuari.Finalmentelsserveïs de classificació son integrats a la plataforma assegurant que les experiències sónavaluadesyquelestasquesdeseguimientsónautomàticamentecreades.
x
Summary
Customer Experience Management (CEM) is becoming a critical key success factor intoday’sbusiness.Itmanagesallexperiencesthatacustomerhaswithasupplierofgoodsorservices.It’sveryimportanttoknowwhatthecustomerisfeelingineverycontactandthensuggestautomaticallythenextapproachtomake,simplifyingthetaskforahumanoperator.
In this project, we develop a solution for evaluating experiences. First we create webservices that classify the experiences into emotional states depending on satisfaction,interest,...ThisisdoneusingTextMining.Weprocessandclassifyunstructuredinformation(textdocuments)thatrepresentsordescribesexperiences.Asupervisedlearningmethodisused. This part is developed using ServiceOriented Architecture (SOA) to ensure that it’sbasedonstandards,andtheservicesareaccessiblefromanyapplication.Theseservicesaredeployedonanapplicationserver.
Inthesecondpartwedeveloptwoapplicationsbasedonrealcases.Cloudcomputingiskey in this stage. An online development platform is used to create all the applicationincludingtables,objects,businesslogicanduserinterfaces.Finallytheclassificationservicesareintegratedwiththeplatformensuringthattheexperiencesareevaluatedandnexttasksareautomaticallycreated.
1
ParteI
Introducción
2
Capítulo1
Introducciónyobjetivos
CEM(CustomerExperienceManagement)eslagestióndelaexperiencia"global"deunclienteconunproducto,marcaoproveedor.Tienecomoobjetivogestionarlavaloración,durantetodoelciclodevidadelarelación,delospuntosdecontactoentreelclienteyelproveedor:eldeseoonecesidaddelcliente,eldescubrimiento,laatracción,lacompra,eluso,larespuestapostventa,larepetición,el finde la relaciónoelencadenamientoconeldescubrimientodeotrosproductos.Tambiénseencargadeconvertir todaesta informaciónenconocimientonecesarioparaque lasempresasmejorensusprocesosdenegocio.
Figura1.1.1CustomerExperienceManagement
1.1.Objetivodelproyecto
Elobjetivodeesteproyectoesdesarrollarunaaplicacióncapazdevalorarexperienciasygestionar acciones de seguimiento a partir de éstas. Los proveedores podrán automatizarsistemasdeseguimientodelasexperienciasocurridasensusprocesosdenegocioenlazandosussistemasinformáticosactuales.
Elprimerobjetivoproyectoes labúsqueda,configuración,pruebae integracióndeunaaplicación CRM existente a una empresa real. Esta aplicación debe proveer interfacespotentesysegurasparaelaccesoalainformacióndesubasededatos.Senecesitarándatosde contactos, empresas, tareas y eventos con los que interactuarán los servicios devaloración y seguimiento. Además, se desarrollarán nuevas tablas y vistas que seránnecesariasparacubrir lasnecesidadesfuncionalesde laempresaencuestión.NoobstantesemantendráelniveldeabstracciónsuficientedelosserviciosdevaloraciónyseguimientodeexperienciasparaquesepuedaintegrarfácilmenteconcualquierotraaplicaciónCRMoERP.
3
Elsegundoobjetivoeslacreacióndelosserviciosdevaloracióndeexperiencias.Setratade un problema de clasificación. Los métodos de valoración se basarán en datosintroducidos por personal de la empresa: transcripciones telefónicas, actas de reunión,faxes, correos electrónicos, … Primero se obtendrá un conjunto de datos deaprendizaje(GrandTruth)conlosqueseentrenaránlosalgoritmosdetextminingnecesariospara la valoraciónde lasexperiencias.Apartirdeentonces, cadavezque segenereen laempresa una experiencia y ésta sea introducida en el sistema CRM , se disparará unallamadaalserviciodevaloraciónautomáticamente.
El tercero y último objetivo es la creación de los servicios de gestión tareas. Estosservicios deben, de unamanera flexible y automatizada, ayudar a la toma de decisionessobrequé tareas sedeben realizaranteunavaloraciónemocionaldeunaexperienciaquepuede ser tanto positiva (captación, recomendación o promoción) como negativa(destrucción).
Figura1.1.2Esquemadelasoluciónpropuesta
Tantoelsegundocomoterceroobjetivodeesteproyectoplanteanciertasdificultades.Enambosesnecesario:
• Acceder a información de diferentes aplicaciones de empresa(CRM's,ERP's,...).
• ConectarconserviciosdisponiblesenlaWeb(WebServices).
• Crearflujosdenegociodemaneraflexible.
• Permitir queotras aplicacionesaccedana sus servicios independientementedelaplataformaenqueseejecuten.
Parapodersolventarestosrequerimientosseimplementaráunaarquitecturaorientadaaservicios.SOA(ServiceOrientedArchitecture)esunaarquitecturadesistemasquetrataalosprocesosdenegociocomoserviciosatómicos,querealizandemaneraindependientedelosdemás(sin estado) una acciónmuy concreta. Estos servicios pueden ser orquestados para
4
realizar reglas complejas de negocio. Se basa en lenguajes y protocolos estándares quegarantizanlaconectividaddediferentesplataformas.
Algunasdelasventajasdeestaarquitecturason:
• Aperturaaserviciosexternos.
• Reutilizacióndeservicios
• Flexibilidaddelosprocesosdenegocio
• Mejoradelretornodelainversiónenunproyectodedesarrollocómoéste.
SeseguiráelmodelodedesarrolloTop‐Down.Lasfasesparalacreacióndelosserviciosseránlassiguientes:
1. Modelado: Descripción del servicio, susmétodos, la información que necesita(losargumentosdeentrada) yel resultado (la salida). Tambiénenesta fase semodelará la interacción con otros servicios para la creación de funcionescomplejas de negocio. Obtendremos lo que llamaremos 'contratos' para cadaservicio, lo que seria programar para la interface en elmundo de los objetos.Estafase,enelmundoreal,deberíaserrealizadaencolaboraciónconunanalistadenegocio.
2. Implementación: Desarrollo del servicio previamentemodelado. Se utilizará latecnologíadisponiblebasadaenestándares.
3. Despliegue:Se instalaráunservidordeaplicacionesconcapacidadparaoperarcon servicios que puedan ser orquestados para desplegar los serviciosimplementados. También se introducirá estos servicios en un diccionario parapotenciar la re‐utilización de servicios ya implementados. Opcionalmente y encasodenecesidadseutilizarádeunESB(busdemensajes)parafacilitarelaccesoalosserviciosdesdecualquierotrotipodeaplicación.
4. Monitorización:Tráficoycomportamientodelosserviciosdesplegados.
SecrearáparacadaserviciounSLA(ServiceLevelAgreement)conelqueestipularemoslacalidad y disponibilidad del servicio. No existe ninguna normativa al respecto, aunqueexistenorganizacionesqueestánintentandoestandarizarlo.
Finalmente se realizarán pruebas integradas del sistema con las cuales valoraremos latantolafiabilidadyeficienciadelaarquitecturacomoelaciertoobtenidoconlosmétodosdevaloracióndelasexperiencias.
5
1.2EstadodelArte
El concepto de Customer Experience fue acuñado por Pine y Gilmore en 1998 con suartículoenBusinessHarvardReview.
Elfocodelasempresasactualesdebenestarenlosclientes,noenlapropiaorganización.Esteenfoquehacequelaempresatengaunfactordiferenciador,aumentandosusbeneficiosysuvalor.
Losclientesestáncadadíamáspreparadosycapacitadosyademásdisponendetodalainformación que deseen a un clic de distancia. Son clientesmuy sofisticados a los cuales,experienciasquesecreandebensercadavezmásmemorables.Lagestióndelaexperienciaseconvierteenunfactordeinnovaciónclaveenlaempresa.
Todoelloesválidotantoenlarelaciónconclientesparticularescomoempresas(B2B).Alfinal,loscontactosconlaempresaclienteserealizanconpersonas.
Empresasdeéxitoyasebeneficiandeser lasprimerasquegestionan laexperienciadesus clientes. Cada vezmás empresas se darán cuentade la importancia de esta gestión ycadavezserámásdifícildesarrollarexperienciasquelasdiferenciedelasdemás.
Porello,esmuyimportanteobtenerinformaciónmuyprecisadelaexperienciaglobaldenuestroclientes.Elobjetivoclaveesidentificarquéemocionesestamosprovocandoenunaexperiencia y en qué grado. Se necesita unmétodo paramedir ymonitorizar la reacciónemocionaldenuestrosclientes.
ExistenaplicacionesenelmercadollamadasCRM(CustomerRelationManagement)quegestionanlafuerzadeventasdeunaempresa.Elobjetivodeestasaplicacioneseslaventapormediodegeneracióndeoportunidadesqueseconsiguenatravésdeconoceranuestrosclientes por las diferentes formas de contacto que tenemos con ellos, valoramos lo quesabemosdeellos.CEM,encambio,secentraenloquesienten.
Ejemplo de CRM es SalesForce. Más de ochenta mil usuarios avalan su éxito. Es unaaplicación online que tiene como objetivo automatizar la fuerza de ventas. Ofrece a losrepresentantesdeventas,directivosyejecutivosherramientasparadesarrollarconexionesmássólidasconlosclientes,aumentarlastasasdegananciasycerrarmáscontratos.
Además cuenta con una plataforma de desarrollo y desplegue de aplicaciones llamadaForce.com.
Esta plataforma se basa en el modelo de Cloud Computing. Dispone de hardware,softwareyserviciosqueestándisponiblesparaeluso inmediatoyaque,seejecutanenelcloud (Internet). Además el coste de estos servicios es exclusivamente calculado por losrecursosqueseutilizan.
6
Figura1.2.1CloudComputing
CloudComputingestá,cadadíamás,siendoutilizadoporempresasdetodoslostamaños.
Este modelo empieza a reemplazar métodos tradicionales de venta de licencias deaplicaciones. Esto es motivado por unos niveles de productividad, economía y éxito sinprecedentes.
TantoempresascomodesarrolladoresdesoftwarepuedencrearyejecutaraplicacionespersonalizadasenInternetsin lanecesidaddeenfrentarseaaltas inversiones,detiempoydinero,endesarrollodesoftware,adquisicióndehardwareymantenimientodeambos.
Force.componeadisposicióndeldesarrolladorlatecnologíaexistenteenSalesforceCRMparaeldesarrollodeaplicacionesempresarialesaltamentepersonalizables.Estaplataformareúne todos los requerimientos del modelo Cloud Computing. Proveedores de softwarepueden fácilmente desplegar servicios de manera segura, fiable, configurable ypersonalizable.Ademásesfácilmenteintegrableconotrasaplicaciones.
Aúnasí, lasaplicacionesdesplegadasestáncentradas,como lamayoría,en lasaccionesdelaempresaynoenlaexperienciadelcliente.Lainnovacióndeesteproyectoconsisteenagrupardiferentes tecnologíasyconocimientoparapodercrearunasistentequeayudealseguimientodeaccionesymejoreelniveldesatisfaccióndelasexperienciasvividasporlosclientes.
7
1.3.Estudiodeviabilitaddelproyecto
Introducción
Elestudiodeviabilidadpretendeevaluarlasgarantíasdeéxitodelarealizacióndeesteproyecto.Incluyeunestudioqueproponeunasoluciónconceptualalproblemayposiblesalternativasantecontingencias.Ademássedefinenrequisitosdelprroyecto,seevaluanlosriesgosyfinalmentesedecidesielproyectoesviableono.
Tipologíaypalabrasclave
Tipologia: Proyecto informático de desarrollo de un prototipo de sistema de software. Noaplicableadistribuciónibasadoeninvestigación.
Palabras clave:CEM, CRM, ERP, SOA, SAAS, cloud, experiencia, emociones, textmining, latentsemanticindexing.
Descripción
Implementaruna soluciónbasadaen arquitecturaorientada a servicios y cloud computingquepermitalavaloraciónyseguimientodeexperienciasdeclientes.
Evaluaciónderiesgos
El objetivo del proyecto es integrar servicios disponibles en el cloud(internet) con serviciospropios que sean capaces de valorar experiencias en forma de documentos escritos. Para ellopuntualizamoslossiguientesprincipalestareasarealizar:
O1.BuscarunaaplicaciónCRMquepuedaproveerinterfíciespotentesysegurasparaelaccesoalainformacióndesubasededatosatravésdeInternet.
O2.Formarseenaspectosdeprogramación,personalizacióneimplantacióndedichaaplicación.
O3.Buscarempresaodatosrealesconloscualesserealizáelproyecto.
O4.PersonalizarlaaplicaciónCRMalosrequerimientosdelaempresa.
O5.Importardatosrelevantesparalaspruebasdelprototipo.
O6. Analizar y entender los diferentes eventos que debemos considerar como experiencias yrecogerlosdatosrelevatesparalavaloración.
O7.Modelarlosserviciosquedebenrealizarlasvaloraciones.
O7.1. Evaluar algoritmos de text mining para la clasificación de las experiencias a través desimulaciones.
O8.Modelarlosserviciosquerealizanelseguimientodetareas.
O9.Implementarlosservicios.
8
O10.Desplegarlosservicios.
O.10.1.Instalaryconfigurarservidordeaplicaciones.
O11.Probarlaaplicacióndeformaintegradayvalorarresultados
SituaciónActual:
CRÍTICO PRIORITARIO SECUNDARIO RIESGO ESTADO
O1 X MEDIO REALIZADO
O2 X MEDIO REALIZADO
O3 X ALTO REALIZADO
O4 X MEDIO REALIZADO
O5 X MEDIO REALIZADO
O6 X BAJO REALIZADO
O7 X MEDIO REALIZADO
O7.1. X ALTO REALIZADO
O8 X BAJO REALIZADO
O9 X MEDIO REALIZADO
O10 X MEDIO REALIZADO
O10.1. X BAJO REALIZADO
O11 X BAJO REALIZADO
Definiciones,acrònimosyabreviaciones
CRM:CustomerRelationManagement.Aplicacionesquegestionanfuerzasdeventa.
ERP: Enterprise Resource Planning. Aplicaciones que gestionan los recursos de una empresa(gestioncomercial,financiera‐contable,producción).
9
CEM:CustomerExperienceManagement.Gestióndelasexperienciaslosclientes.
SOA: Service Oriented Architecture. Arquitectura de sistemas basada en la orquestación deserviciosatómicos.
Partesinteresadas
Usuario:Aunquenotengamosdeantemanoelcliente,encasodenoencontrarlo,secrearáunafiguraquelorepresentará.
Equipo:
Nombre Descripción Responsabilidad
JoanSerrat Directordeproyecto Supervisa,evalúayorientaeltrabajodelalumno.
RodolfoGuichon Jefedeproyecto Gestionayplanificaelproyecto.
Presentalosresultadosparciales.
RodolfoGuichon Arquitectodesistemas Definelaarquitecturadehardwareysoftwarenecesariasparalarealizacióndelproyecto.
RodolfoGuichon Analista Defineelmodeloadesarrollar.
RodolfoGuichon Programador Desarrollaydesplegalosservicios.
RodolfoGuichon Técnicodepruebas Realizalaspruebasyanalizalosresultados
Productoydocumentacióndelproyecto
Seentregaráunprototipodelosserviciosdesarrollados.
Seelaboraráunamemoriadelproyecto.EnesteseincluiráuntutorialtantodelaconfiguracióndelCRMcomodelainstalacióndelservidordeaplicacionesyserviciosdesplegados.
Contextoactual
Sehabuscadosolucionescreadasparecidasy loúnicoquesehaencontradosonempresasqueofrecenconsultoríaenestostemas.Normalmenteacabanendesarrollosamedidaparaclientesenconcretoynounasolucióngeneralizada.
Porotro ladosehaencontradotrabajosde investigaciónrealizadosen lamateria.Destacan losquetrataneltextminingparasistemasderecomendación.
Normativaylegislación
LOPD
10
NormativadeproyectosdefinaldecarreradelaUAB
Leydepropiedadintelectual
USPatent4,839,853(http://patft.uspto.gov/netagci/nph‐Parser?patentnumber=4839853)
Requerimientosdelsistema
Nohayrequerimientosespecíficospara laejecucióndelprototipoyaqueestádesplegadoenelcloud(Internet).
Alternativasantecontingencias
C1.NoencontrarunaaplicaciónCRMquepuedaproveer interfíciespotentes y segurasparaelaccesoalainformacióndesubasededatosatravésdeInternet.
Solución:DesarrollarlapartenecesariadeunCRMparapoderintergrarseconlosservicios.
Consecuencias:Retrasotemporalgraveenlafaseafectada.
C2.Nodisponerdeunaempresaodatosrealesconloscualesserealizáelproyecto.
Solución: Crear los datos manualmente o a partir de textos encontrados en páginas web deopiniones.
Consecuencias:Dispondríamosposiblementedeun conjuntodepruebamás reducido ymenosuniformeconloquenosdificultaríalaobtenciónderesultadosconcluyentes.
C3.NopoderpersonalizarlaaplicaciónCRMalosrequerimientosdelaempresa.
Solución:AdaptarlosdatosrealesdelaempresaencuestiónallasespecificacionesdelCRM.
Consecuencias:Retrasotemporalmedioenlafaseafectada.
C4.Nopoderimportardatosrelevantesparalaspruebasdelprototipo.
Solución: Exportar la información a ficheros que texto o excel que podamos leer desde losmétodosdeentrenamientodelosserviciosdetextmining.
Consecuencias:Retrasotemporalleveenlafaseafectada.
C5.Losalgoritmosdetextminingparalaclasificacióndelasexperienciasatravésdesimulacionesnoconvergensegúnlosresultadosesperados.
Solución: Búsqueda exhaustiva demétodos de clasificaciónquepuedan adaptarse al problemaplanteado. Se implementará el que mejor resultado consiga y se comentará, en resultados yconclusiones,laeficienciadeestemétodo.
C6.EncontrarlimitacionestécnicasdelsistemaCRMalImplementarlosserviciosdeseguimiento.
Solución: Realizar el seguimiento desde una aplicación creada a tal efecto y que pueda serconsultadaporelCRM.
11
Consecuencias:Retrasotemporalmedioenlafaseafectada.
Conclusionesdeviabilidad
Se considera que es posible cumplir con los objetivos en los tiempos previstos. Hay unacomponentede investigación,queesel textmining, queconllevauncierto riesgo si se intentaconseguir resultados óptimos. Se tratará de implementarmétodos ya estudiados y que hayandemostrado resultados aceptables para conseguir la mínima desviación sobre plan temporalcreado.Elcumplimientodedichoplanpasasobretodoporelesfuerzodelequipoquecomponeesteproyecto.
Finalmente, en función de los objetivos anteriormente analizados, se considera este proyectoviable.
1.4.Planificación
Elproyectocomienzael13deoctubredel2010ytienecómofechaestimadadefinel31deabrildel 2011. Se realizarán reuniones de seguimiento y aprobación de las diferentes fasessemanalmente.El14deenerodel2011sepresentarálamemoriaprevia,sesolicitarálalecturaentre26 y el 31demayo, seentregará lamemoriaentreel 17 y22de junio y se realizará lalecturaentreel27dejunioyel8dejuliode2011.(Verdetalleencap.4)
Nº Tareasarealizar Duración Previo
1 Asignaciónymatriculacióndelproyecto 2h
2 Planificación 21h
3 Estudiodeviabilidad 20h 1
4 Aprobacióndelestudiodeviabilidad 1h 3
5 Análisisdelaaplicación 58h
6 Estudioprevio 40h 4
7 Arquitecturadelsistema 5h 6
8 Análisisderequerimientos 10h 7
9 Análisislegal 2h 8
10 Aprobacióndelanálisis 1h 9
11 Diseñodelaaplicación 126h
12 Diseñodelasinterfícies 20h 10
13 Diseñodelasentidadesdelaaplicación 10h 12
14 Diseñodelosservicios 80h 13
15 Diseñodelostests 10h 14
16 Restriccionesdesoftwareyhardware 2h 15
17 Restriccionesdeseguridad 2h 16
18 Cumplimientosdenormativaylegislación 1h 17
19 Aprobacióndeldiseño 1h 18
12
20 Desarrollodelaaplicacion 121h
21 PersonalizacionCRM 40h 19
22 DesarrolloServiciosdeValoración 60h 21
23 DesarrolloServicionsdeSeguimiento 20h 22
24 Aprobacióndeldesarrollo 1h 23
25 Desplieguedelaaplicación 8h
26 Configuracióndelservidordeaplicaciones 5h 24
27 Despleguedelosservicios 2h 26
28 Aprobacióndeldespliegue 1h 27
29 Testymonitorización 41h
30 Testsindividuales 16h 28
31 PruebaIntegrada 16h 30
32 Pruebadestress 8h 31
33 Aprobaciondecontroldecalidad 1 32
34 Elaboracióndelamemoria 40h 33
35 Presentaciónydefensadelproyecto 1h 34
13
Capítulo2
Fundamentostecnológicos
2.1.¿QuéesCloudComputing?
Introducción
Cloud computing es unmodelo de pago por uso para poner a disposición, demaneracompartida, recursos computacionales (redes, servidores, almacenamiento, aplicaciones,servicios)bajodemanda.Estosrecursospuedenserdadosdealtaydebajaconunmínimoesfuerzo o interacción por parte del proveedor. El modelo de nube promueve ladisponibilidadytienecincocaracterísticasfundamentales:
• Autoservicio bajo demanda: Un consumidor puede tener acceso unilateral acapacidadcomputacionalsininteracciónhumanaconelproveedordeservicios.
• Heterogeneidad:Losserviciosestándisponiblesenlaredysonaccesiblesatravésdeestándaresquehacenposible la conexióndesdediferentesplataformasdeclientes(móviles,portátilesytabletas).
• Deslocalizaciónderecursos:Losrecursospuestosadisposiciónporlosproveedoresde servicios utilizan el modelo de multipropiedad. Recursos físicos y virtuales sondinámicamente asignados y reasignados según las peticiones del cliente. Lamayorpartedelasveceselclientenotienecontroloconocimientodelalocalizaciónfísicadelosrecursosalosqueaccede.
• Escalabilidad. La capacidad computacional provista puede ser rápidamenteaumentadaobajada segúnnecesidad.Muchas veces,paraelusuario, la capacidadpareceinfinita.Puedeusarcuandoycuantoquiera.
• Pagoporuso:Elcosteparalosusuariosserigenpormodelosdepagoporserviciooenbaseapublicidad.
Clasesdecloudcomputing
Existendiferentestiposdecloudcomputingsegúnsupropiedadycomunidaddeusuarios:
• Nubesprivadas:Lainfraestructuraespropiedaddeunaorganizaciónyutilizadaporusuariospertenecientesaésta.
• Nubescomunitarias:La infraestructuraescompartidapormuchasorganizacionesysoportaunacomunidadespecíficaquecomparterecursos.
• Nubes públicas: La infraestructura es propiedad de una organización y es vendidacomoservicioalpúblicoengeneral.
• Nubes híbridas: La infraestructura está formada por otras nubes, pero estápresentadacomounaúnica.
14
ServiciosenelCloud
LosserviciosofrecidosporCloudcomputingsepuedesegmentaren11categorías:
• Storage‐as‐a‐service: Capacidad de almacenar información que físicamente existeen un servidor remoto pero es vista lógicamente como un recurso local paracualquieraplicaciónquenecesiteutilizarla.
• Database‐as‐a‐service:Serviciodeaccesoabasesdedatosremotas,compartiéndolaconotrosusuariosypuestasadisposicióncomosifuesenlocales.
• Information‐as‐a‐service: Habilidad de consumir cualquier tipo de información atravésdeinterfacesbiendefinidas.
• Process‐as‐a‐service: Recurso remoto capaz de conectar otros recursos, comoserviciosydatos,paracrearprocesoscomplejosdenegocio.
• Application‐as‐a‐service:AplicacionespuestasadisposicióndelusuarioatravésdelaWeb, normalmente a través de navegadores. También es conocido como SaaS(SoftwareasaService).
• Platform‐as‐a‐service:Plataformaremotaqueincluyeserviciosparaeldesarrollodeaplicaciones, interfaces y bases de datos. Esta categoría es la utilizada para larealizacióndepartedeesteproyecto.
• Integration‐as‐a‐service: Servicios de integración capaces de integrar aplicaciones,mediarinterfacesycontrolarsecuenciasdeprocesos.
• Security‐as‐a‐service: Habilidad de proveer seguridad en Internet a través deserviciosdeidentificaciónyvalidación.
• Management‐as‐a‐service: Servicio de gestión de nubes. Tratan tipologías,virtualización,utilizaciónderecursosydisponibilidad.
• Testing‐as‐a‐service: Sistemas de pruebas de software y arquitecturas disponiblesenformadeserviciosremotos.
• Infrastructure‐as‐a‐service: Habilidad de acceder a recursos computacionalesremotos.Setieneacceso,normalmente,aunamáquinavirtualpropia.
Figura2.1.1Capasdeserviciosdelanube
15
2.2.¿QuéesSOA?
Service Oriented Architecture es una arquitectura de sistemas con la cual se crean yutilizanprocesosdenegocioatravésdelautilizacióndeservicios.
Unservicioesuncomponentedesoftwareytienelassiguientepropiedades:
1. Estádefinidoporuna interfazquees independientede laplataformadesdedondeseutilice.
2. Esaccesibleatravésdeunared.
3. Lasoperacionesdefinidasenlainterfazllevanacabooperacionesdenegocioatravésdeobjetosdenegocio.
4. Las interfaces e implementaciones pueden ser extendidas en tiempo deejecución.
Estaarquitecturarequierequelosservicioscumplanlossiguientesprincipios:
• Contratos estandarizados: Los servicios deben tener contratos que de una formaestándar describan la funcionalidad, la representación de los datos y la política deservicio.
Figura2.2.1Zonadeafectacióndeloscontratos
• Acoplamientodébil:Parapodermaximizar lareutilización losserviciosestosdebenser creados conelobjetivodepoder interactuar concualquierotro servicio y vice‐versa.Esnecesariominimizarelniveldedependenciaentrecomponentes.
Figura2.2.2Zonadeafectacióndelacoplamiento
16
• Abstracción de servicios no esenciales: Es necesario ocultar la complejidad de laimplementación y detalles específicos de los servicios como detalles deprogramación, sistemas operativos, funciones auxiliares y solo hacer visible lasfuncionesimprescindiblesparasuuso.
Figura2.2.3ZonadeAfectacióndelaabstracción
• Reutilización:Lareutilizaciónesunfactorclaveenlaarquitectura.Sedebencrearlos
serviciosparaquepuedanserutilizadosporotrosservicios.
• Autonomía: Representa el grado de independencia de la implementación de unservicio. Si otros servicios dependen de detalles de implementación y no de lainterfazsecrearáunaltoniveldedependencia.
• Minimización de estado: La escalabilidad depende, en gran medida, de que losservicios mantengan el mínimo estado posible, es decir, no mantener recursosocupadosmásalládesuutilización.
• Localizables: Debe existir un diccionario para poder descubrir y localizar serviciosexistentes.Debecontenerinformaciónsuficienteparaconseguiresteobjetivo.
Figura2.2.4Localizacióndeservicios
• Servicioscompuesto:Lacapacidadderesolverproblemascomplejosapartirserviciosqueresuelvenproblemasmáspequeños.
Figura2.2.5Composicióndeservicios
17
2.3.Plataformadedesarrollo
Platform‐as‐a‐service,porun lado, indicaquese tratadeunaplataformaqueprovee lainfraestructuranecesariaparaeldesarrollodeaplicacionesdesoftwarey,porotrolado, lapalabra Service indica que esta infraestructura es accesible a través de internet y que sumodalidaddepagoesporuso. Sehanvalorado tresposiblesplataformaspertenecienteaestetipodeNubequesedescribenacontinuación.
2.3.1.GoogleAppEngine1
GoogleAppEnginepermitecrearaplicacioneswebenlosmismossistemasescalablesconlosque funcionan lasaplicacionesdeGoogle. Sepuedecrear,mantener y actualizarestasaplicaciones y aumentar el tráfico y las necesidades de almacenamiento de datos bajodemanda.
Google App Engine admite aplicaciones escritas en varios lenguajes de programación.GraciasalentornodetiempodeejecuciónJavadeAppEnginesepuedecrearunaaplicacióna través de tecnologías Java estándar, que incluyen JVM, servlets Java y el lenguaje deprogramaciónJavaocualquierotrolenguajequeutiliceunintérpreteocompiladorbasadoen JVMcomo, por ejemplo, JavaScript oRuby.AppEngine tambiénofreceunentornodetiempo de ejecución Python dedicado, que incluye un rápido interprete Python y labibliotecaestándarPython.LosentornosdetiempodeejecuciónJavayPythonsegeneranparagarantizarquetuaplicaciónseejecutadeformarápida,seguraysininterferenciasdeotrasaplicacionesenelsistema.
Con App Engine, sólo se paga lo que se utiliza. No existen costes de configuración nitarifas recurrentes. Los recursos que utiliza una aplicación, como por ejemplo elalmacenamientoyelanchodebanda,semidenporgigabytesysefacturansegúntarifas.Secontrola la cantidad máxima de recursos que consume cada aplicación, de modo quesiemprepermanezcandentrodecadapresupuesto.
AppEngineincluyelassiguientesfunciones:
• Servidor web dinámico, totalmente compatible con las tecnologías web máscomunes.
• Almacenamientopermanenteconfuncionesdeconsulta,ordenytransacciones.• Escaladoautomáticoybalanceodecarga.• APIparaautenticarusuariosyenviarcorreoelectrónicoatravésde lascuentas
deGoogle.• un completo entorno de desarrollo local que simula Google App Engine en el
equipolocal.• tareas programadas para activar eventos en momentos determinados y en
intervalosregulares.
Figura2.3.1.1LogotipoGoogleAppEngine
1Adaptadodesdehttp://code.google.com/intl/es/appengine/docs/whatisgoogleappengine.html
18
2.3.2.AmazonEC22
Amazon Elastic Compute Cloud (Amazon EC2) es un servicio web que proporcionacapacidadinformáticacontamañomodificableenlanube.Sehadiseñadoconelfindequelainformáticawebresultemássencillaalosdesarrolladores.
La sencilla interfaz de servicios web de Amazon EC2 permite obtener y configurarcapacidad con una fricción mínima. Proporciona un control completo sobre sus recursosinformáticosypermiteejecutarseenelentornoinformáticoacreditadodeAmazon.AmazonEC2 reduce el tiempo necesario para obtener e iniciar nuevas instancias de servidor acuestión de minutos, lo que permite escalar con rapidez su capacidad (aumentarla oreducirla)cuandocambienlosrequisitosinformáticos.AmazonEC2permitepagarsóloporlacapacidad que realmente utilice. Amazon EC2 proporciona a los desarrolladores lasherramientasnecesariasparacrearaplicacionesresistentesaerroresyparaaislarsede loscasosdeerrormáscomunes.
AmazonEC2presentaunentornoinformáticovirtual,quepermiteutilizarinterfacesdeserviciowebparainiciarinstanciascondistintossistemasoperativos,cargarlasconsuentornodeaplicacionespersonalizadas,gestionarsuspermisosdeaccesoalaredyejecutarsuimagenutilizandolossistemasquedesee.ParautilizarAmazonEC2sesiguenlossiguientespasos:
• Seleccionarunaimagendeplantillapreconfiguradaparapasaraestaractivodeinmediato.ObiencrearunaAMI(AmazonMachineImage)quecontengasusaplicaciones,bibliotecas,datosyvaloresdeconfiguraciónasociados.
• ConfigurarlaseguridadyelaccesoaredensuinstanciadeAmazonEC2.• Seleccionarlostiposdeinstanciasysistemasoperativosquedeseey,acontinuación,
iniciar,finalizarysupervisartantasinstanciasdesuAMIcomoseanecesario,atravésdelasAPIdeserviciowebolavariedaddeherramientasdegestiónproporcionadas.
• Determinarsideseaunaejecuciónenvariaslocalizaciones,utilizarpuntosfinalesdeIPestáticosoadjuntaralmacenamientodebloquescontinuoasusinstancias.
• Pagarsóloporlosrecursosquerealmenteconsuma,comolashorasdeusodeinstanciasolatransferenciadedatos.
Figura2.3.2.1LogotipoAmazonWebServices
2Adaptadodesdehttp://aws.amazon.com/es/ec2/
19
2.3.3.Force.com[8]
Force.comesdiferentedelasotrasplataformasporqueestáenfocadaaaplicacionesdenegocios. Force.com es parte de Salesforce.com que empezó como un CRM (CustomerRelationManagement).Force.com,noobstante,sehaalejadodelCRMparapoderofreceruna infraestructura completa para el desarrollo de cualquier aplicación de negocio quecombinalacapacidaddeconfiguraciónycodificación.EstainfraestructuraesofrecidacomoservicioatravésdeInternet.
SeenumeranacontinuaciónalgunadelascaracterísticasfundamentalesdeForce.com.
Multipropiedad
Multipropiedad es un concepto abstracto, pero representa un beneficio para losdesarrolladores. Los clientes acceden a una infraestructura compartida con metadatos ydatosalmacenadosenlamismabasededatoslógica.Lamultipropiedadimplica:
• Infraestructuracompartida:Todoslosclientescompartenlamismainfraestructura.• Versión única: Sólo existe una versión de Force.com. La misma plataforma es
utilizadaparacualquieraplicaciónyparacualquiernúmerodeusuarios.• Mejoras continuas a coste cero: Cuando Force.com es actualizado para incluir
mejorasoarreglos,estaacciónestransparenteparalosusuariosyseaprovechandeellainstantáneamente.
Basededatosrelacional
ElcorazóndeForce.comesunabasededatosrelacionalprovistacomoservicio.AcadaclienteopropietarioForce.comproveeunabasededatosqueestáintegradaconesrestodela plataforma. Se acaban las tareas de configuración, optimización y copias de seguridadnecesariasenotrasplataformas.
Metadatosdeclarativos
Casi todas las personalizaciones configuradas o codificadas en Force.com estándisponiblesatravésdecontratosdeaccesoenformatoXMLquepermitenelaccesoatravésde servicios web. Esto permite la configuración de entornos idénticos o integración consistemasdecontrol.
Lenguajedeprogramación
Force.com provee su propio lenguaje de programación, llamada Apex. Peste lenguajepermite al desarrollador interactuar con características de la plataforma, incluyendo lasinterfaces de usuario. Se parece al Java e incluye comandos de acceso a base de datos.Puedeserescritovíawebotravésdeunplug‐indeEclipse
20
Force.comofrececuatrograndescategoríasdeservicios.
Basededatos
Force.com está construido alrededor de una base de datos relacional. Permite ladefinición de tablas personalizadas con hasta 500 campos. Cada campo contiene datosfuertemente tipados, puede contener reglas de validación y se guarda el histórico de loscambiosrealizados.
Se pueden crear esquemas de datos complejos relacionando tablas. Los datos ymetadatosestánprotegidosdeborradosaccidentalesmedianteelusodeunapapeleradereciclaje. Los datos pueden ser importados vía utilidades de la plataforma o a través deaccesovíaserviciosweb.
LógicadeNegocio
Apexesel lenguajeconelquesecrealógicadenegocioenForce.com.Sepuedencrearclaseseinterfaces.Soportaelmodelodeprogramaciónorientadoaobjetos.LafilosofíadedesarrollobasadoenpruebasestámuyintegradoaForce.com.Métodosdepruebaspuedenser automáticamente manejados por Force.com y se pueden obtener información derendimiento.
Interfacesdeusuario
Existendos formasde crear interfacesdeusuario:Plantillas yVisualforce. Lasplantillassoncreadasapartirdelosmodelosdedatos, incluyendolasvalidacionesy,atravésdeuneditor,sepuedemodificarlainterfaz.
Visualforcepermitealusuarioconstruirinterfacesdeusuariopersonalizadasatravésdelusodecomandosquepuedenserincluidosenunapáginawebpropia.
Integración
Force.com soporta la integración con un amplio abanico de tecnologías, la mayoríabasadosenprotocolosymensajesestándares:
• ApexWebServicespermitecontrolremotodedatos,metadatosyprocesosatravésdeserviciosweb.
• TodalalógicadenegocioprogramadaenApexpuedeserexpuestacomoservicioweb.
• Sepuedeaccederdesdelaplataformaaserviciosexternos.
LaplataformaForce.comhasidolaescogidaparaeldesarrollodepartedeesteproyectodebidoasuafinidadconlosobjetivosplanteados.
Figura2.3.3.1LogotipoForce.com
21
ParteII
Serviciosdeclasificacióndeexperiencias
22
Capítulo3
MODELADOYCLASIFICACIÓNDELASEMOCIONES
3.1.Introducción
“Cuandounclienteviveunaexperienciasublime,quiererepetir.Nuestrosclientesnosonsólo empresas o personas a las que vender, son a la vez, nuestros vendedores, nuestrosconsejeros,nuestrossocios.”,ColinShaw.
Lamayoríadeprocesosquelasorganizacionesusannoestándiseñadospensandoenelcliente. El foco de las empresas actuales debe estar en los clientes, no en la propiaorganización.Esteenfoquehacequelaempresatengaunfactordiferenciador,aumentandosusbeneficiosysuvalor.
Losclientesestáncadadíamáspreparadosycapacitadosyademásdisponendetodalainformación que deseen a un clic de distancia. Son clientesmuy sofisticados a los cuales,experienciasquecreamosdebensercadavezmásmemorables.Todoelloesválidotantoenla relación con clientes particulares como empresas (B2B). Al final, los contactos con laempresaclienteserealizanconpersonas.
Lagestióndelaexperienciaesunfactordeinnovaciónclaveenlaempresa.
Empresasdeéxitoya sebeneficiandepodergestionar lasexperienciasde sus clientes.Cadavezmásempresassedaráncuentade la importanciadeestagestiónycadavezserámás difícil desarrollar experiencias que las diferencie de las demás. Por ello, es muyimportanteobtenerinformaciónmuyprecisadelaexperienciaglobaldenuestroclientes.
Elobjetivoclaveesidentificarquéemocionesestamosprovocandoenunaexperienciayenquégrado.Necesitamosunmétodoparamedirymonitorizar la reacciónemocionaldenuestrosclientes.
3.2.Parteemocionaldelasexperiencias
Se hamodelado un sistema de cálculo de la parte emocional de la experiencia de unclienteapartirdeunmétodocreadoporColinShaw[1].Estesistemaproveeunaestimaciónfinanciera de la implicación de tener una experiencia emocional en particular. Ha sidodiseñadoparaserutilizadoenprocesosdenegocioysueficaciahasidotestadayprobada.
Unaexperiencia esuna interacciónentreunaorganización yun cliente. Es la sumadelrendimientodelosaspectosfísicosdelaorganización(precio,producto,localización,…),lossentidosestimuladosylasemocionesprovocadas.Todoellocontrastadoconlaexpectativadelclientedurantetodalainteracción.
Setratadeemociones:Lasemocionesmanejanelcomportamientohumano.
23
Debemos empezar por entender el estado emocional de nuestros clientes y controlartantolaexperienciaensimismacómoloshechospreviosyposterioresquepuedanafectaralamisma.
Elestadoemocionaldeunclientevienedadopor:1. Rasgosinherentes:Elpropiocarácterdecadapersona.2. Humor:Estadosemocionalesduraderos.3. Emociones:Sentimientosquetienenlugarenuncortoperiododetiempo.
Figura3.2.1Factoresqueafectanalestadoemocional
Cadaexperienciatieneunaextensiónquevamásalládeellamisma.
Lasfasesquedefinenunaexperienciaentodasuextensiónson:
1. Hechosexternosquepuedanafectaralhumor2. Experienciaprevia: Influencias externasdenuestra experienciaquepuedenafectar
directamentealresultadodelamisma.3. LaExperiencia4. Experienciaposterior:Hechosnocontroladosquepuedenllegarahacerpartedela
experienciaglobal.Todaestainformaciónesrelevanteenelmomentodevalorarunaexperiencia,aunqueno
siempresedisponendeellaensuglobalidad.Para facilitar la clasificación se han segmentado las emociones en 4 cuadrantes (Fig.
3.2.2):
Figura3.2.2Cuadrantesemocionales
24
5. CuadrantedeDestrucciónCuadrante formado por experiencias de clientes no satisfechos en general, es difícil
eliminar pero sí se debe controlar. Es necesario tomar acciones para transformar estosclientes insatisfechos a través de nuevas experiencias que le transmitan interés,mejora yrentabilidad.
Ejemplosdeexperienciasdestructivas:• Entregasnorealizadasatiempo,odeformaincompleta.• Procesosqueconllevanmuchomástiempodelqueelclienteesperaba.• Impotenciaantelafaltadeeficacia.• Faltadepersonasdecontactoapropiadas.• Inexistenciadeloquebuscaelcliente.• Sentirseignorado,abandonado.• Noentenderosatisfacerlasexpectativasfísicasyemocionalesdelcliente.• Traspasoconstantederesponsabilidades.• Involucraraclientesenprocesosquesólobeneficianlaempresa.• Nomantenercompromisos.• Deshonestidad.• Engaño.
6. CuadrantedeCaptación
Experienciasquehanprovocadounestímulopositivo, provocaroninterés.Laspersonasque vivieron esta experiencia son candidato a ser clientes, si ya no lo son, y ademásconvertirseenclientesfieles.
Paragenerarexperienciasdecaptaciónsedebe:• CrearNovedades.• Sorprender.• Hacerparticipantealclienteeneldesarrollodenuevosproductos.• Entenderelperfildelaaudiencia.• Provocarsentimientosdesuperación.• Cambiarlasexperienciasregularmente.• Controldeltiempo.• Personalquetransmitaenergía.• Transmitirsentidodevalorañadido.
7. CuadrantedeRecomendación
Experiencias que transmiten calidad, seguridad y valor. Transforman clientes puntualesenclientesfielesyquerepiten.
Ejemplosdeaccionesqueprovocanestasexperiencias:• Demostrarseguridad.• Escucharalcliente.• Anticiparsealasnecesidadesdelcliente.• Centrarlaatenciónenelcliente.• Cumplirloscompromisospactados.• Sertransparente.• Noabrumaralclientecondemasiadasexperienciasalavez.• Enfocarlasaccioneshacialasexpectativasdelcliente.• Captartodalaatenciónposible.• Incentivarlafidelidad.
25
8. CuadrantedePromociónExperiencias que transforman clientes en promotores. Son aliados, fans. Recomiendan,
defiendenyayudanacrecer.Algunasaccionesnecesariasparalograrestasexperienciasson:• Crearrelacionesduraderasconelcliente.• Conoceremocionalmentealcliente.• Irmásalládelasexpectativasdelcliente.
3.3.Clasificacióndelasexperiencias
La compañías generan un elevadísimo número de experiencias diarias con los cliente.Estas experiencias son generadas por llamadas, correos electrónicos, documentos, etc.Todaslasexperienciaspuedenserrepresentadasporundocumento,yaseaelmismoemail,una transcripción de una llamada, una minuta de una reunión, etc. Por ello, se hadesarrollado una herramienta capaz de procesar estos documentos que contieneninformaciónnoestructuradayhacerunaclasificaciónautomáticaencontrandosignificadoalaspalabras.Lasventajasdeestaherramientasonelahorrodel tiemponecesariosparaelanálisismanualdelasexperienciasylaoptimizacióndelosprocesosdereacciónanteellas.Elobjetivoesclasificarlostextosdelosdocumentosenloscuatroscuadrantesemocionales.
Lossistemasdeclasificacióndetextosexistentessebasan,ensumayoría,enespaciosdevectores. Estos vectores representan a los documentos a través de las palabras quecontienen.Dadalaaltadimensionalidaddeestosvectores,seutilizanmétodosdereduccióndedimensionescomoLatentSemanticIndexingbasadoenSingleValueDecompositionparaello. Este método es parte del sistema de clasificación desarrollado. Se ha planteado unclasificadorgenéricoindependientedelorigenydeltipodeldocumento.
Para clasificar los textos ha sido necesario hacer un preproceso y realizar cambios derepresentaciónparafacilitarlaaplicacióndemétodosdeentrenamientoyclasificación.
3.3.1.Preprocesodelosdocumentos[23]
TextNormalizationElprimerpreprocesoque seha creadoha sidoparanormalizar los textos.Dadoel origenincierto de los documentos, debemos unificar codificación de carácteres, acentos,mayúsculas o minúsculas, posibles faltas de ortografía y contracciones de las palabrasutilizadas normalmente en correos electrónicos y mensajes sms. Este proceso se hadenominadoTextNormalization.Stop‐wordsRemovalDespués de normalizar el documento, el preproceso Stop‐words Removal elimina deldocumentosímbolos,letrassueltas,signosypalabrasquenoaportaninformaciónrelevanteal proceso de clasificación. Estos datos, que no aportan información, son enumeradospreviamentea la implementaciónyestán separadospor idioma.Paraesteproyecto sehapreparado el español y el inglés. Por ejemplo, se han creado enumeraciones depreposicionescandidatasaeliminarsedelosdocumentos:Prepositions_Es = {a, ante, bajo, cabe, con, contra, de, desde, en, entre, hacia, hasta, para, por, según, sin, so, sobre, tras, durante, mediante, pro, vía} Prepositions_En = {a, about, above, across, after, again, against,
26
all, almost, alone, along, already, also, in, at, ago, before, between, by, during, from, to, till, until, past, since, within, among, around, behind, below, beside, close, down, front, of, inside, into, near, next, off, onto, opposite, out, outside, over, round, through, towards, under, up} StemmerSe unifican palabras que puedan tener elmismo significado. Se ha creado un preprocesollamado Stemmer: unificación de palabras de unamisma familia léxica o etimológica. Laspalabraspertenecientesaunamismafamilialéxicacompartenunmismolexemaoraíz,quelapartequelesdasignificado.Cadapalabrapuedecontenerprefijososufijos.Enestecasoloquerealmenteinteresaesquedarseconellexema.SehautilizadoparaelingléselPorterStemmer para los documentos en inglés y una adaptación para el español. La tabla 6.2.1muestraalgunosejemplos.
Figura3.3.1.1Raíces,morfemas,sufijos,prefijoseincrementos
SemanticRelationWordNet es una extensa base de datos léxica en inglés que agrupa substantivos, verbos,adjetivosyadverbiosenconjuntosdesinónimoscognitivos llamadossynsets. Atravésdeluso de la esta base de datos, se analizan las palabras para determinar su categoríamorfológica (substantivo, verbo, adjetivo o adverbio) y además, es posible realizar unanálisissemánticoparatractar:
Homónimos:palabrasquetienenelmismosignificandoperodistintaetimología,portanto,distintosignificado.
Polisemias:unamismapalabraosignolingüísticotienevariasacepciones.
Sinónimos: palabras iguales que tienen un significado similar o idéntico entre sí, ypertenecenalamismacategoríagramatical.
Hipónimos:palabrasqueposeentodoslosrasgossemánticos,osemas,deotramásgeneral,suhiperónimo,peroqueañadeensudefiniciónotrosrasgossemánticosqueladiferenciandelasegunda.
N‐GramsSehacreadounpreprocesoquecreaunarepresentacióndegramáticasN‐Gram.SecreanconjuntosdeNpalabras consecutivas formadasapartir dedeslizaruna ventana sobre laspalabrasdelosdocumentos.Ejemplo:
27
Secuencia de palabras: N=2, texto =“es la parte de la palabra” (“es”,”la”),(“la”,”parte”),(“parte”,”de”),(“de”,“la”),(“la”,”palabra”).
Estassecuenciaspuedenagregarinformaciónrelevanteparalaclasificación.SummarizationEslatareaquetienecomoobjetivocrearunaversiónreducidadeltextooriginal.Trataconfrases completas y su espectro es todo el documento. Se ha implementado teniendo encuentalasemánticadelaspalabrasylaposicióndelasfrases.Atravésdeunavaloraciónporpesossepreservanlasfrasesquesuperenunciertoumbral.Estospesosvaloranelcontenidosemánticodelasfrases,sulocalizacióneneltexto,sureiteración,frasesexplicativas,…Segmentation(norealizado)El objetivo de esta tarea es poder segmentar los documentos para obtener frases concontenidossimilares.Lospasosquesesiguenson:
1. Divisióneltextoenfrases.2. Análisiscadafraseparaobtenerestructurasintácticaymorfológica.3. Resolucióndeanáforaspronominales.4. Cálculodesimilitudentrefrases.5. Segmentaciónyetiquetadodeltexto.
3.3.2.CambiodeRepresentación
Bag‐of‐WordsPara poder clasificar los documentos ha sido necesario obtener una representación de lainformación que permitiera realizar operaciones matemáticas necesarias para laclasificación. En la representación Bag‐of‐Words cada palabra está representada por unavariable separada que contiene un valor numérico. Se ha representado como unamatrizdondelasfilassonpalabrasylascolumnasdocumentos(verfig.3.3.2.1).
Tabla3.3.11ObtencióndelamatrizDocumento‐Palabra
Este valor representa la importancia relativa que tiene una palabra en un documentos ypuedeserlafrecuenciadeaparicióndecadapalabraeneltextoolafrecuencianormalizada:
Donde:
28
tf(w)eslafrecuenciadecadapalabraenundocumento.df(w)eslafrecuenciadeunapalabraentodoslosdocumentos.Neselnúmerodedocumentos.FeatureSubsetSelectionLamisióndeesteprocesoesseleccionar lasmejorescaracterísticas,esdecir,aquellasquerealmente aporten información a la clasificación. Esta característica provee al sistema lacapacidaddeintroduccióndeconocimientoprevio.Sepuedencambiarlaimportanciadelaspalabrasconestafuncióncambiandolamatrizdocumentos‐palabras.LatentSemanticIndexing(USPatent4.839.853)Se ha utilizado Latent Semantic Indexing (LSI)[22] como técnica estadística para reducirdimensionesyencontrarestructurasocultasdecontenidosemánticodelosdocumentos.LSIesunatécnicadeprocesode lenguajenatural.Conellasehaanalizadolarelacionesentredocumentos y palabras que éstos contienen. El proceso previo a éste, llamado Bag‐of‐Words, crea una matriz de forma que las filas son las palabras y las columnas losdocumentos. Los valores de esta matriz, cómo se ha comentado anteriormente, son lasfrecuenciasdeaparición(normalizadasono)delaspalabrasenlosdocumentos.Estamatrizcreaelespaciosemánticooriginal.Esta matriz, dada la cantidad de posibles palabras que pueden ser utilizadas en losdocumentos,tieneuntamañodemasiadograndequehacelainviablesuutilizaciónparaelproceso de clasificación. LSI es capaz de encontrar una aproximación de menordimensionalidad. Esto lo consigue mediante Singular Value Decomposition (SVD). SVDpermite la modificación del espacio semántico de tal manera que refleja los principalespatrones asociativos de la información y descarta aquella que es redundante o pocoinfluyenteenlaclasificación.
Fig.3.3.12LatentSemanticAnalysis
Dada unamatriz X donde cada elemento (i,j) representa la frecuencia de aparición de lapalabraieneldocumentoj.ConelusodeSingleValueDecomposition[22]seconsigueunadescomposicióndeXtalqueUyVsonmatricesortogonalesyΣesunamatrizdiagonal:
Lascorrelacionesdepalabras ydedocumentos derivanen:
29
Como y sondiagonales,Ucontienelosvectorespropiosde mientrasVlosde. y contienen los mismos valores propios, con lo que la descomposición
finalmenteresultaen:
donde sonvaloressingulares.Losvectorescolumna
ylosvectores son,asuvez,vectoressingulares.
SeseleccionaloskmayoresvaloressingularesyloscorrespondientesvectoressingularesdeU y V. Se consigue así, un aproximación a X de rango k con el mínimo error (Norma deFrobenius). Los vectores singulares seleccionados formarán un nuevo espacio semánticoqueaproximaXtalque
La matriz de vectores singulares Uk crea un espacio semántico con el cual se puedesegmentaryclasificarlaspalabras.PorotroladoVkpermitelasegmentaciónyclasificaciónde documentos. Para poder clasificar primero se debe proyectar el nuevo documento (opalabra)enelespaciosemántico
donde eselnuevodocumentoproyectadoy eslapalabraproyectada.
3.3.3.Clasificación
La clasificación que se ha realizado se hizo a partir de un conjunto de entrenamientosupervisado.Porello,sehautilizadounmétodoquecalcula,apartirdelascaracterísticasconocidas,laclasemássimilar(máscercana)enelespaciodecaracterísticas.Esdecir,setratadetenerunaformarápidadecalcularelcasomásparecido,porestarazónsehausadoelalgoritmodelvecinomáspróximo,enparticularelk‐NN(k‐nearestneighboralgorithm).Enestealgoritmocadaelementoesclasificadosegún la clasedesusk vecinosmáscercanosponderadaporelgradodesimilitudobtenido(verFig.3.3.3.1).
Fig.3.3.21k‐nearestNeighbor
30
Sehautilizadosimilituddel cosenoparavalorarelgradodesimilitudentreelementosdelespacio de características. Dados dos vectores A y B, la similitud del coseno se definecomo:
Losvaloresdesimilitudpuedenvariarde‐1(completamenteopuesto)a1(exactamenteelmismo).Elvalorceroindicaindependenciaylosvaloresintermediariosgradosdesimilitudodiferencia.
31
Capítulo4
Desarrollodelosserviciosdeclasificación
4.1.Introducción
Se ha desarrollado un sistema de clasificación de experiencias basado en una arquitecturaorientadaaservicios(SOA).SehautilizadoUMLparadiseñar lasoluciónSOAconelobjetivodegarantizarlaconsecucióndenuestrosrequerimientos.
La potencia de SOA reside en la habilidad de aumentar la agilidad empresarial mediante laintegraciónylareutilizacióndelosprocesosdenegocio.Estoseconsiguededosmaneras:porunlado estimulando la creación de soluciones basadas en servicios reutilizables que encapsulencapacidades funcionales ajenas a su implementación y por otro aportando herramientas quepuedangestionarrelacionesentrecapacidadesfuncionales[15].
El ciclo de vida de este proyecto se ha dividido en cuatro fases: Modelado, Ensamblado,DesplegueyGestión.Sehanmodeladolosprocesos,sehanensembladoloscomponentes,sehadesplegadolaaplicacióncompuestaysehagestionadosufuncionamiento.
Figura4.11MetodologíadedesarrolloSOAUna vez el modelo de negocio estaba implementado y desplegado, se ha podido cambiar laimplementacióndealgunadelastareasfácilmente.LaflexibilidadesunodelosbeneficiosclavesdeSOA.
ParadiseñarunasoluciónSOAsenecesita:
Establecerrequerimientosdenegocio
Identificarlosservicios.
32
Diseñarlasinterfaces.
Decidircomoseránimplementados(IdentificarProveedoresdeservicios).
Componerlosserviciosquerepresentanalosprocesoscomplejosdenegocio.
Losperfileshanparticipadoenestafasedelproyectoson:
BusinessExecutive:Determinaobjetivosymetasdenegocio.
BusinessAnalist:Analizalosrequerimientosdenegocio.EnnuestrocasotenemoslafiguradeunespecialistaenTextMining.
Arquitectodesistemas:Diseñalaarquitecturadelasolución
Programador:Implementalasolución.
4.2.Modelado
Modelaresnecesarioparaunirlosrequerimientosinicialesdenegocioalasoluciónfinalbasadaenservicios.
El grado de abstracción con el que se ha trabajado en esta fase es grande para que se puedacentrar toda la atenciónen los serviciosdenegocio. Sehan formalizado los requerimientosdenegocio para el correcto desarrollo de los servicios con la intención alcanzar los objetivosdeseados.
El desarrollo basado en modelado ha ayudado a conseguir estos objetivos. Los modelospermitieron abstraer los detalles de la implementación y focalizar la atención en temas queatañenalasdecisionesarquitecturales.
El criterioque seha seguido cumple conunosde los principios fundamentalesde SOApara eldesarrollode soluciones SOA: separaciónde responsabilidades (concerns) y acoplamientodébil(loosecoupling).
Los “analistas de negocio” han sido los responsables por definir los requerimientosorganizacionalesyoperacionalesnecesariosparaconseguirlosobjetivosymetasdenegocio.Hasido necesario tener una visión empresarial. No ha sido necesario, en cambio, tenerconocimientos técnicos informáticos como reutilización, cohesión, acoplamiento de servicios,distribución,seguridad,persistencia,integridadoconcurrencia.
Se ha empezado con la descripción de las motivaciones y objetivos que se deseaban lograr.Después se han capturado los procesos que expresan los requerimientos organizacionales yoperacionales necesarios. Estas motivaciones y los procesos han establecido el contexto paraidentificarserviciosquesenecesitabancrearcumplirconlosrequerimientosdenegocio.
EsteprocesohasidolosuficientementecompletoydetalladocomoparaserutilizadocomobasedelSLA(ServiceLevelAgreement).
33
RequerimientosdeNegocio:
Escenario: Desarrollo de un sistema capaz de clasificar experiencias a partir de textos quecontenganserviciosdenegocioreutilizables.
Motivaciones:
• Establecer unmedio común para que varias aplicaciones empresariales puedan valorarexperienciasdeclientes.
• Aumentar la satisfacción de los clientes con una reacción inmediata ante diferentesexperiencias.
• Fidelizarlosclientes.
• Convertirlosclientesennuestrospromotores.
Identificacióndelosservicios:
Sehanidentificadodosprocesos:elprocesodeentrenamientoyelprocesodeclasificación.Losdosestánformadosporserviciosindependientesqueenalgunoscasossonreutilizados.LafiguraFig.4.2.1semuestraelmodelocreadoparaelprocesodeentrenamiento.Sepuedeobservarquelos servicios han sido separados en cinco grupos:Word Level,Sentence Level,Document Level,LinkedDocumentCollection Level yApplication Level. Esta separaciónatiendea la lógicade losprocesosdetextmining.Ademásnosagrupaysimplificaeldesarrollodelosservicios.
ElprocesodeentrenamientoempiezaconunparámetrodeentradadetipoDocs.Setratadeunconjunto de documentos. Las tareas de Text Normalization, Stop‐words Removal, Stemmer,LexicalRelation,N‐grams,SummarizationySegmentationrecibenesteconjuntodedocumentos,lospreprocesaaniveldetextoyretornanelmismotipodedato.
Fig.4.2.1ModelodeProcesodeEntrenamiento
34
LatareaBag‐of‐wordsencambio,recibeelparámetrodetipoDocsytransformaelconjuntodedocumentos en un dato de tipo BoW. Un dato de tipo tipo BoW contiene una matriz decaracterísticasextraídasdelosdocumentosyeldiccionariodepalabrasutilizado.FeatureSubsetSelection y Latent Semantic Indexing son utilizados para reducir la dimensión de la matriz decaracterísticas.TambiéntrabajanconeltipodedatoBoW.
Finalmente Train recibe el dato de tipo BoW (la matriz y el diccionario) y un dato de tipoGroundTruth(necesarioparaunaprendizajesupervisado).LosprocesaydevuelveundatodetipoClassificationKnowledgeque contiene toda la informaciónde entrenamiento necesaria para elposteriorprocesodeclasificación.
LafiguraFig.4.2.2nosmuestraelmodelodelprocesodeclasificación.Esteprocesoescapazdeclasificarunconjuntodedocumentos,porlocualaprovechamoseltipodedatoyacreadoenelprocesodeentrenamientoDocs.
El preproceso de los documentos, la creación de lamatriz de características y la reducción dedimensionessonserviciosreutilizadosdelprocesodeentrenamiento.
La tareaClassificationes la responsablederealizar laclasificaciónde losdocumentos.Utiliza lamatrizdecaracterísticasylainformacióndeentrenamientonecesaria(ClassificationKnowledge)yretorna un tipo de dato ClassificationResult que es una matriz con los resultados de laclasificación.
Fig.4.2.2ModelodelProcesodeClasificación
4.3.Ensamblado
Después de haber entendido los requerimientos de negocio se ha procedido al diseño de lasinterfacesydesarrollodelosserviciosqueatiendenaéstos.
35
Se han creado implementaciones de servicios que cumplieran con los objetivos deseados yademásconunaarquitecturaquepermitieralareutilizaciónyagilidaddelosprocesosdenegocio.
En esta fase el arquitecto y el programador han tenido un papel fundamental. Han sido losresponsables por desarrollar los diferentes servicios para componer el proceso de negocio alcompleto.
A partir del Modelo de Procesos que fue creado en la fase anterior, se crea el Diagrama deEnsamblado.Estediagramacontienecomponentesquecorrespondenalosserviciosdelproceso.Cada componentes puede ser un servicio Web, un procesos BPEL, una tarea que requieraintervenciónhumana,unaregladenegocio,EJBs,POJOs,JMSsootrasaplicacionesa lasqueseaccede por medio de un conector o un ESB. Se pueden integrar aplicaciones de diferentesplataformas,tecnologíaylenguajesdeprogramación.EnnuestrocasotodoslosserviciosquesehancreadosonserviciosWeb.
Diseñodelasinterfaces:
El Modelo de Procesos, creado en la fase anterior, ha sido considerado un Contrato deRequerimiento de Servicios. Este modelo indica los grupos de servicios, las tareas que debenrealizary lasreglasdeinteracciónentreellos.Sehadesarrolladoslas interfacesapartirdeestecontrato. En la figura 4.3.1 se muestra el Contrato de Requerimiento de Servicios en UMLobtenidoapartirdelmodelo.
Fig.4.3.1ContratodeRequerimientodeServicios
Eltérmino<<serviceCollaboration>>indicaunacolaboraciónentreserviciosquecorrespondenalprocesodeentrenamiento.Estacolaboraciónenmarcauncontratoconlassiguientes“cláusulas”:
Motivodelacolaboración:procesarelentrenamiento.
36
Participantes: Los cuatro servicios que participan (Word‐Level Parsing, Document‐LevelAnalysing,Linked‐Document‐Collection‐LevelCollectingyelpropioprocesoTraining).
Responsabilidades:Cadagrupoesresponsabledeunaseriedetareas.
Parsing:textNormalization,stopWordsRemoval,stemmer,lexicalRelation,nGrams.
Analysing:summarization,segmentation.
Collecting:bagOfWords,featureSubsetSelection,latentSemanticIndexing,clustering.
Interacción entre grupos: Establece la dependencia entre los grupos (Parsing AnalysingCollecting).
A partir del modelo del proceso hemos extraído la implementación de la composición de losservicios,esdecirlaversiónBPELdelprocesocómodepuedeveenlaFig.4.3.2
Fig.4.3.2ContratodeRequerimientodeServicios
Se ha dividido el problemaendiferentes unidades funcionales. Se hanutilizadopackages paraayudar a reducir la complejidad, establecer espacios de nombres, facilitar la reutilización ysepararlasfunciones.EnlaFig.4.3.3semuestraeldiagramadeunidadesfuncionales.
37
Fig.4.3.3DiagramadeUnidadesFuncionales
Cuando se identificaron los servicios en la fase anterior no se han detallado los servicios nitampococómointeractúan.Sólosehahechounesquemadecómodeberíanrelacionar.
La figura Fig.4.3.4 muestra el Diagrama de Topología de Servicios. Representa las unidadesfuncionalesylosserviciosquefueronasignadosaestospackages.Elusodedependenciasenestediagramatienecomoobjetivoenseñarcómoserelacionanunosserviciosconotrosyesdegranimportanciaparaempezaraidentificarelusoyelacoplamientodediferentessistemasquedebentrabajarconjuntamente.
Fig.4.3.4DiagramadeTopologíadeServicios
Paracompletarlaidentificacióndelosservicios,lafigura4.3.5muestrauncomponenteabstractoque modela el contexto para el proceso de entrenamiento. Este diagrama muestra el usopotencialdecadaespecificacióndeservicioenuncontextoenparticular.Laspartessondetipoabstracto ya que son instancias de las especificaciones de servicios y no instancias de losproveedoresdeserviciosquelosimplementan.
38
Fig.4.3.5DiagramaComponenteAbstracto
Especificacióndelosservicios:
Laespecificacióndeunserviciodebecontenertodalainformaciónqueunpotencialconsumidordebeconocerparadecidirsileinteresautilizarloycómodebehacerlo.Tambiéndebeincluirtodolo necesario para la implementación del servicio. Es un contrato entre el consumidor y elproveedordelservicio.
Se han elaborado las especificaicoens a partir de las interfaces del Diagrama de Topología deServicios(Fig.4.3.4).Estasespecificacionesproveenlasiguienteinformación:
• Elnombredelservicio,indicandoquehace.
• Las interfaces requeridas y expuestas, describiendo las capacidades funcionales delservicio.Cadacapacidadfuncionaldebeincluir:
Unnombre:normalmenteunverboqueindicaloquehace.
Datosdeentradaysalida,obligatoriosoopcionales.
Accionespreviasyposterioresalusodelservicio.
Excepcionesycondicionesdeerrorquepuedanserlanzadas.
• Protocolosdecomunicaciónnecesarios.
• Capacidadcomputacionalnecesariaparaconsumirelservicio
• Requerimientosexigidosenlaimplementación
• Calidaddelservicio:coste,disponibilidad,rendimiento,…
• Políticasdeuso:seguridadeintegridad.
39
Lasespecificacionesdelosserviciosdeesteproyecto,altratarsedeunprototipo,sesimplificaronalasexigenciasdefinidasenelplandeviabilidad.Todoslosserviciosinvolucradoscontienenunaseriedefuncionalidadesquepuedenejecutarseopcionalmenteydeformaindependiente.
ServicioParsing:
ElservicioParsinghasidodefinidoenelpaqueteword.ComosepuedeobservarenlafiguraFig4.3.6proveecincooperaciones:
1. Normalizarlosdocumentos.
2. Eliminarsímbolosopalabrasquenotengansentidoparaelentrenamiento.
3. Eliminarraícesdelaspalabras.
4. Extraerinformaciónléxicadelaspalabras.
5. Creasconjuntosdepalabras.
Fig.4.3.6Especificación:Parsing
ServicioAnalysing:
ElservicioAnalysing,definidoenelpaquetedocumentestácompuestopordosoperaciones:unafuncionalidadcapazderesumirel textoyotracapazdesegmentarel textoenfrasesyeliminarredundancia.SudiagramasemuestraenlafiguraFig.4.3.7
Fig.4.3.7Especificación:Analysing
ServicioCollecting:
ElservicioCollectingesel responsabledetransformar losdocumentosenconocimientopara laclasificación.Estáformadoporlassiguientesoperaciones:
1. CreacióndeBag‐of‐Words
2. Seleccióndesubespaciodecaracterísticas.
40
3. Reduccióndelamatrizpalabra‐documento.
4. Segmentacióndelespaciodecaracterísticas.
Fig.4.3.8Especificación:Collecting
ServicioTraining:
Estaeslaespecificacióndelservicioquedaentradaalprocesodeentrenamiento.Sólotieneunaoperación.
Fig.4.3.9Especificación:Training
ServicioClassifying:
Esta es la especificacióndel servicio queda entrada al procesode clasificación. Sólo tieneunaoperación.
Figura4.310Especificación:ClassifyingModelodeDatosdeServicios:
LosDatos de Servicios es la información que intercambian los consumidores y proveedores deservicios.Cómoseobservaen la figuraFig.4.3.11sehanutilizadoenestesistemacincoclasesdiferentes,todasetiquetadascomomensajes(<<message>> indica lautilizacióndeestetipodedatoparalacomunicaciónconyentrelosservicios).
41
Fig.4.3.11ServiceDataModel
• Docs:Contieneelconjuntodedocumentosdetextoaanalizar.
• BoW:Contieneunalistadepalabrasyunamatriznuméricaasociadaaestaspalabrasylosdocumentos.
• ClassificationKnowledge:Contieneunalistadepalabrasyunamatriznuméricaasociadaaestaspalabrasylosdocumentosparalaposteriorclasificación.
• ClassificationResult:Matrizconlosresultadosdelaclasificación.
• GroundTruth:Listadelaclasificaciónrealdelconjuntodeentrenamiento.
ProveedoresdeServicios:
Un servicio define un conjunto de funcionalidades puestos a disposición por el proveedor deservicios. La siguiente tares que se ha realizado ha sido el determinar cuales eran estosproveedores de servicios. Podríamos haber implementado todo el sistema en un solo servicio.Pero de esta manera todos los clientes dependerían de un solo servicio y cualquier cambioafectaría a todos. También esta decisión podría tener efectos sobre el rendimiento, ladisponibilidadylaseguridaddelaaplicación.
Sehancreadocuatroproveedoresdeserviciosparaelsistemadevaloracióndeexperiencias.TrescorrespondientesalosserviciosdeParsing,AnalysingyCollecting.Cómopodemosobservarenlafigura Fig. 4.3.12 los tres proveedores proveen la implementación de las interfaces querepresentan.Norequieren,segúneldiseño,ningunaotraimplementaciónexternaparapoderseejecutar.
42
Fig.4.3.12ServiceProviders
ElotroproveedordeserviciosproveelosserviciosdeTrainingyClassifying(verFig4.3.13).Esteproveedor contiene la implementación de los servicios de entrenamiento y clasificación yrequiere para su funcionamiento de implementaciones de los servicios deParsing,Analysing yCollectingvistosanteriormente.
Fig.4.3.13Text2EmotionServiceProvider
Implementar los servicios de esta manera nos permite flexibilizar la implementación y eldesplieguedeéstos,yaquecadaproveedordeserviciospuedeestarimplementadoendiferentesplataformasyendiferenteslugares.
Composicióndeservicios:
Unacolaboracióndeserviciossedefinecomounconjuntodeserviciosactuandoconjuntamentedeunamaneraacordadasegúnunaespecificacióndeproceso.
Paraellosehanensambladocomponentesapartirdelacomposicióndeserviciosconelobjetivodealcanzarlosrequerimientosoriginales.Conla“orquestación”deinstanciasdelosserviciosdeParsing, Analysing y Collecting se han creado componentes con los servicios de Training yClassifying.
Enlasespecificacionesdelosservicioslosserviciosdeentrenamientoyclasificacióncontienenlassiguientesoperaciones:
Training:+processTraining(documents:Docs,gt:GroundTruth):ClassificationKnowledge
43
Classifying:+processClassifying(documents:Docs,ck:ClassificationKnowledge):ClassificationResult
EstasfuncionalidadessonofrecidasporelproveedordeserviciosText2Emotion.Text2Emotionesun componente que provee una interface por cada servicio. Cualquier interacción con estosserviciosserealizaatravésdesuspuertoscorrespondientes.
El último paso ha sido crear es Subsistema de Entrenamiento y el de Clasificación. EsteSubsistemautilizalosProveedoresdeServiciosquesehanimplementadoyensamblalaspartescreandounasoluciónlistaparaeldesplegueyejecución.
Estos Subsistemas consisten en instancias de componentes de los proveedores de serviciosText2Emotion, Word, Document y Collection. En la figura 4.3.14 se muestra el subsistema alcompleto.
Figura4.314SubsistemaText2Emotion
44
4.4.Despliegue
Unavezmodeladosyensambladoslosservicios,elpasofinalhasidoeldespliegue.Estafase pone los servicios desarrollados a disposición de sus posibles clientes a través de unservidor de aplicaciones. En el momento de seleccionar el servidor de aplicaciones esimportanteconsiderar trescaracterísticasmuy importanteque influiránel funcionamientodelosservicios:
• Rendimiento
• Seguridad
• Escalabilidad
• Basadoenestándares
Tambiénsehanconsideradootrascapacidades:
• Capacidadparatratarcondatosyprocesos.
• Posibilidaddetrabajarconrecursosexternos.
• Capacidaddeadministración.
• Capacidaddecontrolarlaseguridad.
• Controldeversiones.
Se ha desplegado los servicios con Glassfish. Glassfish es un servidor de aplicacionescompatible con Java EE, de código abierto y estápreparadopara trabajar enentornosdeproducción. Este servidor de aplicaciones incluye toda la tecnología necesaria para eldesarrollodeestapartedeesteproyecto.
Como se muestra en la figura 4.4.1 se ha instanciado un dominio en donde estándesplegadoslosservicios.EstedominiorespondeaunadirecciónIPyunpuerto,esestecasoel8080.
Figura4.41Levantamientodelainstanciadelservidordeaplicaciones
45
Laconsoladeadministraciónseaccedeatravésdecualquiernavegadoratravésdelpuerto4848.Conestaconsolapodemosadministrarusuarios,recursosyaplicacionesdesplegadas.
Figura4.42ConsoladelservidordeaplicacionesLafigura4.4.3muestraneldespliegueconéxitodelosservicios.Enestemomentoesservidoryaestáescuchandoposiblespeticionesdeaccesoaesteservicio.
Figura4.43DesplieguedelosserviciosText2Emotion
Accediendo a página http://localhost:8080/Text2EmiotionProject se pueden visualizar elserviciodesplegadoconsucontrato(ficherowsdl).Estecontratoseránecesarioparaquelasaplicacionescreadasposteriormentepuedanconoceryaccederaesteservicio.
Figura4.44Webdelserviciodesplegado
46
ParteIII
Casosdeestudio
47
Capítulo5
Caso1:Departamentocomercialdeunaindustriaquímica
En la última fase de este proyecto se ha desarrollado dos prototipos de solucionesadaptadasadosentornosreales:eldepartamentocomercialdeunaempresaquímicayunCommunityManagement basado en un portal de opiniones sobre hoteles. Ambas se handesarrollado con el uso de plataformas disponibles en Internet (cloud computing) eintegradasconaplicacionesorientadasaservicio(Text2Emotion).
5.1.Introducción
Se ha creado un nuevo entorno de trabajo para el departamento comercial de unaempresaquímica.Estaempresacuentaconlasiguienteestructuradepartamental:
• Operadores de telemarketing: realizan constantemente llamadas a posiblesnuevosclientes.Suargumentodeventaeslahistoriadelaempresa,suvariedadycalidaddeproductosylabuenarelacióncalidad‐precio.Elobjetivodelallamadaesdespertarelinterésdelosclientesyasípoderenviarlesinformacióndetallada,marcarvisitasconuncomercial,enviarmuestrasocotizacionesdeproductos,etc.
• Comerciales:estánrepartidosporzonasgeográficas.Sumisiónesvisitaraclientesyprovocarnuevasventas.
• Director Comercial: es el responsable de la organización y de los objetivos deldepartamentocomercial.Reportadirectamenteagerencia.
Actualmentelosoperadoresdetelemarketingsonlosresponsablesdevalorarsuspropiastareasyhacerelseguimientodeéstas,debidoalagrancantidaddellamadasqueserealizanaldía.TodaslasllamadassonregistradasenunsistemaCRM.
Lapropuestahasidooptimizarlatomadedecisionesmejorandoporunladoelentornodetrabajoyporelotro,conlautilizacióndelainteligenciaartificialyelprocesamientodellenguajenatural,laautomatizacióndelaclasificacióndelasexperienciascreadasatravésdelasaccionescomercialesdeestaempresa.
Se ha creado un prototipo de aplicación funcional en Force.com teniendo en cuentacualeseranlasnecesidadesdeestaempresa,quétiposdedatostratan,quéprocedimientosson necesarios, etc. Se ha aprovechado toda la infraestructura de la plataforma y se hadesarrollado sobre ella. Se ha integrado la solución text2emotion con la plataforma. Elobjetivohasidovalorarcadaexperienciay tomardecisionesyaccionesautomáticamente.Conesteprototiposepretende:
• Organizardemejorformalainformación.
48
• Facilitarelaccesoalsistemaaoperadores,comercialesyresponsables.• Rebajarcostesdemantenimientodeequiposyprogramas.• Mejorarlaeficienciadelosprocesoscomerciales.• Aumentarlasventas.
5.2.Acciónyreacción:creandotareasapartirdevaloracionesdeexperiencias
Durante el levantamiento de datos que se ha realizado en la empresa, se han podidodistinguircincoeventosbásicosqueserealizaneneldepartamentocomercial:
• Llamadas:entrantesosalientes.• Visitas:concertadaopuertafría• Reuniones:presentaciónotrabajo.• Correoselectrónicos.• Faxes.
Cadaunadeestoscincoeventosrepresentaunpuntodecontactoconelcliente,yporlotanto,unaexperiencia.Sehaanalizadolainformacióncontenidaencadaunodeellosparaseleccionarcualerarelevanteparalaclasificación,laposteriortomadedecisiones.
Latomadedecisión,provocadaporunaexperiencia,esunatareacreadayasignadaaunapersonaautomáticamenteparaasegurarsuseguimiento.Estoserealizateniendoencuentalasiguienteinformación:
• Usuarioqueoriginólaexperiencia.• Clientequeviviólaexperiencia.• Tipodeexperiencia(llamada,email,fax,visitaoreunión).• Resultadodeclasificacióndelaexperiencia(Destrucción,Captación).
Apartirdeestainformaciónsepuedeautomatizarelseguimientoconociendo:
• Personaquedeberealizarelseguimiento.• Tipodetareaarealizar.• Elintervalodetiemporecomendadoparasurealización.
La creación de estas tareas no necesitan interacción del usuario. Se realizanautomáticamenteatravésdedisparadores.Cuandounusuariogeneraunnuevoevento,seejecutaundisparadorasociadoaestetipoderegistroquellamaalserviciodeclasificaciónde emociones text2emotion. Éste retorna el resultado de la clasificación y una rutinadesarrolladaenlaplataformaeslaencargadadecrearlanuevatareadeseguimiento.Todoestosehacedeformaasíncronaytransparenteparaelusuario.Enlafig.5.2.1semuestraunrecordatorioparalarealizacióndeunatarea.
49
Figura5.21Recordatoriodetareaarealizar
5.3.CreacióndelentornodetrabajoenForce.com
5.3.1.Aplicación
Sehacreadounanuevaaplicaciónen laplataformaForce.com,conunaseriede fichaspara aportar la funcionalidad necesaria a la aplicación. Aunque la plataforma ya proveealgunas aplicaciones esto ha sido necesario para adaptarse a la forma de trabajo de laempresaencuestión.EnlaFig.5.3.1.1dedetalledeladefinicióndelaaplicación.
Figura5.3.11Definicióndeaplicación
Las fichas correspondena losdiferenteseventosque sedeben tenerencuentapara lagestióndelainformacióndeexperienciasconlosclientes.Tambiénsehanincluidoalgunasfichas para elmantenimiento de información auxiliar, pero necesaria para la operativa. Acada fichasevinculaunobjetopersonalizadoqueseexplicaacontinuación.La fig.5.3.1.2muestraladefinicióndelafichadeLlamadas.
50
Figura5.3.12Definicióndeficha
Unavezgeneradalaaplicaciónysusfichas,sepuedevisualizarelaspectodelnuevoentornodetrabajoenlafig.5.3.1.3.
Figura5.3.13Aplicaciónfinal
51
5.3.2.ObjetosPersonalizables
El siguiente paso ha sido la creación de objetos personalizados. Los objetospersonalizadossontablasdebasededatosquelepermitenalmacenardatosespecíficosenForce.com.Sehanutilizadoobjetospersonalizadosparaampliar las funcionesexistentesyparaañadirnuevafuncionalidaden laaplicación.Losobjetosquehansidocreadosson lossiguientes:
• Asunto:Tabladeposiblesasuntosatratar.
• EmailRecoleccióndecorreoselectrónicosrecibidos.
• EmpresaBasededatoscondatosfiscalesdelosclientes.
• FaxTabladeFaxesentrantes.
• LlamadaTablaconlasllamadasrealizadasysustranscripciones.
• PaísTabladepaíses
• ReuniónReunionesrealizadasconsusminutascorrespondientes.
• VisitaVisitasrealizasaclientesyresumendelasmismas.
Paracrearlosobjetosprimerosehadefinidolascaracterísticasgeneralesdecadaunodeellos(Fig5.3.2.1).
Figura5.3.21Definicióndellamada
El siguientepasoha sido indicar la informaciónque contiene esteobjeto. Esto campospuedenserdetipoprimitivoohacerreferenciaaotrosobjetos(Fig5.3.2.2).
52
Figura5.3.22CamposdeLllamada
Por último, la vinculación de un desencadenador ha sido fundamental para lograr losobjetivosdeesteproyecto.LosdesencadenadoreshansidodesarrolladosenApexCodequeesun lenguajedeprogramaciónorientadoaobjetospropiode laplataformaForce.com.AtravésdeestecódigoseaccedealservicioexternodeclasificaciónText2Emotionysecreanlastareasdeseguimiento.
Figura5.3.23Desencadenadordellamada
5.3.3.InterfacesdeUsuario
Apartirdelosobjetospersonalizados,sehandiseñadolasinterfacesdeusuario,conherramientaspropiasdelaplataformayéstehasidoelresultado:
1. GestióndeLlamadas
53
Figura5.3.31PantalladeLlamadas
2. GestióndeEmails
Figura5.3.32PantalladeEmails
54
3. GestióndeVisitas
Figura5.3.33PantalladeVisita
4. GestióndeReuniones
Figura5.3.34PantalladeReuniones
55
5. GestióndeFaxes
Figura5.3.35PantalladeFax
6. Seguimiento
Figura5.3.36PantalladeSeguimiento
5.3.4.Accesoaserviciosexternos
Por último, se ha configurado el entorno para el acceso a los servicios externos declasificacióndeexperiencias.AntesdequecualquierpáginadeForce.com,disparadoresdeApexocódigode JavaScriptpuedaaccederaun sitioexterno,dichositiodebe registrarsecomositioremotooelaccesonoserealizaríacorrectamente.EstaconfiguraciónincluyeelnombreylaURLdelsitioremoto(verFig5.3.4.1).
Porrazonesdeseguridad,serestringelospuertosdesalidaquepuedeespecificaraunodelossiguientes:
• 80:estepuertosóloaceptaconexionesHTTP.• 443:estepuertosóloaceptaconexionesHTTPS.• 1024–66535(incluido):estospuertosaceptanconexionesHTTPoHTTPS.
56
Figura5.3.41Accesoasitioremoto
LadirecciónURLcorrespondealaIP(80.31.109.186)yelpuerto(8080)pordondesepuedeaccederalserviciotext2emotion.
Una vez configurado el acceso remoto, se ha importado el documento WSDL quecontienelainterfazabstractaatravésdelacualsepuedeconoceryaccederalosserviciosdeclasificacióndetext2Emotion.EsunficheroXMLydescribelaformadecomunicación,esdecir,losrequisitosdelprotocoloylosformatosdelosmensajesnecesariosparainteractuarcon los servicios disponibles. Las operaciones y mensajes que soporta se describen enabstractoyseligandespuésalprotocoloconcretoderedyalformatodelmensaje.
Sontres,apenas,lospasosnecesariosparaintegrarlosserviciosdeclasificación:
1. SeleccionarelficheroWSDL
Figura5.3.42Paso1:SeleccionarficheroWSDL
2. Analizaryvalidarelfichero.
57
Figura5.3.43Paso2:AnálisisdelficheroWSDL
3. GenerarlaclaseApex.
Figura5.3.44Paso3:GeneracióndelasclasesApex
El resultado es la creación de clases Apex a través de las cuales se puede acceder deformatransparentealosserviciosexternosdetext2emotion.Estasclasessonutilizadasporlosdisparadores.Cuandosegeneraunnuevoregistro,yaseaunallamada,unfax,unemail,una reuniónouna visita, se ejecuta el disparador correspondienteque llamaa la funcióndisponibleenlainterfazdelservicioexterno,deformaasíncrona.Cuandoelservicioretornaelresultadodelaclasificación,segeneraentonceslatareadeseguimiento.
Existeunmonitorde losprocesosgeneradosdondesepuedevisualizarelestadode lastareas asíncronas (Fig. 5.3.4.5). También, en caso de error, se envía automáticamente uncorreoelectrónicoaladministradordelsistema.
Figura5.3.45SeguimientodeTrabajosdeApex
Finalmente, en la Fig. 5.3.4.6, se puede observar el resultado final: la generaciónautomáticadelatareadeseguimiento.
58
Figura5.3.46Tareageneradaautomáticamente
5.4.Resultados
Parapoderevaluarlosresultadosobtenidos,primeroseharealizadounavaloracióndelaefectividaddelclasificadoryluegolarepercusióneconómicaquelasolucióncompletapuedeocasionarenlaempresa.
Efectividaddelclasificador:
Para realizar las pruebas del clasificador de ha recogido un total de 860 eventosregistradosenelsistemaCRMdelaempresa.Losdoseventosquemásmuestrastienensonllamadasy visitas. Sehan seleccionadoeventosquepudiesen representar lasexperienciasgeneradasysehandescartadoserroresyrepeticiones.ConlaayudadeldirectorcomercialsehacreadoelGroundTruth.Al tratarsedeaccionescomercialesdecaptacióndenuevosclienteslosdosresultadosposiblesdelaclasificaciónfueron:destrucciónocaptación.
Laspruebassehanrealizadomediantelaimplementación,comounservicio,delmodeloestadístico de validación cruzada k‐fold Cross Validation. La implementación dividealeatoriamentelasmuestrasenksubconjuntosconunaproporciónparecidadeelementosdecadaclase.Deloskconjuntos,unoesescogidocomoconjuntodetestylosk‐1restantesson lasmuestrasqueseránutilizadasparaelentrenamiento.Elprocesose repitekveces,unaporcadaconjuntodetest.Paraobtenerelresultadofinalseharealizadolamediadelerrorrelativoy ladesviaciónestándar.Laventajadeestemétodoesqueseutilizatodoelconjuntodemuestras y que cadamuestra se utiliza una sola vez. Ennuestro casohemosutilizadoconjuntosdetestde10elementos(k=10).
Losgradosdelibertadqueofrecenconlosservicios,yporlotanto,laposiblesvariacionesdelmétododeclasificaciónquesedisponeparaobtenerunresultadoaceptableson:
1. Listadepalabrasysímbolosquesedebeneliminar.2. Usoodescartedepalabrassegúnsucategoríamorfológica.3. Usodeconocimientoprevioparamanipularlaimportanciadeciertaspalabras.4. Utilizacióndesecuenciasdenpalabras.
59
5. Variacióndepesossegúnlaposicióneneldocumento.6. Potenciaespectralenlareduccióndedimensiones.7. Númerodevecinosaserconsideradosparalaclasificación.
Despuésdehaberrealizadopruebasexhaustivasconvariacionesdetodasestasvariableselresultadoobtenidohasido:
Figura5.41Caso1:MatrizdeConfusión
Figura5.42Caso1:MatrizdeErrorRelativo
Figura5.43Caso1:MatrizdeDesviaciónestándar
Se puede observar que la clasificación es mejor en los eventos del cuadrante decaptación.Esoesdebidoaquelostextossonmásparecidosentresí.Encambiolostextosdeeventos que pertenecen al cuadrante de destrucción son menos homogéneos y seconfundenmás con los de captación. La desviación estándar, nos indica dispersión de losresultadosdelaclasificación,lacualcosanosindicaquelosresultadosdecadaiteraciónenelprocesodevalidaciónhavariado.Detodasformas,engeneral,losresultadossonbuenosdebido al grado de similitud entre los documentos. Además muchas veces los textos serepiten,loqueharíaaumentar,aúnmás,laefectividaddelaclasificación.
Paraanalizar larepercusiónde lautilizaciónde lasoluciónplanteadaseharealizadounanálisis de las acciones comerciales de dicha empresa y se ha contrastado los siguientesdatos:
1. Losoperadoresdetelemarketingrealizan,enmedia,de1000llamadasaltrimestre.2. Un30%delosreceptoresdeestasllamadasdemuestranalgúntipodeinterés.3. Un5%delosinteresadosacabanrealizandoalgúnpedido.4. Un40%delosclientesquedemostraroninteréstienenunseguimientocomercialno
adecuado.
60
Figura5.44Efectividaddeprocesocomercial
Conlaayudadelasoluciónplanteadayateniéndosealosresultadosobtenidos:
1. El71%deloseventospertenecientesalcuadrantedecaptaciónsonbienclasificadosysegeneranaccionesdeseguimientosegúnlapolíticacomercialestablecida.
2. Calculado en base a los datos anteriores, se incrementa el numero de clientesinteresadosconunseguimientoadecuadoenun18%.Conloqueaumentamosenlamismaproporciónlaposibilidaddegenerarpedidos.
Figura5.45EfectividadestimadaconelusodeText2Emotion
Los resultados se consideran aceptables y pueden aportar ventajas la utilización de lasoluciónparalaempresa.
61
Capítulo6
Caso2:CommunityManagement
6.1.Introducción
TripAdvisor®representalacomunidaddeviajesmásgrandedelmundo.Proporcionaasusmiembros recomendaciones para hoteles, complejos turísticos, hostales, vacaciones,paquetes de viajes, paquetes de vacaciones y guías de viajes. Los números quedescribenestacomunidadson:
1. Recibemásde40millonesdevisitasalmes.2. Tienemásde20millonesdemiembrosregistrados3. Poseeunabasededatosdemásde45millonesdecríticasyopiniones.
En este caso, se platea una solución para un grupo hotelero que quiera controlar lasatisfacción de sus clientes en internet. Para ello es necesario acceder a la informacióndesplegadaen lasredessociales,procesarla,analizarlayclasificarlapara laposterior tomadedecisión.
Sehacreadounnuevoentornodetrabajoparaelcontroldeloshotelesysusclientes.Eneste caso entra en juego un nuevo perfil: el community manager. Esta persona es laresponsablede la reputacióndel hotel en las redes sociales.Debeagradecer y fortalecervínculosconaquellosclientesquelesrecomiendanypromocionan,ytambién,deberescataraquellosclientesqueestánenelcuadrantededestrucción.
Dadoelvolumendeinformacióngeneradoenlasredessociales,es imposiblecontrolar,valoraryreaccionarantecadaopiniónocomentarioquesecreaenInternet.
Lapropuestahasidooptimizarlareacciónutilizando,porunlado,elentornodetrabajocreadoenlaplotaformayporelotro,laautomatizacióndelaclasificacióndelasopinionesycomentariosparadarrespuestasdelaformamásautomatizadaposible.
SehacreadounprototipodeaplicaciónfuncionalenForce.comutilizando,nuevamente,toda la infraestructura de la plataforma. Se ha aprovechado la anterior integración de lasolucióntext2emotionconlaplataforma.Conesteprototiposepretende:
• Organizardemejorformalainformación.• Análisisdelainformacióndisponibleenredessocialesentiempopseudo‐real.• Mejorarlaeficienciadelosprocesosdemarketing.• Aumentarlasatisfaccióndelosclientes.• Mejorarlareputacióndigital
62
6.2.Acciónyreacción:creandotareasapartirdevaloracionesdeexperiencias
Tal y comoseha comentadoanteriormente,elcommunitymanager debe controlar lasopiniones,comentariosyvaloracionesqueserealizanenlasredessocialesparaasegurarlabuenareputacióndesuempresaenlascomunidadesonline.
En la comunidad con la que se ha trabajado, las personas que opinan son miembrosregistrados.TambiénpuedenestarvinculadosconotrasredessocialescomoFacebook,porlo tanto, pueden ser identificadas y registradas como contactos en la plataforma. Lasopiniones son introducidas en formato de texto. Primero se introduce una fraserepresentativayluegoelusuariopuededescribircondetallelaexperiencia.Tambiénvaloranelhotel,tantoanivelgeneral,comoenaspectosconcretosconunapuntuacióndel1al5.
Se ha utilizado, para la clasificación, el título y el texto detallado. Se han utilizado laspuntuacionespara crear elGroundTruth.Analizandoel conjuntodeentrenamiento sehahechocorresponderlaspuntuacionesconloscuadrantesemocionales:
• 1‐2puntos:Destrucción.• 3puntos:Captación.• 4puntos:Recomendación.• 5puntos:Promoción.
La respuesta propuesta, provocadapor una insercióndeunaopinión en la red, es unatareacreadayasignadaaunusuarioautomáticamenteparaasegurarsuseguimiento.Estoserealizateniendoencuentalasiguienteinformación:
• Hotel.• País• Categoría• Clientequeviviólaexperiencia.• Origen(TripAdvisor,Facebook,…).• Resultado de clasificación de la experiencia (Destrucción, Captación,
RecomendaciónoPromoción).
Apartirdeestainformaciónsepuedeautomatizarelseguimientoconociendo:
• Personaquedeberealizarelseguimiento(communitymanager).• Tipoderespuesta.• Respuestarecomendada.
La creación de estas tareas no necesitan interacción del usuario. Se realizanautomáticamente.Enciertosintervalosdetiemposeejecuta
Con tareasprogramadas y a travésde serviciosWeb, se extraede la red social nuevasopiniones,seutilizaelserviciodeclasificacióndeemocionestext2emotion.Ésteretornaelresultadode la clasificaciónyuna rutinadesarrolladaen laplataformaes laencargadadecrearlanuevatareadeseguimiento.Todoestosehacedeformaasíncronaytransparenteparaelusuario.
63
6.3.CreacióndelentornodetrabajoenForce.com
6.3.1.Aplicación
Se ha creado otra aplicación en la plataforma Force.com llamada CommunityManagement. Las fichascorrespondenaobjetospersonalizadosde laproblemáticaquesetrata.ElentornodetrabajosemuestraenlaFig.6.3.1.1.
Figura6.3.11AplicaciónFinal
6.3.2.ObjetosPersonalizables
Losobjetoscreadossonlossiguientes:
• Hoteles:Datosdeloshotelesaloscualessevinculanlasopiniones.
• Opiniones:Tabla que contiene las opiniones descargadas de las redes sociales. Cuando seinsertaelregistroseclasificalaopiniónysecreaunatareapararespondereésta.
• Respuestas:Basederespuestasefectivamenterealizadasvinculadasaunaopinión.
• Definiciónderespuestas:Reglasdecreacióndetareasparadarrespuestas.
64
6.3.3.InterfacesdeUsuario
Apartirdelosobjetospersonalizados,sehandiseñadonuevasinterfacesdeusuario,conherramientaspropiasdelaplataforma:
1. GestióndeHoteles
Figura6.3.31PantalladeHoteles
2. GestióndeOpiniones
Figura6.3.32PantalladeOpiniones
65
3. GestióndeRespuestas
Figura6.3.33PantalladeRespuestas
4. GestióndeDefinicióndeRespuestas(reglas)
Figura6.3.34Pantalladedefiniciónderespuestas
66
5. ProgramacióndeRecoleccióndeOpiniones
Figura6.3.35Pantalladeprogramacióndedescargas
6.3.4.Accesoaserviciosexternos
Delamismaformaqueenelcasoanterior,laplataformaForce.comaccedealosserviciosdeText2Emotionparapoderclasificarlasopiniones.ExisteundesencadenadorasociadoalacreacióndelosregistrosdeOpinionesqueseencargadeello.
Tambiénhayunnuevoaccesoremoto:losserviciosApideTripAdvisor.EstosserviciosestándisponiblessolamenteparaclientesdeTripAdvisorynosehapodidoteneraccesoaellosduranteesdesarrollodeesteproyecto.Aúnasí,sehanconfiguradolasinterfacesparaelaccesoaestosservicioscuandoestuviesendisponibles.Sehacreadoademásotroobjetoquecontrolalaprogramacióndelastareasderecoleccióndeopiniones.Sepuedeprogramar,paracadaredsocial,elintervaloenelquesedesearecolectarlosdatos.Unvezlatareaesejecutadaautomáticamente,segeneranlasopinionesyseinvocaalserviciodeclasificación.
6.4.Resultados
Las pruebas del clasificador se ha realizado con 400 opiniones, con valoracionesbalanceadas,extraídasdelportalTripAdvisor.Comosehacomentadoanteriormenteseharelacionadolasvaloracionesconloscuadrantesemocionales.Estasopinionesestánescritaseninglés.
Laspruebassehanrealizado,nuevamente,mediantelautilizacióndelmodeloestadísticodevalidacióncruzadak‐foldCrossValidationconconjuntosdetestde10elementos(k=10).
Los grados de libertad que ofrecen con los servicios y con los cuales se han realizadopruebasparaobtenerunbuenresultadosiguensiendo:
1. Listadepalabrasysímbolosquesedebeneliminar.
67
2. Usoodescartedepalabrassegúnsucategoríamorfológica.3. Usodeconocimientoprevioparamanipularlaimportanciadeciertaspalabras.4. Utilizacióndesecuenciasdenpalabras.5. Variacióndepesossegúnlaposicióneneldocumento.6. Potenciaespectralenlareduccióndedimensiones.7. Númerodevecinosaserconsideradosparalaclasificación.
Despuésdehaberrealizadopruebasexhaustivasconvariacionesdetodasestasvariableselresultadoobtenidohasido:
Figura6.3.36Caso2:Matrizdeconfusión
Figura6.3.37Caso2:MatrizdeErrorRelativo
Figura6.3.38Caso2:MatrizdeDesviaciónEstándar
Los resultados no son tan buenos como en el caso anterior. Se puede observar que lasopinionespertenecientesaloscuadrantesRecomendaciónyPromociónseconfundenentresíperonoentrelosotros.Estoesaceptableyaquetantounocomootroestáformadoporbuenas opiniones. En cambio, los cuadrantes de Destrucción y Captación están másdistribuidos debido a la diversidad de textos que se ha tratado. Se plantea para futurasmejoras la utilización de un Support Vector Machine para mejorar los resultados declasificación.
68
Conclusiones
Elhiloconductordeesteproyectohasidolacreacióndeunaaplicacióncapazdevalorarexperiencias. Para ello, primero se han creado los servicios que realizan la clasificación ydespuéslasaplicacionesdenegocioqueutilizanestosservicios.
Paralacreacióndelosserviciosdeclasificaciónsehautilizadolaarquitecturaorientadaaservicios. De esta forma se ha podido desarrollar servicios que pueden ser utilizados porcualquiertipodeaplicacióndesplegadaencualquierplataforma.Ademásestohaaportadootras ventajas como la reutilización de servicios: se han utilizado todos los servicios depreproceso y análisis de textos tanto para el proceso de entrenamiento como el declasificación.Porotroladoelusodeestaarquitecturahafacilitadotambiénlavariacióndelacomposición de los servicios para poder evaluar los resultados utilizando diferentesparámetrosyfunciones.
Todavíaenestaprimeraparte,cabevalorar losalgoritmosdeclasificación.Clasificar lasexperienciasemocionalmenteesmuydifícil.LacreacióndelGroundTruthyasuponíatodounretoyaquemuchastranscripcionesdellamadashacíandudaracercadelsentimientoquerealmenteestabasintiendolapersonaalotroladodelteléfono.Parapoderobtenermejoresresultadossedebeirmuchomásalládelosprocesosdetextminingconvencionales.Sehade entender sintácticamente y semánticamente los documentos para poder extraerresultados más fiables. Por último, los resultados obtenidos con el método k‐nearestneighbor podrían, posiblemente, ser mejorados con un Support Vector Machine.Estabafueradelalcancedeesteproyectoeldesarrollodeesteclasificadorperopodríaserunabuenaopción.
La segunda parte fue desarrollada íntegramente en la plataforma de desarrolloForce.com.Sehapodidocomprobarlafacilidaddeuso,lafiabilidadyescalabilidadqueestaplataforma ofrece en modo de Cloud Computing. Se ha podido integrar fácilmente losservicios de clasificación de experiencias y las dos aplicaciones creadas son capaces degestionar los eventos, clasificarlos emocionalmente y crear las tareas de seguimiento quefuesennecesarias.
Ha sidouna granexperiencia personal el poderhaber integradoenuna soluciónCloudComputing,ServiceOrientedArchitectureymétodosdeclasificacióndeinteligenciaartificialparacrearunaherramientadesoportequepuedeaportarmuchovalorañadidoaempresasquelapuedanutilizar.
69
Bibliografía
[1]Shaw,Colin.TheDNAofCustomerExperience.PALGRAVEMACMILLAN,2007.
[2]Coussement,Kristof;VandenPoel,Disk.Improvingcustomercomplaintmanagementbyautomaticemailclassificationusinglinguisticfeaturesaspredictors.ScienceDirect,2007.
[3] Severt, Denver Eugene. The Customer’s Path to Loyalty: A parcial Test of theRelationshipsofPriorExperience,JusticeandCustomerSatisfaction.UMI,2002.
[4]Levine,Locke,Searls,Weinberger.TheCluetrainManifesto:TheendofBusinessasusual.1999,2001.
[5] B. Joseph Pine II, James H. Gilmore. Welcome to the Experience Economy. HarvardBusinessReview,1998.
[6]Tate,Rick,StroupJosh.TheServicePro:CreatingBetter,FasterandDifferentCustomerExperiences.HDRPress,2003.
[7]http://en.wikipedia.org/wiki/Customer_experience.CustomerExperience.
[8]media.techtarget.com/searchSOA/.../Force_com__CH01.pdf.IntroducingForce.com.
[9] http://aye.comp.nus.edu.sg/~qiu/NLPTools/JavaRAP.html. Resolution of AnaphoraProcedure.
[10]http://incubator.apache.org/opennlp/index.html.ApacheOpenNLP.
[11]http://www.rightnow.com/cx‐suite.php.RightNowCX.
[12]http://www.responsetek.com.CustomerExperienceManagementSoftware.
[13]http://www.crmag.it/News/36/CEM‐Customer‐Experience‐Management.aspx.IlCEM(CustomerExperienceManagement).
[14]http://www.data‐miners.com/companion/Chapter14‐Example2.ppt.DataMiningTechniquesforCRM.
[15]MartinKeen,GregAckerman,IslamAzaz,ManfredHaas,RichadJohnson,JeeWookKim,PaulRobertson.Patterns:SOAFoundation‐BusinessProcessManagementScenario.RedBooks,2006.
[16]Linthicum,David.CloudComputingandSOAConvergenceinYourEnterprise.Addison‐Wesley,2010.
[17]Force.comApexCodeDeveloper’sGuide.Salesforce,2010.
[18]WebServicesApiDeveloperGuide.Salesforce,2010.
[19]http://www.anderson.ucla.edu/faculty/jason.frand/teacher/technologies/palace/datamining.htm.WhatisDataMining?
[20]http://www.clarabridge.com.CustomerExperienceManagementSoftware
70
[21]http://en.wikipedia.org/wiki/Latent_semantic_analysis.LatentSemanticAnalysis.
[22]ScottDeerwester,SusanT.Dumais,RichardHarshman.IndexingbyLatentSemanticAnalysis.1998
[23]MarkoGrobelnik,DunjaMladenic.TextMiningTutotial.J.StefanInstitute.