¿Cómo se aplica el aprendizaje automático al chat bot?

Hoy vivimos en una era de innovaciones rápidas en el ámbito de la tecnología. Con la aparición de Big Data, IoT, Inteligencia Artificial, la situación está cambiando de manera rápida y densa.

Los chatbots ahora buscan ser el próximo modelo conversacional de aplicaciones de mensajería. Están diseñados para imitar a los humanos de la mejor manera posible utilizando los conceptos básicos de PNL (procesamiento del lenguaje natural) y la inteligencia artificial.

Las personas ahora pasan más tiempo en aplicaciones de mensajería que nunca, más que incluso en las redes sociales.

El aprendizaje automático es un tipo de IA que hace que las computadoras aprendan cosas sin programarlas.

Existen algoritmos y aplicaciones de aprendizaje automático listos para usar con capacidades basadas en voz y texto. Como desarrollador, no necesita ser experto en el desarrollo de estos algoritmos.

Debe usar un modelo de aprendizaje automático para desarrollar chatbots capaces de responder usando lenguaje natural a una variedad de preguntas.

Espero que esto responda a su consulta !

Para chatbots usualmente usamos redes neuronales, específicamente redes neuronales recurrentes seq2seq.

Las redes Seq2seq generalmente contienen dos redes neuronales recurrentes (generalmente LSTM): un codificador, que toma una oración de contexto (lo que escribe el usuario), y un decodificador, cuyo estado oculto inicial es el vector oculto del codificador y su entrada es la palabra anterior salida Estos sistemas se llaman seq2seq porque toman una secuencia (oración de contexto) y producen otra secuencia (oración de salida / respuesta de la máquina).

Hay un montón de este tipo de conjuntos de datos para entrenar modelos seq2seq, y debe mirar el documento de Google llamado “Modelos de conversación neuronales”, que detalla la naturaleza de los modelos seq2seq aplicados a los chatbots y los conjuntos de datos que utilizan.

Tuve la oportunidad de participar en el desafío del hackathon realizado por Ideas2it, donde nuestro equipo logró construir e implementar un chatbot interno de recursos humanos. Estos son los pasos que seguimos para construir un chatbot desde cero

1. Canal para el usuario final : puede ser una aplicación independiente integrada en un sitio de terceros o un complemento integrado con cualquiera de los canales sociales como Google Hangouts, imessenger o FB messenger. Existen numerosos complementos de código abierto en casi todos los idiomas. Elija uno o uno para cada requisito y tenga un envoltorio alrededor para tener una aplicación con soporte de integración de varias plataformas.

2. PNL (procesamiento del lenguaje natural) : PNL es un programa de computadora para conversar e imitar conversaciones humanas. Aquí, los fragmentos dados por el usuario se segmentan en intentos y entidades. Por ejemplo, supongamos que “Quiero buscar un hotel cercano” es el fragmento ingresado por el usuario. Aquí, la PNL clasifica “usuario que busca algo” como una intención y “hotel” como entidad. Algunos de los PNL que proporcionan integración directa a los canales sociales son Amazon Lex, IBM Watson, Dialogflow (Dialogflow). Algunos de estos PNL reducen nuestro esfuerzo al reemplazar el paso 1 también. Pero, prefiero tener una aplicación de contenedor separada antes de enviar la solicitud del usuario a NLP.

3. Cumplimiento : aquí es donde se genera y se devuelve la respuesta a la consulta de los usuarios. Los PNL tienen la función de responder directamente con un simple mensaje de texto inferido de los intentos y entidades, pero en la mayoría de los casos se requiere un entorno externo para calcular la respuesta correcta. Este entorno se puede conectar a través de PNL llamado webhoook para su cumplimiento, donde la respuesta de su webhook se servirá como una respuesta real.

Vea cómo crear un chatbot para empresas, guía paso a paso con una estimación :

Todos los Chatbots se dividen en dos categorías según su funcionalidad:

  • Bots, que funcionan con comandos específicos
  • Bots basados ​​en algoritmos de aprendizaje automático de Chatbot

Dependiendo del tipo de bot que necesitemos, elegiremos el conjunto de herramientas. En nuestro artículo anterior sobre Chatbots, cubrimos servicios que se pueden usar para construir un bot.

Chatbots de aprendizaje automático

Estos bots se caracterizan por una Inteligencia Artificial, por lo que no necesita ser claro con precisión cuando habla con él. El Bot entiende el lenguaje no solo los comandos. Y se vuelven más inteligentes con el tiempo.

Para una interacción más complicada usando lenguaje natural y procesando un mayor número de solicitudes, use Wit.ai/Api.ai/QnAMaker (plataforma de chatbot abierta para procesar lenguaje natural)

Microsoft QnAMaker.ai es un software Chatbot que se puede aplicar para el tratamiento de datos, que proporciona el usuario y que Chatfuel no puede procesar.

Estos modelos son generativos, lo que significa más complicados. No funcionan con respuestas predefinidas. Crean respuestas desde cero. Los modelos generativos, por regla general, se basan en métodos de traducción automática.

Ambos enfoques tienen beneficios y desventajas. Trabajando con la base de respuestas, Bot no comete errores gramaticales. Sin embargo, pueden obtener una solicitud, la respuesta que no tienen. Los modelos generativos son más inteligentes. Imitan la conversación de personas reales. Sin embargo, es muy probable que cometan errores gramaticales (especialmente en oraciones largas) y requiere una gran cantidad de datos de aprendizaje.

Si desea encontrar una raza de perro, se necesita el procesamiento del código primario para no obtener una larga lista de todas las razas. Este procesamiento determinará la raza del perro en un mensaje e indicará la palabra con una etiqueta especial. En tal caso, puede buscar la etiqueta que aplica la regla. WordNet se puede usar para determinar definiciones básicas. Es posible que tenga que agregar un dominio de bibliotecas especiales, como la lista de medicamentos si crea un servicio de salud Bot.

Construcción de alto nivel de un Chatbot AI

Construir un chatbot de IA es algo interesante. Bueno, primero debes aprender en qué área específica quieres enfocarlo. Esto se debe a que es difícil construir un bot de IA general y, a menudo, funcionan mejor cuando se especializan.

Por lo general, hay dos componentes principales de un chatbot de IA: procesamiento del lenguaje natural (PNL) y redes neuronales (NN).

Procesamiento de lenguaje natural (PNL)

El procesamiento del lenguaje natural busca analizar el lenguaje en entidades, intenciones, sentimientos y algunas otras cosas. Si no tiene experiencia en esto, entonces es mejor usar Dialogflow o http://Wit.ai .

Red neuronal recurrente (RNN)

Después de todo eso, tendrás que contar las palabras, convertir las palabras en números enteros y luego mapearlas entre sí. De esta manera, se puede usar el NN o un tipo más específico llamado Red Neural Recurrente (RNN). Un chatbot a menudo es un codificador y decodificador RNN. Si usa Google TensorFlow (o Keras), terminará usando la secuencia de secuencia (Seq2Seq) para crear modelos.

Las redes Seq2Seq generalmente contienen dos redes neuronales recurrentes: codificador y decodificador. Estos se basan en la memoria a corto y largo plazo (LSTM). Estos sistemas se llaman Seq2Seq porque toman una secuencia (con contexto) y producen la probabilidad de que ocurra otra palabra / oración.

¡Solo puedo responder a esto por lo que hacemos en SPIXII! Utilizamos algoritmos de aprendizaje automático para dar sentido a los datos del cliente. Resuelven dos cosas:

  1. Cómo le gusta interactuar con el chatbot; por ejemplo, cuánto tiempo tarda en responder
  2. Su demografía, por ejemplo, su edad u ocupación, si corresponde

Si los algoritmos ven que a una persona de 60 años le gusta interactuar con el chatbot de manera diferente a una persona de 18 años, cambiará su tono de voz en consecuencia. Cuantas más conversaciones tenga, más personalizado será.

No es IA exactamente, ¡pero está bastante cerca!

Machine Learning ya está involucrado en Chatbot. Hoy en día hay diferentes API de Chatbot disponibles que utilizan el aprendizaje automático para dar respuestas a preguntas como el mundo real. El aprendizaje automático es parte de la inteligencia artificial. Los chatbots son conversacionales, por lo que se aplica PNL con Machine Learning para construir un chatbot de IA.

A continuación se muestra el enlace descrito que sabrá cuáles son las tecnologías utilizadas en la construcción de un Chatbot.

Conozca la tecnología de subrayado detrás de la inteligencia artificial | API de Chatbot

Chatbot se puede modular para comprender el lenguaje, la reconfiguración y el lenguaje sintético.

A diferencia del sistema basado en reglas como AIML, la nueva ola ML, es decir, el aprendizaje profundo o el aprendizaje de datos sin procesar de principio a fin, cambió todas las áreas anteriores.

Para comprender, como el lenguaje de análisis, las herramientas de PNL como la sintaxis de Google utilizan el aprendizaje profundo para superar cualquier trabajo anterior.

Para razonar, el trabajo está detrás de otros aspectos porque es más difícil, Salesforce invirtió fuertemente en el equipo del profesor Richard Socher para aprender un razonamiento simple. La Máquina Neural Turing de Google también muestra una dirección prometedora.

Para los sintéticos del lenguaje, herramientas como wavenet también superan a los sistemas antiguos.

Podemos ver que ML reemplaza toda la cadena pieza por pieza.

La forma más fácil es usar la biblioteca de aprendizaje automático. Biblioteca de aprendizaje automático ya hay muchos. Creo que lo más bueno es la biblioteca de aprendizaje automático en Python.
En realidad, la aplicación de machine learning en python es muy fácil. Porque la biblioteca de aprendizaje automático ya está muy en Python. Ejemplo como este: ChatterBot 0.4.3.
Pero tiene que aprender todos los algoritmos aplicados en el aprendizaje automático para la mejor práctica.