Proyecto de Data Science. Bort, el asistente virtual

Aurora
Aurora

De las mentes de David Moscoso, Adrián Cox y Tomás González llega “Bort”, el asistente virtual creado a través de Machine Learning y redes neuronales que tiene la intención de ser capaz de responder a la intención del usuario. Bort es el proyecto de fin de Bootcamp de Data Science y Machine Learning de nuestra escuela que de hecho ha sido implementado dentro de nuestro propio canal de Discord.

Comenzando por el principio debemos diferenciar entre:

  • Un bot de atención al usuario que exclusivamente responde ante preguntas y comandos previamente configurados, que podemos encontrar en infinidad de páginas especialmente como atención al cliente que responde a las preguntas más frecuentes.
  • Un asistente virtual que entiende las intenciones de los usuarios y da respuesta a estas cuestiones. Los asistentes virtuales más conocidos son Alexa, Ok Google o Siri. Estos realizan funciones más complejas y son capaces de interactuar.

Si quieres conocer este proyecto de la propia voz de sus creadores, no te pierdas su presentación de Bort, también puedes echarle un vistazo al perfil de GitHub de David Moscoso para ampliar información.

¿Cómo está creado BORT?

Lo que está detrás de BORT, que es una estructura, es un sistema de procesamiento basado en palabras creado por Google y llamado BERT. Se trata de una red neuronal que lo que hace es analizar la parte va delante y lo que va detrás de cada una de las palabras, y con eso puede definir las intenciones.

BERT está entrenado para que detecte cuatro intenciones distintas con diferentes respuestas:

  1. Informativo
  2. Pedido
  3. Pregunta
  4. Diversión 

Hace años, para buscar en Google deberías introducir conceptos y sumarle un +, por ejemplo “+perros” y le ibas añadiendo todos los conceptos, pero, pronto se dieron cuenta de que era insuficiente y empezaron a trabajar la intencionalidad del usuario con BERT.

Por este mismo motivo, David, Tomás y Adrián, decidieron llevarlo un poquito más allá, ya que, además BORT, estaba pensado, como primera fase y prueba, para ser introducido en Discord.

BORT un sistema modular, lo que lo vuelve más flexible a la hora de cambiar una parte o una funcionalidad, lo que al mismo tiempo lo hace más escalable como proyecto, echemos un vistazo a su estructura.

Diagrama red neuronal BORT - ID Bootcamps

Cuando se recibe el input, pasa por dos capas diferentes para ser entendida. La primera capa es una clasificación multietiqueta con BERT. La red neuronal ha sido entrenada para reconocer la intención básica de este input. Cuando se detecta esta intención básica, la entrada pasa a otra clasificación con CountVectorizer y un modelo Naive Bayes. Este modelo clasifica en la semántica de la intención dentro de las posibles secciones o respuestas a la intención preestablecida para el bot. Entonces, el bot actúa de acuerdo con la intención identificada.

¿Qué modelos se han utilizado?

Los modelos se utilizan en Data Science para ayudarnos a conseguir los resultados que queremos en nuestros proyectos, en este caso, se pueden diferenciar dos modelos claramente:

Clasificador multilingüe BERT

BORT preclasifica cuatro intenciones: informativa, peticiones, preguntas y diversión. BERT Multilingüe fue preentrenado en 104 idiomas con el contenido de Wikipedia. Bert fue preentrenado sin etiqueta, sólo fue entrenado para predecir la siguiente frase, o palabras enmascaradas. Por ello, BORT fue entrenado con frases originales etiquetadas con estas intenciones.

Naive Bayes y CountVectorizer

BERT es genial para encontrar la intención básica pero, para procesar la semántica de la frase, CountVectorizer, funciona mejor. Este vectoriza las palabras y calcula las frecuencias del lema con un cálculo TF-IDF. El modelo Naive Bayes clasifica en las múltiples respuestas preestablecidas para esa intención.

Esta división en dos modelos hace que BERT preste más atención en la sintaxis de la entrada y el Naive Bayes más en la semántica. Combinados pueden predecir la intención del usuario con una precisión superior al 90%.

¿Cómo se orientó el proyecto?

En un inicio, BORT se creó con el objetivo de que se convirtiera en el mejor amigo del Data Scientist, con este enfoque, se crearon las primeras funcionalidades. Como bien cuentan sus creadores, se trata de un proyecto muy escalable, por este motivo, definieron algunas de las funciones que creían interesantes desarrollar en los siguientes pasos.

Podemos ver a continuación algunos ejemplos de cómo Alfobot interactúa en esta comunidad.

funciones del asistente virtual Bort - ID Bootcamps

Como primera prueba, Bort fue instalado en el Servidor de Discord de ID Bootcamps, a modo de homenaje, el bot adoptó la apariencia de nuestro profesor de Data Science y Machine Learning, Alfonso D Blázquez, y por supuesto, el nombre que recibió fue “Alfobot”.

Alfobot forma parte de nuestra comunidad de Discord, es capaz de participar en la conversación si se le pide, buscar información en internet para dar respuesta, responder a preguntas, es resumen, un miembro de pleno derecho y un gran asistente.

Muchas gracias David, Tomás y Adrián por haber sacado adelante un proyecto hecho con tanto mimo y potencial, os deseamos todos los éxitos del mundo, os los merecéis.

 


 

Si tú también quieres ser capaz de desarrollar proyectos como BORT, no lo pienses más, echa un vistazo a nuestro Bootcamp en Data Science y Machine Learning.

Si tienes dudas, puedes hablar con Vanessa, nuestra Asesora Académica, a través de su email vanessa@idbootcamps.com, mandarnos un WhatsApp o llamarnos al 673903000

Compartir
Share on facebook
Share on twitter
Share on linkedin

Entradas Relacionadas