lunes, 26 de septiembre de 2016

Chatbots: hablando con las máquinas


A medida que avanza la tecnología, los humanos y las máquinas se acercan cada vez más y la forma en la que nos comunicamos con ellas es cada vez más natural.
 
Desde la época en la que para decirle a un ordenador lo que tenía que hacer había que perforar una serie de tarjetas hemos ido mejorando, llegado hasta ahora, momento en el que incluso podemos decirle con nuestras propias palabras lo que queremos como si se lo dijéramos a otra persona. Eso implica una comunicación intuitiva que elimina la barrera del conocimiento técnico permitiendo a cualquiera interactuar con una máquina.

Es por esto que existe una gran tendencia a usar los llamados chatbots en numerosos ámbitos y negocios.

Un bot es un software que realiza una tarea de forma automática sin intervención humana. Los chatbots son bots diseñados para charlar con las personas simulando ser otra persona para ofrecer cualquier tipo de servicio al usuario de una forma más cercana, bien sea obtener información de un producto, contratar un viaje o fijar una cita en tu agenda.

El desarrollo de la inteligencia artificial y el machine learning permite que cada vez estos chatbots tengan más personalidad y sean más reales, dando lugar a complejos asistentes personales con los que se puede hablar de cualquier cosa y que en un futuro próximo podrán llegar a ser indistinguibles de un ser humano.

Es muy probable que todos nosotros hayamos hablado alguna vez con un chatbot, pues están presentes en muchas webs, aplicaciones de mensajería (Telegram, Facebook Messenger) o incluso en nuestros propios smartphones (Siri, Cortana, Google Assistant) y cada vez estarán más presentes en nuestro día a día.

¿Pero cómo se desarrolla un bot? Pues existen varias plataformas de creación de bots, dentro de las cuales cabe destacar las siguientes:

  • Telegram (https://core.telegram.org/bots/api): Desarrollo de bots para la aplicación de mensajería de Telegram.
  • Facebook Messenger (https://messengerplatform.fb.com/): Desarrollo de bots para la aplicación de mensajería de Facebook.
  • Pandorabots (http://www.pandorabots.com/): Desarrollo de bots que definen flujos conversacionales mediante el uso de AIML (Artificial Intelligence Mark-up Language) que se basa en el matching de patrones.
  • rebot.me (http://rebot.me/): Creación de bots definiendo respuestas para las distintas frases que pueda introducir el usuario.
  • LUIS (https://www.luis.ai/): Language Understanding Intelligent Service. Es un framework de Microsoft que permite procesar el lenguaje natural para extraer información analizable.
  • wit (https://wit.ai/): Similar a LUIS pero libre. Tiene además la funcionalidad de definir flujos de conversación.

En I+D, el equipo de Bond hemos desarrollado e integrado un chatbot cuya misión es entablar una conversación con el usuario que se da de alta en la aplicación para conocerle mejor y extraer información útil que será utilizada para generar recomendaciones más acertadas, que es la principal funcionalidad de la plataforma. Este chatbot realiza un papel activo en la conversación, siendo el encargado de realizar las preguntas, al contrario de lo que suele ser común.

Concretamente se ha desarrollado utilizando LUIS. Con este framework de Microsoft se pueden crear modelos de entendimiento del lenguaje para poder extraer información de las frases del usuario que será utilizada para generar su perfil en Bond y avanzar en el flujo de la conversación.

Estos modelos se crean gracias a un proceso de aprendizaje en el que el desarrollador va proporcionando distintos ejemplos de oraciones y marcándolas con intents y entities determinados hasta que la plataforma es capaz de identificar por sí misma la información.
 
Un intent viene a ser la intención del usuario en una frase determinada y los entities son elementos de información necesarios para nuestro caso de uso.

Cuando el modelo está creado, se despliega en un endpoint HTTP. El código Java implementado en Bond enviará ahí las frases del usuario y obtendrá como respuesta un JSON con todos estos elementos. La lógica de negocio decidirá qué preguntas hacer para continuar con la conversación al mismo tiempo que va almacenando en base de datos la información.

Integrar otros chatbots para otros propósitos diferentes dentro de la aplicación es tan sencillo como entrenar otros modelos de entendimiento y escribir la lógica que ejecute las acciones necesarias.

Autor: Roger Guizan

No hay comentarios:

Publicar un comentario