NLP baseret Chatbot i PyTorch. Bonus Flask og JavaScript-implementering

Kildeknude: 1123050
Victoria Maslova

Blandt de forskellige måder, du kan forbedre kundetilfredsheden på, er chatbots en kraftfuld løsning til at hjælpe kundebasen. Chatbots er overkommelige, hjælper med at skalere din virksomhed, kan tilpasses fuldt ud, hjælper dine kunder med at finde de rigtige produkter/tjenester og hjælper med at opbygge tillid til din virksomhed. For at bevise dette vil jeg gennemgå følgende indhold:

  1. Hvad er en machine learning chatbot?
  2. Hvorfor chatbots er vigtige i forskellige forretningssfærer?
  3. Byg din egen NLP-baserede chatbot ved hjælp af PyTorch.
  4. Implementer chatbot i Javascript og Flask.

En chatbot (Conversational AI) er et automatiseret program, der simulerer menneskelig samtale gennem tekstbeskeder, stemmechat eller begge dele. Det lærer den at gøre ud fra en masse input, og Natural Language Processing (NLP).

Af hensyn til semantikken vil chatbots og samtaleassistenter blive brugt i flæng i denne artikel, de betyder sådan set det samme.

Business Insider rapporterede, at det globale chatbot-marked forventedes at vokse fra 2.6 milliarder USD i 2019 til 9.4 milliarder USD i 2024, hvilket forudsiger en sammensat årlig vækstrate på 29.7 %. Den samme rapport foreslog også, at den højeste vækst i chatbotimplementering ville være i detail- og e-handelsindustrien på grund af den stigende efterspørgsel efter at give kunderne problemfri omnichannel-oplevelser.

Det alene burde være nok til at overbevise dig om det chatbots er måden at håndtere kunderelationer på fremad, men de vil også fortsætte med at vokse som interne værktøjer til virksomhedsværktøjer, og næsten alle brancher vil tage teknologien i brug, hvis den ikke allerede har gjort det.

Nedenfor er de vigtigste grunde til, at flere og flere virksomheder anvender chatbot-strategien, og hvordan de er en win-win-formel til at erhverve og fastholde kunder.

  • Reducer kundens ventetid 21% af forbrugerne se chatbots som den nemmeste måde at kontakte en virksomhed på. Bots er en smartere måde at sikre, at kunderne får det øjeblikkelige svar, som de leder efter, uden at få dem til at vente i en kø.
  • 24×7 tilgængelighed — Bots er altid tilgængelige for at engagere kunder med øjeblikkelige svar på de almindelige spørgsmål, de stillede. Den største potentielle fordel ved at bruge chatbots er 24-timers kundeservice.
  • Bedre kundeengagement — Samtalebots kan engagere kunder døgnet rundt ved at starte proaktiv konservering og tilbyde personlige anbefalinger, der booster kundeoplevelsen.
  • Spar kundeserviceomkostninger — Chatbots vil hjælpe virksomheder med at spare mere end $ 8 milliarder Per år. Bots kan nemt skaleres, hvilket sparer kundesupportomkostninger ved at ansætte flere ressourcer, infrastrukturomkostninger osv.
  • Automatiser leadkvalificering og salg — Du kan automatisere din salgstragt med chatbots for at prækvalificere kundeemner og dirigere dem til det rigtige team for yderligere pleje. At være i stand til at engagere kunder øjeblikkeligt øger antallet af leads og konverteringsrater.

1. Hvordan Conversational AI kan automatisere kundeservice

2. Automatiserede vs Live Chats: Hvordan vil fremtiden for kundeservice se ud?

3. Chatbots som medicinske assistenter i COVID-19-pandemien

4. Chatbot vs. Intelligent virtuel assistent — Hvad er forskellen og hvorfor bekymre sig?

Der er mange platforme, hvor udviklere, dataforskere og maskinlæringsingeniører kan oprette og vedligeholde chatbots som f.eks. dialog flow , Amazon Lex. Men mit mål i denne artikel er at vise dig, hvordan du opretter en chatbot fra bunden for at hjælpe dig med at forstå koncepter for feed-forward-netværk til naturlig sprogbehandling.

Lad os komme igang!

Du kan nemt finde en komplet kode i min GitHub repo.

Her er en kort plan, som jeg vil følge for at bygge en model.

  1. Teori + NLP begreber (Stemming, Tokenization, pose med ord)
  2. Opret træningsdata
  3. PyTorch model og træning
  4. Gem/indlæs model og implementer chatten

Vi vil bygge chatbot til leverandørens behov for kaffe og te til at håndtere simple spørgsmål om åbningstider, reservationsmuligheder og så videre.

En chatbot-ramme har brug for en struktur, hvor samtalehensigter er defineret. En ren måde at gøre dette på er med en JSON-fil, som denne.

Chatbots hensigter

Hver samtale hensigt indeholder:

  • a tag (et unikt navn)
  • mønstre (sætningsmønstre for vores neurale netværk tekstklassificering)
  • reaktioner (en vil blive brugt som svar)

Så vores NLP-pipeline ser sådan ud

  • Tokenize
  • Nedre + stilk
  • Udelad tegnsætning
  • Taske med ord

Vi opretter en liste over dokumenter (sætninger), hver sætning er en liste over stammeord og hvert dokument er forbundet med en hensigt (en klasse). Fuld kode er inde denne fil.

Så skal vi indstille træningsdata og hyperparametre.

Efter alle nødvendige forbehandlingstrin opretter vi en model.py fil for at definere FeedForward Neural Network.

Feedforward neurale netværk er kunstige neurale netværk hvor forbindelserne mellem enheder ikke danner en cyklus. Feedforward neurale netværk var den første type kunstige neurale netværk, der blev opfundet og er enklere end deres modstykke, tilbagevendende neurale netværk. De kaldes feedforward fordi information kun bevæger sig fremad i netværket (ingen sløjfer), først gennem inputknudepunkterne, derefter gennem skjulte noder (hvis til stede), og til sidst gennem output-knuderne.

Vær forsigtig! I sidste ende har vi ikke brug for en aktiveringsfunktion, fordi vi senere vil bruge krydsentropitab, og det anvender automatisk en aktiveringsfunktion for os.

Hvorfor bruger vi ReLU?

De er enkle, hurtige at beregne og lider ikke af forsvindende gradienter, som sigmoid-funktioner (logistisk, tanh, erf og lignende). Implementeringens enkelhed gør dem velegnede til brug på GPU'er, som er meget almindelige i dag, da de er optimeret til matrixoperationer (som også er nødvendige for 3D-grafik).

Efter at have defineret et CrossEntropy Loss og Adam implementerer vi tilbage- og optimeringstrin.

Hvad betyder alle disse linjer?

Vi indstiller zero_grad() til optimizer, fordi vi i PyTorch, for hver mini-batch i træningsfasen, eksplicit skal indstille gradienterne til nul, før vi begynder at lave backpropragation (dvs. opdatering af vægte og skævheder), fordi PyTorch akkumulerer gradienterne på efterfølgende baglæns afleveringer.

Ved at kalde .backward() flere gange akkumuleres gradienten (ved addition) for hver parameter. Det er derfor, du skal kalde optimizer.zero_grad() efter hvert .step()-kald. Bemærk, at efter det første tilbagekald, er et andet opkald kun muligt, efter at du har foretaget endnu et fremadgående pass.

optimizer.step udfører en parameteropdatering baseret på den aktuelle gradient (lagret i en parameters .grad-attribut) og opdateringsreglen.

Endelig, efter at have kørt train.py script, hvilket vidunderligt resultat vi fik!

Og i den sidste del skal vi gemme vores model. Her gjorde jeg det nemt.

Jeg besluttede at gå videre og skabe denne fantastiske visualisering af ChatBot.

Alle mine HTML-, CSS- og JavaScript-scripts finder du i min GitHub-repo.

God fornøjelse!

Nu, som du er klar over, hvad en chatbot er, og hvor vigtig botteknologi er for enhver form for virksomhed. Du vil helt sikkert være enig i, at bots drastisk har ændret den måde, virksomheder interagerer med deres kunder på.

Chatbot-teknologier vil blive en vigtig del af strategien for kundeengagement fremover. I nær fremtid vil bots udvikle sig for at forbedre menneskelige evner og menneskelige agenter til at være mere innovative i håndteringen af ​​strategiske aktiviteter.

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

Tidsstempel:

Mere fra Chatbots liv