Chatbot basato sulla PNL in PyTorch. Bonus Flask e distribuzione JavaScript

Nodo di origine: 1123050
Vittoria Maslova

Tra i vari modi in cui puoi migliorare la soddisfazione del cliente, i chatbot sono a potente soluzione per aiutare la base di clienti. I chatbot sono convenienti, aiutano a far crescere la tua attività, sono completamente personalizzabili, aiutano i tuoi clienti a trovare i prodotti/servizi giusti e aiutano a creare fiducia per la tua attività. Per dimostrarlo, esaminerò i seguenti contenuti:

  1. Che cos'è un chatbot di machine learning?
  2. Perché i chatbot sono importanti in diverse sfere di business?
  3. Costruisci il tuo chatbot basato sulla PNL usando PyTorch.
  4. Distribuisci chatbot in Javascript e Flask.

Un chatbot (IA conversazionale) è un programma automatizzato che simula la conversazione umana tramite messaggi di testo, chat vocali o entrambi. Impara a farlo basandosi su molti input e Natural Language Processing (NLP).

Per motivi di semantica, chatbot e assistenti conversazionali verranno utilizzati in modo intercambiabile in questo articolo, significano in qualche modo la stessa cosa.

Business Insider ha riferito che il mercato globale dei chatbot dovrebbe crescere da $ 2.6 miliardi nel 2019 a $ 9.4 miliardi nel 2024, prevedendo un tasso di crescita annuale composto del 29.7%. Lo stesso rapporto ha anche suggerito che la crescita più elevata nell'implementazione dei chatbot sarebbe nei settori della vendita al dettaglio e dell'e-commerce, a causa della crescente domanda di fornire ai clienti esperienze omnicanale senza soluzione di continuità.

Questo da solo dovrebbe essere sufficiente per convincerti che i chatbot sono il modo per gestire le relazioni con i clienti andando avanti, ma continueranno anche a crescere come strumenti interni per gli strumenti aziendali e quasi tutti i settori adotteranno la tecnologia se non l'ha già fatto.

Di seguito sono riportati i motivi principali per cui sempre più aziende stanno adottando la strategia chatbot e in che modo sono una formula vincente per acquisire e fidelizzare i clienti.

  • Riduci i tempi di attesa dei clienti - 21% di consumatori vedi i chatbot come il modo più semplice per contattare un'azienda. I bot sono un modo più intelligente per garantire che i clienti ricevano la risposta immediata che stanno cercando senza farli aspettare in coda.
  • Disponibilità 24 × 7 — I bot sono sempre disponibili per coinvolgere i clienti con risposte immediate alle domande comuni da loro poste. Il principale vantaggio potenziale dell'utilizzo dei chatbot è il servizio clienti 24 ore su XNUMX.
  • Migliore coinvolgimento dei clienti — I bot conversazionali possono coinvolgere i clienti XNUMX ore su XNUMX avviando una conservazione proattiva e offrendo consigli personalizzati che migliorano l'esperienza del cliente.
  • Risparmia sui costi del servizio clienti — I chatbot aiuteranno le aziende a risparmiare più di $8 miliardi per anno. I bot possono essere facilmente ridimensionati, il che consente di risparmiare sui costi dell'assistenza clienti per l'assunzione di più risorse, sui costi dell'infrastruttura, ecc.
  • Automatizza la qualificazione dei lead e le vendite — Puoi automatizzare il tuo funnel di vendita con i chatbot per prequalificare i lead e indirizzarli al team giusto per ulteriore nutrimento. Essere in grado di coinvolgere i clienti istantaneamente aumenta il numero di lead e i tassi di conversione.

1. In che modo l'IA conversazionale può automatizzare il servizio clienti

2. Chat automatiche e live: come sarà il futuro del servizio clienti?

3. I chatbot come assistenti medici nella pandemia di COVID-19

4. Chatbot vs. Assistente virtuale intelligente: qual è la differenza e perché preoccuparsene?

Esistono molte piattaforme in cui sviluppatori, data scientist e ingegneri di machine learning possono creare e mantenere chatbot come Dialogflow ed Amazon-Lex. Ma il mio obiettivo in questo articolo è mostrarti come creare un chatbot da zero per aiutarti a comprendere i concetti di reti feed-forward per l'elaborazione del linguaggio naturale.

Cominciamo!

Puoi facilmente trovare un codice completo in my Repository GitHub.

Ecco un breve piano che voglio seguire per costruire un modello.

  1. Teoria + concetti di PNL (Stemming, Tokenization, bag of words)
  2. Crea dati di allenamento
  3. Modello PyTorch e formazione
  4. Salva/carica il modello e implementa la chat

Costruiremo un chatbot per le esigenze dei fornitori di caffè e tè per gestire semplici domande su orari di apertura, opzioni di prenotazione e così via.

Un framework di chatbot ha bisogno di una struttura in cui sono definiti gli intenti conversazionali. Un modo pulito per farlo è con un file JSON, come questo.

Intenzioni di chatbot

Ogni intento conversazionale contiene:

  • a etichetta (un nome univoco)
  • modelli (schemi di frase per il nostro classificatore di testo della rete neurale)
  • risposte (uno sarà usato come risposta)

Quindi la nostra pipeline di PNL assomiglia a questa

  • tokenize
  • Inferiore + gambo
  • Escludi i caratteri di punteggiatura
  • Borsa di parole

Creiamo un elenco di documenti (frasi), ogni frase è un elenco di parole con radice e ogni documento è associato a un intento (una classe). Il codice completo è in questo file.

Quindi abbiamo bisogno di impostare i dati di addestramento e gli iperparametri.

Dopo tutti i passaggi di pre-elaborazione necessari, creiamo un modello.py file per definire la rete neurale FeedForward.

Le reti neurali feedforward sono reti neurali artificiali dove le connessioni tra le unità non formano a ciclo. Le reti neurali feedforward sono state il primo tipo di rete neurale artificiale inventata e sono più semplici della loro controparte, reti neurali ricorrenti. Sono chiamati feedforward perché le informazioni viaggiano solo in avanti nella rete (senza loop), prima attraverso i nodi di input, poi attraverso i nodi nascosti (se presente), e infine attraverso i nodi di output.

Stai attento! Alla fine non abbiamo bisogno di una funzione di attivazione perché in seguito utilizzeremo la perdita di entropia incrociata e applicherà automaticamente una funzione di attivazione per noi.

Perché utilizziamo ReLU?

Sono semplici, veloci da calcolare e non soffrono di gradienti evanescenti, come le funzioni sigmoidi (logistiche, tanh, erf e simili). La semplicità di implementazione li rende adatti all'utilizzo su GPU, oggi molto diffuse perché ottimizzate per operazioni a matrice (necessarie anche per la grafica 3D).

Dopo aver definito una perdita CrossEntropy e Adam, implementiamo il passaggio all'indietro e dell'ottimizzatore.

Cosa significano tutte queste righe?

Impostiamo zero_grad() su ottimizzatore perché in PyTorch, per ogni mini-batch durante la fase di addestramento, dobbiamo impostare esplicitamente i gradienti a zero prima di iniziare a eseguire la backpropragation (ovvero l'aggiornamento di pesi e bias) perché PyTorch accumula i gradienti su successivi passaggi all'indietro.

La chiamata a .backward() più volte accumula il gradiente (per addizione) per ciascun parametro. Questo è il motivo per cui dovresti chiamare Optimizer.zero_grad() dopo ogni chiamata .step(). Nota che dopo la prima chiamata .backward, una seconda chiamata è possibile solo dopo aver eseguito un altro passaggio in avanti.

Optimizer.step esegue un aggiornamento dei parametri in base al gradiente corrente (memorizzato nell'attributo .grad di un parametro) e alla regola di aggiornamento.

Alla fine, dopo aver eseguito lo script train.py, che risultato meraviglioso abbiamo ottenuto!

E nell'ultima parte dobbiamo salvare il nostro modello. Qui il modo in cui l'ho fatto facilmente.

Ho deciso di andare oltre e creare questa fantastica visualizzazione di ChatBot.

Tutti i miei script HTML, CSS e JavaScript li troverai nel mio repository GitHub.

Buon divertimento!

Ora, poiché sai cos'è un chatbot e quanto sia importante la tecnologia dei bot per qualsiasi tipo di attività. Sarai sicuramente d'accordo sul fatto che i bot hanno cambiato drasticamente il modo in cui le aziende interagiscono con i propri clienti.

Le tecnologie chatbot diventeranno una parte vitale della strategia di coinvolgimento dei clienti in futuro. Nel prossimo futuro, i robot avanzeranno per migliorare le capacità umane e gli agenti umani per essere più innovativi nella gestione delle attività strategiche.

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

Timestamp:

Di più da Chatbot Life