Un caso de uso real donde la inteligencia artificial de Watson nos ayuda a analizar el sentimiento de incidencias
Por Irene Cid, IBM Garage Data Scientist
A nadie le gusta que algo deje de funcionar. Se desconecta el Wifi, la plataforma en la que ibas a iniciar sesión se queda colgada, se va la luz, el ordenador no se enciende… y todo lo que la ley de Murphy se guarda justo para cuando vas a hacer algo importante. Y como lo único que quieres es que deje el mundo de ponerse en tu contra, abres el correo para reportar tu incidencia, preparad@ para decir cuatro cosas bien dichas, y exigir que lo arreglen de inmediato.
Al otro lado (quizás) del mundo, Isabel acaba de conseguir resolver una incidencia complicada, y respira satisfecha un par de segundos antes de que aparezca en su pantalla un nuevo problema; el tuyo. Se inicia un proceso que no vemos, donde ella lee a conciencia el problema, y rellena la información que lo clasifica en el tipo de incidencia que corresponde.
«Creo que está muy cabread@», piensa al leer tu email. E inicia el procedimiento para tratar de solucionarlo cuanto antes sin poder dar respuesta inmediata a lo que preguntas: «¿va a tardar mucho?»
Empiezan a entrar más incidencias, y comienza a ser complicado concentrarse en tu problema porque es difícil priorizar cuál de todos es más importante. Isabel mira la bandeja de entrada de incidencias sin saber por dónde seguir, porque se acumulan poco a poco en una montaña sin orden. Justo entonces, algo se enciende entre sus recuerdos. Había un equipo, que resolvía casos como el suyo muy rápido; tanto, que en menos de dos meses tendría una nueva forma de priorizar las incidencias, de tener algo más de luz. ¿Se les ocurriría algo para poder entender mejor la montaña sin orden de incidencias?
Isabel se precipita sobre su móvil. Cómo se llamaban… IBM Door… IBM Garden… ¡Garage! ¡IBM Garage! Dos tonos de espera después, descolgamos al otro lado, preparados para la acción. Isabel sonríe al oírnos. Sabe que pronto, muy pronto, le enviaremos la respuesta a su problema.
Así podrá priorizar aquellos usuarios demasiado descontentos, para poder dar un mejor servicio día a día.
Comencemos por el principio
Cuando surge una necesidad concreta, como es el anticipar cuánto tiempo va a tardar en resolverse una incidencia o cómo se siente alguien al escribir un texto, es cuando buscamos a nuestro alrededor qué herramientas existen para solucionarla. Así es como la Inteligencia Artificial que nos ofrece IBM Watson se convierte en la respuesta, y no en la pregunta; porque es lo que nos va a permitir ayudar a que tu incidencia (y miles más) tarde lo menos posible.
Pero dime, ¿cómo te sientes al reportar esta incidencia?
Análisis de sentimiento con Watson NLU
Queremos en primer lugar, analizar el sentimiento del email en el que un usuario reporta una incidencia. ¿Cómo podemos conseguirlo? La respuesta no está en leer la mente, ni en preguntar al usuario… la respuesta esta en IBM Watson NLU.
Con este servicio de AI, podremos procesar el email pasándolo a la API del servicio, recibiendo como respuesta cuál es el sentimiento general del texto (negativo, neutro o positivo, como ahora veremos más adelante), y alguna información extra que también puede ayudarnos a entender el texto sin haberlo leído.
Entrando en la parte más técnica…
Como entrada a Watson NLU, necesitaremos un texto (string) para que pueda ser analizado. Como salida, se esperan distintos valores, que contengan la información extraída a través de Watson NLU, y que será muy útil para tomar decisiones.
A través de la API a la que se llama desde un Jupyter Notebook de Python, identifica el idioma en el que se ha escrito el correo y lo traduce si es necesario (esta vez lo hemos utilizado en castellano, pero puedes ver todos los idiomas que acepta aquí ).
Lo que hay behind the scenes es este código en Python.
Llamando de nuevo a la API, y enviando como entrada la nueva columna de textos ya traducidos obtenemos información que va a ser clave:
Entidades
Son aquellas palabras o conjuntos de palabras que tienen importancia en el texto, y son de un tipo concreto. Por ejemplo, «dos meses» podría ser una una entidad de tipo «Duración», o «Madrid» una entidad de tipo «Localización».
Watson NLU también da la información de qué sentimiento asociado hay a cada entidad. Si en tu email te quejas de que llevas dos meses teniendo cortes en Internet, «dos meses» tiene un sentimiento negativo asociado (¡y cómo no!).
Sentimiento
Es un número entre -1 y 1, que indica el sentimiento que tiene el usuario que escribe el texto. -1 es el sentimiento más negativo, 0 es neutro, y 1 el sentimiento más positivo. Es una forma rápida de saber, sin leer el texto, qué encontrar en el contenido. Todo apunta a que el sentimiento no va a salir muy bueno al leer tu email de incidencia, ¿no?
Lo que se ejecuta para conseguirlo, es este código en Python.
Un ejemplo de avería:
Buenas tardes, La semana pasada visitó nuestro centro en Madrid un técnico para solucionar la avería del ordenador de dirección. Para solucionar dicha avería, el técnico hizo un cambio de dispositivo. El problema es que el nuevo dispositivo funciona peor que el anterior dando problemas como: problemas para arrancarlo, y apagarlo, y mal funcionamiento en general. Esperamos una solución cuanto ante
Otro ejemplo de avería:
Buenos días, el portal web funciona muy mal. No sólo funciona
lentamente, constantemente me hace fuera de la sesión.
Hay ocasiones donde el modelo de AI de Watson NLU necesita más información sobre el caso de uso para identificar entidades; cuanta más información específica añadamos a Watson NLU sobre nuestro caso, en este caso, tipos de incidencias, localizaciones, etc, mejor procesará el texto. Para enriquecer Watson NLU, se puede utilizar Watson Knowledge Studio. Y sí… eso es otra historia, ¡que quizás os contemos otro día!
Una vez coordinado el resto del equipo de IBM Garage, obtenemos una solución donde está integrada la llamada a Watson NLU, y donde se muestra visualmente la información para que se pueda consultar en una web, cada vez que entra una incidencia.
Ahora Isabel ya sabe que estás disgustad@ viendo solamente un número, y antes de leer todo lo que has escrito. Pero, ¿va a poder resolverla rápidamente? ¿O va a acumularse en una montaña de usuarios que no obtienen resolución rápida porque la incidencia se complica?
Nos mira de reojo, esperando que podamos responder. Si tú también quieres saber la respuesta, la encontrarás cuando se publique la parte II de nuestra historia con Isabel.