Chatbot basado en PNL en PyTorch. Despliegue de Bonus Flask y JavaScript

Nodo de origen: 1123050
victoria maslova

Entre las diversas formas en que puede mejorar la satisfacción del cliente, los chatbots son una poderosa solución para ayudar a la base de clientes. Los chatbots son asequibles, ayudan a escalar su negocio, son totalmente personalizables, ayudan a sus clientes a encontrar los productos / servicios adecuados y ayudan a generar confianza para su negocio. Para probar esto, revisaré el siguiente contenido:

  1. ¿Qué es un chatbot de aprendizaje automático?
  2. ¿Por qué los chatbots son importantes en diferentes esferas empresariales?
  3. Cree su propio chatbot basado en PNL utilizando PyTorch.
  4. Implemente chatbot en Javascript y Flask.

Un chatbot (IA conversacional) es un programa automatizado que simula una conversación humana a través de mensajes de texto, chats de voz o ambos. Aprende a hacerlo basándose en una gran cantidad de aportaciones y Procesamiento del lenguaje natural (PNL).

Por el bien de la semántica, los chatbots y los asistentes de conversación se usarán indistintamente en este artículo, significan lo mismo.

Business Insider informó que se esperaba que el mercado global de chatbots creciera de $ 2.6 mil millones en 2019 a $ 9.4 mil millones en 2024, pronosticando una tasa de crecimiento anual compuesta del 29.7%. El mismo informe también sugirió que el mayor crecimiento en la implementación de chatbots se produciría en las industrias minorista y de comercio electrónico, debido a la creciente demanda de brindar a los clientes experiencias omnicanal fluidas.

Eso solo debería ser suficiente para convencerte de que Los chatbots son la forma de manejar las relaciones con los clientes. en el futuro, pero también continuarán creciendo como herramientas internas para herramientas empresariales y casi todas las industrias adoptarán la tecnología si aún no lo han hecho.

A continuación se presentan las razones clave por las que cada vez más empresas están adoptando la estrategia de chatbot y cómo son una fórmula beneficiosa para todos para adquirir y retener clientes.

  • Reducir el tiempo de espera del cliente - 21% de consumidores ve a los chatbots como la forma más fácil de contactar una empresa. Los bots son una forma más inteligente de garantizar que los clientes reciban la respuesta inmediata que buscan sin hacerlos esperar en una cola.
  • Disponibilidad 24 × 7 - Los bots siempre están disponibles para involucrar a los clientes con respuestas inmediatas a las preguntas comunes que hacen. El principal beneficio potencial de usar chatbots es el servicio al cliente las 24 horas.
  • Mejor compromiso con el cliente - Los bots conversacionales pueden involucrar a los clientes las XNUMX horas del día iniciando la conservación proactiva y ofreciendo recomendaciones personalizadas que mejoran la experiencia del cliente.
  • Ahorre costos de servicio al cliente - Los chatbots ayudarán a las empresas a ahorrar más de 8 millones de dólares por año. Los bots se pueden escalar fácilmente, lo que ahorra costos de soporte al cliente de contratar más recursos, costos de infraestructura, etc.
  • Automatice la calificación y las ventas de clientes potenciales - Puede automatizar su embudo de ventas con chatbots para precalificar clientes potenciales y dirigirlos al equipo adecuado para una mayor promoción. Poder involucrar a los clientes aumenta instantáneamente la cantidad de clientes potenciales y las tasas de conversión.

1. Cómo la IA conversacional puede automatizar el servicio al cliente

2. Chats automatizados frente a chats en vivo: ¿Cómo será el futuro del servicio al cliente?

3. Chatbots como asistentes médicos en la pandemia de COVID-19

4. Chatbot vs. Asistente virtual inteligente: ¿cuál es la diferencia y por qué preocuparse?

Hay muchas plataformas donde los desarrolladores, científicos de datos e ingenieros de aprendizaje automático pueden crear y mantener chatbots como Dialogflow y Amazon lex. Pero mi objetivo en este artículo es mostrarle cómo crear un chatbot desde cero para ayudarlo a comprender los conceptos de las redes Feed-Forward para el procesamiento del lenguaje natural.

¡Vamos a empezar!

Puede encontrar fácilmente un código completo en mi Repositorio GitHub.

Aquí hay un plan breve que quiero seguir para construir un modelo.

  1. Teoría + conceptos de PNL (derivación, tokenización, bolsa de palabras)
  2. Crea datos de entrenamiento
  3. Modelo y entrenamiento de PyTorch
  4. Guardar / cargar modelo e implementar el chat

Construiremos un chatbot para las necesidades de los proveedores de café y té para manejar preguntas simples sobre el horario de atención, las opciones de reserva, etc.

Un marco de chatbot necesita una estructura en la que se definan las intenciones conversacionales. Una forma limpia de hacer esto es con un archivo JSON, como este.

Intenciones de chatbot

Cada intento de conversación contiene:

  • a etiqueta (un nombre único)
  • . (patrones de oraciones para nuestro clasificador de texto de red neuronal)
  • respuestas (uno se usará como respuesta)

Entonces, nuestra canalización de PNL se ve así

  • tokenize
  • Tallo + inferior
  • Excluir caracteres de puntuación
  • Bolsa de palabras

Creamos una lista de documentos (oraciones), cada oración es una lista de palabras derivadas y cada documento está asociado con una intención (una clase). El código completo está en este archivo.

Luego, necesitamos establecer unos datos de entrenamiento e hiperparámetros.

Después de todos los pasos de preprocesamiento necesarios, creamos un modelo.py archivo para definir FeedForward Neural Network.

Las redes neuronales feedforward son redes neuronales artificiales donde las conexiones entre unidades no forman un Cycle. Las redes neuronales feedforward fueron el primer tipo de red neuronal artificial inventada y son más simples que su contraparte. redes neuronales recurrentes. Se les llama avance porque la información solo viaja hacia adelante en la red (sin bucles), primero a través de los nodos de entrada, luego a través del nodos ocultos (si está presente), y finalmente a través de los nodos de salida.

¡Ten cuidado! Al final no necesitamos una función de activación porque luego usaremos la pérdida de entropía cruzada y automáticamente nos aplicará una función de activación.

¿Por qué usamos ReLU?

Son simples, rápidos de calcular y no sufren de gradientes que desaparecen, como las funciones sigmoides (logística, tanh, erf y similares). La simplicidad de implementación los hace adecuados para su uso en GPU, que son muy comunes hoy en día debido a que están optimizados para operaciones matriciales (que también son necesarias para gráficos 3D).

Después de definir una pérdida de CrossEntropy Loss y Adam, implementamos un paso hacia atrás y optimizador.

¿Qué significan todas estas líneas?

Establecemos zero_grad () en optimizador porque en PyTorch, para cada mini-lote durante la fase de entrenamiento, necesitamos establecer explícitamente los gradientes en cero antes de comenzar a hacer backpropragation (es decir, actualización de pesos y sesgos) porque PyTorch acumula los gradientes en posteriores pasadas hacia atrás.

Llamar a .backward () varias veces acumula el gradiente (por adición) para cada parámetro. Es por eso que debe llamar a optimizer.zero_grad () después de cada llamada .step (). Tenga en cuenta que después de la primera llamada hacia atrás, una segunda llamada solo es posible después de haber realizado otra pasada hacia adelante.

optimizer.step realiza una actualización de parámetros basada en el gradiente actual (almacenado en el atributo .grad de un parámetro) y la regla de actualización.

Finalmente, después de ejecutar el script train.py, ¡qué resultado tan maravilloso obtuvimos!

Y en la última parte necesitamos guardar nuestro modelo. Aquí la forma en que lo hice fácilmente.

Decidí ir más allá y crear esta increíble visualización de ChatBot.

Todos mis scripts HTML, CSS y JavaScript los encontrará en mi repositorio de GitHub.

¡Disfruta!

Ahora, como ya sabe lo que es un chatbot y lo importante que es la tecnología de bot para cualquier tipo de negocio. Seguramente estará de acuerdo en que los bots han cambiado drásticamente la forma en que las empresas interactúan con sus clientes.

Las tecnologías de chatbot se convertirán en una parte vital de la estrategia de participación del cliente en el futuro. En el futuro cercano, los bots avanzarán para mejorar las capacidades humanas y los agentes humanos para que sean más innovadores en el manejo de actividades estratégicas.

Source: https://chatbotslife.com/nlp-based-chatbot-in-pytorch-bonus-flask-and-javascript-deployment-474c4e59ceff?source=rss—-a49517e4c30b—4

Sello de tiempo:

Mas de Vida de chatbots