Chatbot basé sur la PNL dans PyTorch. Déploiement Bonus Flask et JavaScript

Nœud source: 1123050
Victoria Maslova

Parmi les différentes manières d'améliorer la satisfaction client, les chatbots sont un solution puissante pour aider la clientèle. Les chatbots sont abordables, aident à faire évoluer votre entreprise, entièrement personnalisables, aident vos clients à trouver les bons produits/services et contribuent à renforcer la confiance pour votre entreprise. Pour le prouver, je vais passer en revue le contenu suivant :

  1. Qu'est-ce qu'un chatbot de machine learning ?
  2. Pourquoi les chatbots sont importants dans différentes sphères commerciales ?
  3. Créez votre propre chatbot basé sur la PNL en utilisant PyTorch.
  4. Déployez le chatbot en Javascript et Flask.

Un chatbot (IA conversationnelle) est un programme automatisé qui simule une conversation humaine via des messages texte, des conversations vocales ou les deux. Il apprend à le faire en se basant sur de nombreuses entrées, et Traitement du langage naturel (PNL).

Pour des raisons de sémantique, les chatbots et les assistants conversationnels seront utilisés de manière interchangeable dans cet article, ils signifient en quelque sorte la même chose.

Business Insider a indiqué que le marché mondial des chatbots devrait passer de 2.6 milliards de dollars en 2019 à 9.4 milliards de dollars en 2024, prévoyant un taux de croissance annuel composé de 29.7 %. Le même rapport a également suggéré que la plus forte croissance de la mise en œuvre de chatbot se produirait dans les secteurs de la vente au détail et du commerce électronique, en raison de la demande croissante de fournir aux clients des expériences omnicanales transparentes.

Cela seul devrait suffire à vous convaincre que les chatbots sont le moyen de gérer les relations avec les clients à l'avenir, mais ils continueront également à se développer en tant qu'outils internes pour les outils d'entreprise et presque tous les secteurs adopteront la technologie si ce n'est déjà fait.

Vous trouverez ci-dessous les principales raisons pour lesquelles de plus en plus d'entreprises adoptent la stratégie des chatbots et en quoi elles constituent une formule gagnant-gagnant pour acquérir et fidéliser des clients.

  • Réduire le temps d'attente des clients - 21% de consommateurs voir les chatbots comme le moyen le plus simple de contacter une entreprise. Les bots sont un moyen plus intelligent de s'assurer que les clients reçoivent la réponse immédiate qu'ils recherchent sans les faire attendre dans une file d'attente.
  • Disponibilité 24 × 7 — Les bots sont toujours disponibles pour engager les clients avec des réponses immédiates aux questions courantes qu'ils posent. Le principal avantage potentiel de l'utilisation des chatbots est un service client 24 heures sur XNUMX.
  • Meilleur engagement client — Les robots conversationnels peuvent engager les clients XNUMX heures sur XNUMX en commençant une conservation proactive et en proposant des recommandations personnalisées qui améliorent l'expérience client.
  • Économisez sur les coûts du service client — Les chatbots aideront les entreprises à économiser plus de 8 milliard de dollars par an. Les bots peuvent être facilement mis à l'échelle, ce qui permet d'économiser les coûts de support client liés à l'embauche de plus de ressources, les coûts d'infrastructure, etc.
  • Automatisez la qualification des leads et les ventes — Vous pouvez automatiser votre entonnoir de vente avec des chatbots pour pré-qualifier les prospects et les diriger vers la bonne équipe pour un suivi plus poussé. Être capable d'engager les clients augmente instantanément le nombre de prospects et les taux de conversion.

1. Comment l'IA conversationnelle peut automatiser le service client

2. Chats automatisés ou en direct : à quoi ressemblera l'avenir du service client ?

3. Les chatbots en tant qu'assistants médicaux dans la pandémie de COVID-19

4. Chatbot contre. Assistant virtuel intelligent — Quelle est la différence et pourquoi s'en soucier ?

Il existe de nombreuses plates-formes où les développeurs, les scientifiques des données et les ingénieurs en apprentissage automatique peuvent créer et maintenir des chatbots comme Dialogflow ainsi que Amazon Lex. Mais mon objectif dans cet article est de vous montrer comment créer un chatbot à partir de zéro pour vous aider à comprendre les concepts des réseaux Feed-Forward pour le traitement du langage naturel.

Commençons!

Vous pouvez facilement trouver un code complet dans mon GitHub repo.

Voici un petit plan que je veux suivre pour construire un modèle.

  1. Théorie + concepts PNL (Stemming, Tokenization, sac de mots)
  2. Créer des données d'entraînement
  3. Modèle PyTorch et formation
  4. Enregistrer/charger le modèle et implémenter le chat

Nous allons créer un chatbot pour les besoins des fournisseurs de café et de thé afin de répondre à des questions simples sur les heures d'ouverture, les options de réservation, etc.

Un framework de chatbot a besoin d'une structure dans laquelle les intentions de conversation sont définies. Une façon propre de le faire est d'utiliser un fichier JSON, comme celui-ci.

Intentions du chatbot

Chaque intention conversationnelle contient :

  • a Étiquette (un nom unique)
  • motifs (modèles de phrases pour notre classificateur de texte de réseau neuronal)
  • réponses (un sera utilisé comme réponse)

Donc, notre pipeline de PNL ressemble à ceci

  • tokenize
  • Inférieur + tige
  • Exclure les caractères de ponctuation
  • Sac de mots

Nous créons une liste de documents (phrases), chaque phrase est une liste de mots-racines et chaque document est associé à une intention (une classe). Le code complet est dans ce fichier.

Ensuite, nous devons définir des données d'entraînement et des hyperparamètres.

Après toutes les étapes de prétraitement nécessaires, nous créons un modèle.py fichier pour définir FeedForward Neural Network.

Les réseaux de neurones feedforward sont réseaux de neurones artificiels où les connexions entre les unités ne forment pas un cycle. Les réseaux de neurones feedforward ont été le premier type de réseau de neurones artificiels inventé et sont plus simples que leurs homologues, réseaux de neurones récurrents. Ils s'appellent feedforward car les informations ne circulent que dans le réseau (pas de boucles), d'abord à travers les nœuds d'entrée, puis à travers les nœuds cachés (si présent), et enfin via les nœuds de sortie.

Fais attention! En fin de compte, nous n'avons pas besoin d'une fonction d'activation car plus tard nous utiliserons la perte d'entropie croisée et cela appliquera automatiquement une fonction d'activation pour nous.

Pourquoi utilisons-nous ReLU ?

Ils sont simples, rapides à calculer et ne souffrent pas de gradients évanouissants, comme les fonctions sigmoïdes (logistique, tanh, erf, etc.). La simplicité de mise en œuvre les rend adaptés à une utilisation sur les GPU, qui sont très courants aujourd'hui car optimisés pour les opérations matricielles (qui sont également nécessaires pour les graphiques 3D).

Après avoir défini une perte CrossEntropy et Adam, nous implémentons une étape de retour et d'optimisation.

Que signifient toutes ces lignes ?

Nous définissons zero_grad() sur l'optimiseur car dans PyTorch, pour chaque mini-lot pendant la phase d'entraînement, nous devons explicitement définir les gradients à zéro avant de commencer à faire de la rétropropagation (c'est-à-dire la mise à jour des poids et des biais) car PyTorch accumule les gradients sur passes en arrière ultérieures.

Appeler .backward() plusieurs fois accumule le gradient (par addition) pour chaque paramètre. C'est pourquoi vous devez appeler optimiser.zero_grad() après chaque appel .step(). Notez qu'après le premier appel arrière, un deuxième appel n'est possible qu'après avoir effectué une autre passe avant.

Optimizer.step effectue une mise à jour des paramètres en fonction du gradient actuel (stocké dans l'attribut .grad d'un paramètre) et de la règle de mise à jour.

Enfin, après avoir exécuté le script train.py, quel résultat merveilleux nous avons obtenu !

Et dans la dernière partie, nous devons enregistrer notre modèle. Voici comment je l'ai fait facilement.

J'ai décidé d'aller plus loin et de créer cette étonnante visualisation de ChatBot.

Vous trouverez tous mes scripts HTML, CSS et JavaScript dans mon repo GitHub.

Chin!

Maintenant, comme vous savez ce qu'est un chatbot et à quel point la technologie des bots est importante pour tout type d'entreprise. Vous conviendrez certainement que les robots ont radicalement changé la façon dont les entreprises interagissent avec leurs clients.

Les technologies de chatbot deviendront un élément essentiel de la stratégie d'engagement client à l'avenir. Dans un avenir proche, les robots progresseront pour améliorer les capacités humaines et les agents humains pour être plus innovants dans la gestion des activités stratégiques.

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

Horodatage:

Plus de Vie des chatbots