Chatbot bazat pe NLP în PyTorch. Bonus Flask și implementare JavaScript

Nodul sursă: 1123050
Victoria Maslova

Printre diversele modalități prin care puteți îmbunătăți satisfacția clienților, chatboții sunt a soluție puternică pentru a ajuta baza de clienți. Chatbot-urile sunt accesibile, ajută la extinderea afacerii dvs., sunt complet personalizabile, vă ajută clienții să găsească produsele/serviciile potrivite și vă ajută să creați încredere în afacerea dvs. Pentru a dovedi acest lucru, voi trece prin următorul conținut:

  1. Ce este un chatbot de învățare automată?
  2. De ce chatboții sunt importanți în diferite sfere de afaceri?
  3. Creați-vă propriul chatbot bazat pe NLP folosind PyTorch.
  4. Implementați chatbot în Javascript și Flask.

Un chatbot (IA conversațională) este un program automat care simulează conversația umană prin mesaje text, chat-uri vocale sau ambele. Învață să facă asta pe baza multor intrări și Procesarea limbajului natural (NLP).

De dragul semanticii, chatboții și asistenții conversaționali vor fi folosiți interschimbabil în acest articol, ele înseamnă cam același lucru.

Business Insider a raportat că piața globală de chatbot era de așteptat să crească de la 2.6 miliarde USD în 2019 la 9.4 miliarde USD în 2024, prognozând o rată de creștere anuală compusă de 29.7%. Același raport a sugerat, de asemenea, că cea mai mare creștere a implementării chatbot-ului ar fi în industriile de comerț cu amănuntul și comerțul electronic, din cauza cererii tot mai mari de a oferi clienților experiențe omnicanal fără întreruperi.

Doar asta ar trebui să fie suficient pentru a te convinge de asta chatboții sunt modalitatea de a gestiona relațiile cu clienții merg mai departe, dar vor continua să crească și ca instrumente interne pentru instrumente de întreprindere și aproape fiecare industrie va adopta tehnologia dacă nu a făcut-o deja.

Mai jos sunt principalele motive pentru care din ce în ce mai multe companii adoptă strategia chatbot și modul în care acestea sunt o formulă câștigătoare pentru a obține și păstra clienți.

  • Reduceți timpul de așteptare al clienților - 21% din consumatori vedeți chatboții ca fiind cea mai simplă modalitate de a contacta o companie. Boții sunt o modalitate mai inteligentă de a se asigura că clienții primesc răspunsul imediat pe care îl caută, fără a-i face să aștepte la coadă.
  • Disponibilitate 24 × 7 — Boții sunt întotdeauna disponibili pentru a implica clienții cu răspunsuri imediate la întrebările frecvente adresate de aceștia. Cel mai important beneficiu potențial al utilizării chatbot-urilor este serviciul pentru clienți 24 de ore din XNUMX.
  • O implicare mai bună a clienților — Boții conversaționali pot implica clienții non-stop, pornind de la conservarea proactivă și oferind recomandări personalizate care îmbunătățesc experiența clienților.
  • Economisiți costurile serviciului clienți — Chatbot-urile vor ajuta companiile să economisească mai mult decât $ 8 de miliarde de pe an. Boții pot fi scalați cu ușurință, ceea ce economisește costurile de asistență pentru clienți legate de angajarea mai multor resurse, costurile de infrastructură etc.
  • Automatizați calificarea clienților potențiali și vânzările — Puteți să vă automatizați canalul de vânzări cu ajutorul chatbots pentru a precalifica clienții potențiali și a-i direcționa către echipa potrivită pentru a le dezvolta în continuare. Posibilitatea de a implica clienții crește instantaneu numărul de clienți potențiali și ratele de conversie.

1. Modul în care AI conversațional poate automatiza serviciul pentru clienți

2. Chaturi automate vs live: cum va arăta viitorul serviciului pentru clienți?

3. Chatbots ca asistenți medicali în pandemia COVID-19

4. Chatbot vs. Asistent virtual inteligent - Care este diferența și de ce îți pasă?

Există multe platforme în care dezvoltatorii, oamenii de știință de date și inginerii de învățare automată pot crea și menține chatbot, cum ar fi Dialogflow și Amazon Lex. Dar scopul meu din acest articol este să vă arăt cum să creați un chatbot de la zero pentru a vă ajuta să înțelegeți conceptele de rețele de feed-forward pentru procesarea limbajului natural.

Să începem!

Puteți găsi cu ușurință un cod complet în my GitHub repo.

Iată un scurt plan pe care vreau să-l urmez pentru a construi un model.

  1. Teorie + concepte NLP (Stemming, Tokenization, sac de cuvinte)
  2. Creați date de antrenament
  3. Model și antrenament PyTorch
  4. Salvați/încărcați modelul și implementați chatul

Vom construi un chatbot pentru nevoile Furnizorilor de cafea și ceai pentru a gestiona întrebări simple despre orele de funcționare, opțiunile de rezervare și așa mai departe.

Un cadru de chatbot are nevoie de o structură în care sunt definite intențiile conversaționale. O modalitate curată de a face acest lucru este cu un fișier JSON, ca acesta.

Intenții Chatbot

Fiecare intenție de conversație conține:

  • a etichetă (un nume unic)
  • modele (modele de propoziție pentru clasificatorul nostru de text al rețelei neuronale)
  • răspunsuri (unul va fi folosit ca răspuns)

Deci conducta noastră NLP arată așa

  • tokenize
  • Inferioară + tulpină
  • Excludeți caracterele de punctuație
  • Pungă de cuvinte

Creăm o listă de documente (propoziții), fiecare propoziție este o listă de cuvinte tulpina iar fiecare document este asociat cu o intenție (o clasă). Codul complet este introdus acest fișier.

Apoi trebuie să setăm un antrenament de date și hiperparametri.

După toți pașii necesari de preprocesare, creăm un model.py fișier pentru a defini rețeaua neuronală FeedForward.

Rețelele neuronale feedforward sunt rețele neuronale artificiale unde legăturile dintre unităţi nu formează a ciclu. Rețelele neuronale feedforward au fost primul tip de rețea neuronală artificială inventată și sunt mai simple decât omologul lor, rețele neuronale recurente. Ei sunt numiti, cunoscuti feed forward deoarece informația se deplasează numai înainte în rețea (fără bucle), mai întâi prin nodurile de intrare, apoi prin noduri ascunse (dacă este prezent), și în final prin nodurile de ieșire.

Atenție! Până la urmă nu avem nevoie de o funcție de activare pentru că mai târziu vom folosi pierderea de entropie încrucișată și va aplica automat o funcție de activare pentru noi.

De ce folosim ReLU?

Sunt simple, rapid de calculat și nu suferă de gradienți care dispar, cum ar fi funcțiile sigmoide (logistice, tanh, erf și similare). Simplitatea implementării le face potrivite pentru utilizarea pe GPU-uri, care sunt foarte frecvente astăzi, datorită faptului că sunt optimizate pentru operațiuni cu matrice (care sunt necesare și pentru grafica 3D).

După definirea unui CrossEntropy Loss și Adam implementăm pasul înapoi și de optimizare.

Ce înseamnă toate aceste rânduri?

Am setat zero_grad() la optimizator deoarece în PyTorch, pentru fiecare mini-lot în timpul fazei de antrenament, trebuie să setăm în mod explicit gradienții la zero înainte de a începe să facem backprogation (adică, actualizarea Weights and biases) deoarece PyTorch acumulează gradienții pe pasele ulterioare înapoi.

Apelarea .backward() de mai multe ori acumulează gradientul (prin adăugare) pentru fiecare parametru. Acesta este motivul pentru care ar trebui să apelați optimizer.zero_grad() după fiecare apel .step(). Rețineți că, după primul apel invers, un al doilea apel este posibil numai după ce ați efectuat o altă trecere înainte.

optimizer.step realizează o actualizare a parametrilor pe baza gradientului curent (stocat în atributul .grad al unui parametru) și a regulii de actualizare.

În cele din urmă, după ce am rulat scriptul train.py, ce rezultat minunat am obținut!

Și în ultima parte trebuie să ne salvăm modelul. Iată cum am făcut-o ușor.

Am decis să merg mai departe și să creez această vizualizare uimitoare a ChatBot.

Toate scripturile mele HTML, CSS și JavaScript le veți găsi în depozitul meu GitHub.

Bucurați-vă!

Acum, deoarece știți ce este un chatbot și cât de importantă este tehnologia bot pentru orice tip de afacere. Cu siguranță veți fi de acord că boții au schimbat drastic modul în care companiile interacționează cu clienții lor.

Tehnologiile Chatbot vor deveni o parte vitală a strategiei de implicare a clienților în viitor. Aproape de viitor, boții vor avansa pentru a îmbunătăți capacitățile umane și agenții umani pentru a fi mai inovatori în gestionarea activităților strategice.

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

Timestamp-ul:

Mai mult de la Viața Chatbots