NLP -basert Chatbot i PyTorch. Bonuskolbe og JavaScript -distribusjon

Kilde node: 1123050
Victoria Maslova

Blant de ulike måtene du kan forbedre kundetilfredsheten på, er chatbots en kraftig løsning for å hjelpe kundebasen. Chatbots er rimelige, hjelper med å skalere virksomheten din, kan tilpasses fullt ut, hjelper kundene dine med å finne de riktige produktene/tjenestene og bidrar til å bygge tillit for virksomheten din. For å bevise dette vil jeg gå gjennom følgende innhold:

  1. Hva er en maskinlæring chatbot?
  2. Hvorfor chatboter er viktige i ulike forretningssfærer?
  3. Bygg din egen NLP-baserte chatbot ved å bruke PyTorch.
  4. Distribuer chatbot i Javascript og Flask.

En chatbot (Conversational AI) er et automatisert program som simulerer menneskelig samtale gjennom tekstmeldinger, talechatter eller begge deler. Den lærer å gjøre det basert på mange innspill, og Natural Language Processing (NLP).

For semantikkens skyld vil chatboter og samtaleassistenter bli brukt om hverandre i denne artikkelen, de betyr liksom det samme.

Business Insider rapporterte at det globale chatbot-markedet var forventet å vokse fra 2.6 milliarder dollar i 2019 til 9.4 milliarder dollar i 2024, og spådde en sammensatt årlig vekstrate på 29.7 %. Den samme rapporten antydet også at den høyeste veksten i chatbot-implementering ville være i detaljhandel og e-handel, på grunn av den økende etterspørselen etter å gi kunder sømløse omnikanalopplevelser.

Det alene burde være nok til å overbevise deg om det chatbots er måten å håndtere kundeforhold på fremover, men de vil også fortsette å vokse som interne verktøy for bedriftsverktøy, og nesten alle bransjer vil ta i bruk teknologien hvis den ikke allerede har gjort det.

Nedenfor er de viktigste årsakene til at flere og flere virksomheter tar i bruk chatbot-strategien og hvordan de er en vinn-vinn-formel for å skaffe og beholde kunder.

  • Reduser kundenes ventetid - 21% av forbrukerne se chatbots som den enkleste måten å kontakte en bedrift på. Bots er en smartere måte å sikre at kundene får den umiddelbare responsen de leter etter uten å få dem til å vente i kø.
  • 24 × 7 tilgjengelighet — Bots er alltid tilgjengelige for å engasjere kunder med umiddelbare svar på de vanlige spørsmålene de stiller. Den største potensielle fordelen med å bruke chatbots er 24-timers kundeservice.
  • Bedre kundeengasjement — Samtaleroboter kan engasjere kunder døgnet rundt ved å starte proaktiv konservering og tilby personlige anbefalinger som øker kundeopplevelsen.
  • Spar kundeservicekostnader — Chatbots vil hjelpe bedrifter med å spare mer enn $ 8 milliarder per år. Bots kan enkelt skaleres, noe som sparer kundestøttekostnader ved å ansette flere ressurser, infrastrukturkostnader, etc.
  • Automatiser leadkvalifisering og salg — Du kan automatisere salgstrakten din med chatbots for å prekvalifisere potensielle kunder og lede dem til riktig team for videre pleie. Å kunne engasjere kunder umiddelbart øker antallet potensielle kunder og konverteringsfrekvenser.

1. Hvordan Conversational AI kan automatisere kundeservice

2. Automated vs Live Chats: Hvordan vil fremtiden for kundeservice se ut?

3. Chatbots som medisinske assistenter i COVID-19-pandemi

4. Chatbot vs. Intelligent virtuell assistent - Hva er forskjellen og hvorfor bryr seg?

Det er mange plattformer der utviklere, dataforskere og maskinlæringsingeniører kan lage og vedlikeholde chatbots som Dialogflow og Amazon Lex. Men målet mitt i denne artikkelen er å vise deg hvordan du lager en chatbot fra bunnen av for å hjelpe deg med å forstå konseptene for feed-forward-nettverk for naturlig språkbehandling.

La oss komme i gang!

Du kan enkelt finne en komplett kode i min GitHub repo.

Her er en kort plan som jeg ønsker å følge for å bygge en modell.

  1. Teori + NLP-konsepter (Stemming, Tokenization, bag of words)
  2. Lag treningsdata
  3. PyTorch modell og opplæring
  4. Lagre/last inn modell og implementer chatten

Vi vil bygge chatbot for kaffe- og televerandørens behov for å håndtere enkle spørsmål om åpningstider, reservasjonsmuligheter og så videre.

Et chatbot-rammeverk trenger en struktur der samtalehensikter er definert. En ren måte å gjøre dette på er med en JSON-fil, som denne.

Chatbots hensikter

Hver samtalehensikt inneholder:

  • a stikkord (et unikt navn)
  • mønstre (setningsmønstre for tekstklassifisereren for nevrale nettverk)
  • svar (en vil bli brukt som svar)

Så vår NLP-pipeline ser slik ut

  • Tokenize
  • Nedre + stamme
  • Ekskluder skilletegn
  • Veske med ord

Vi lager en liste over dokumenter (setninger), hver setning er en liste over stammeord og hvert dokument er knyttet til en hensikt (en klasse). Full kode er inne denne filen.

Deretter må vi angi treningsdata og hyperparametre.

Etter alle nødvendige forbehandlingstrinn lager vi en modell.py fil for å definere FeedForward Neural Network.

Feedforward nevrale nettverk er kunstige nevrale nettverk hvor forbindelsene mellom enheter ikke danner en syklus. Feedforward nevrale nettverk var den første typen kunstige nevrale nettverk som ble oppfunnet og er enklere enn deres motstykke, tilbakevendende nevrale nettverk. De kalles mate frem fordi informasjon bare går fremover i nettverket (ingen loops), først gjennom inngangsnodene, deretter gjennom skjulte noder (hvis tilstede), og til slutt gjennom utgangsnodene.

Vær forsiktig! Til slutt trenger vi ikke en aktiveringsfunksjon fordi vi senere vil bruke kryssentropi-tap og den bruker automatisk en aktiveringsfunksjon for oss.

Hvorfor bruker vi ReLU?

De er enkle, raske å beregne, og lider ikke av forsvinnende gradienter, som sigmoidfunksjoner (logistikk, tanh, erf og lignende). Enkelheten i implementeringen gjør dem egnet for bruk på GPUer, som er svært vanlige i dag på grunn av at de er optimert for matriseoperasjoner (som også trengs for 3D-grafikk).

Etter å ha definert et CrossEntropy Loss og Adam implementerer vi bakover og optimeringstrinn.

Hva betyr alle disse linjene?

Vi setter zero_grad() til optimizer fordi i PyTorch, for hver mini-batch under treningsfasen, må vi eksplisitt sette gradientene til null før vi begynner å gjøre backpropragation (dvs. oppdatering av vekter og skjevheter) fordi PyTorch akkumulerer gradientene på påfølgende bakoverpasninger.

Å ringe .backward() flere ganger akkumulerer gradienten (ved addisjon) for hver parameter. Dette er grunnen til at du bør kalle optimizer.zero_grad() etter hvert .step()-kall. Merk at etter det første tilbakegående anropet, er et andre anrop bare mulig etter at du har utført en ny viderekobling.

optimizer.step utfører en parameteroppdatering basert på gjeldende gradient (lagret i .grad-attributtet til en parameter) og oppdateringsregelen.

Til slutt, etter å ha kjørt train.py-skriptet, for et fantastisk resultat vi fikk!

Og i den siste delen må vi lagre modellen vår. Her gjorde jeg det enkelt.

Jeg bestemte meg for å gå videre og lage denne fantastiske visualiseringen av ChatBot.

Alle HTML-, CSS- og JavaScript-skriptene mine finner du i GitHub-repoen min.

Nyt!

Nå, som du er klar over hva en chatbot er og hvor viktig botteknologi er for alle typer virksomhet. Du vil sikkert være enig i at roboter har drastisk endret måten bedrifter samhandler med kundene sine på.

Chatbot-teknologier vil bli en viktig del av kundeengasjementstrategien fremover. I nær fremtid vil roboter utvikle seg for å forbedre menneskelige evner og menneskelige agenter for å være mer innovative når de håndterer strategiske aktiviteter.

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

Tidstempel:

Mer fra Chatbots liv