NLP-baserad chatbot i PyTorch. Bonusflask och JavaScript-distribution

Källnod: 1123050
Victoria Maslova

Bland de olika sätten du kan förbättra kundnöjdheten är chatbots en kraftfull lösning för att hjälpa kundbasen. Chatbots är prisvärda, hjälper till att skala din verksamhet, helt anpassningsbara, hjälper dina kunder att hitta rätt produkter/tjänster och hjälper till att bygga upp förtroende för ditt företag. För att bevisa detta ska jag gå igenom följande innehåll:

  1. Vad är en chatbot för maskininlärning?
  2. Varför chatbotar är viktiga inom olika affärssfärer?
  3. Bygg din egen NLP-baserade chatbot med PyTorch.
  4. Distribuera chatbot i Javascript och Flask.

En chatbot (Conversational AI) är ett automatiserat program som simulerar mänskliga samtal genom textmeddelanden, röstchatt eller båda. Den lär sig att göra det baserat på många input, och Naturlig språkbehandling (NLP).

För semantikens skull kommer chatbotar och samtalsassistenter att användas omväxlande i den här artikeln, de betyder ungefär samma sak.

Business Insider rapporterade att den globala chatbotmarknaden förväntades växa från 2.6 miljarder USD 2019 till 9.4 miljarder USD 2024, vilket förutspådde en sammansatt årlig tillväxttakt på 29.7 %. Samma rapport föreslog också att den högsta tillväxten i chatbotimplementering skulle ske inom detaljhandeln och e-handelsbranschen, på grund av den ökande efterfrågan på att ge kunderna sömlösa omnikanalupplevelser.

Bara det borde vara tillräckligt för att övertyga dig om det chatbots är sättet att hantera kundrelationer framåt, men de kommer också att fortsätta att växa som interna verktyg för företagsverktyg och nästan alla branscher kommer att använda tekniken om den inte redan har gjort det.

Nedan är de viktigaste anledningarna till att fler och fler företag antar chatbotstrategin och hur de är en win-win-formel för att skaffa och behålla kunder.

  • Minska kundernas väntetid - 21% av konsumenterna se chatbots som det enklaste sättet att kontakta ett företag. Bots är ett smartare sätt att säkerställa att kunder får det omedelbara svaret som de letar efter utan att få dem att stå i kö.
  • 24 × 7 tillgänglighet — Bots är alltid tillgängliga för att engagera kunder med omedelbara svar på de vanliga frågorna från dem. Den största potentiella fördelen med att använda chatbots är 24-timmars kundservice.
  • Bättre kundengagemang — Konversationsbots kan engagera kunder dygnet runt genom att starta proaktiv bevarande och erbjuda personliga rekommendationer som ökar kundupplevelsen.
  • Spara kundtjänstkostnader — Chatbots kommer att hjälpa företag att spara mer än $ 8 miljarder per år. Bots kan enkelt skalas vilket sparar kundsupportkostnader för att anställa fler resurser, infrastrukturkostnader, etc.
  • Automatisera leadkvalificering och försäljning — Du kan automatisera din försäljningstratt med chatbots för att prekvalificera potentiella kunder och dirigera dem till rätt team för vidare vård. Att kunna engagera kunder omedelbart ökar antalet leads och konverteringsfrekvenser.

1. Hur konversations AI kan automatisera kundtjänst

2. Automated vs Live Chats: Hur kommer kundtjänstens framtid att se ut?

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

4. Chatbot Vs. Intelligent virtuell assistent - Vad är skillnaden och varför bry sig?

Det finns många plattformar där utvecklare, datavetare och maskininlärningsingenjörer kan skapa och underhålla chatbots som Dialogflow och Amazon Lex. Men mitt mål i den här artikeln att visa dig hur du skapar en chatbot från grunden för att hjälpa dig att förstå koncepten för feed-forward-nätverk för naturlig språkbehandling.

Låt oss börja!

Du kan enkelt hitta en komplett kod i min GitHub repo.

Här är en kort plan som jag vill följa för att bygga en modell.

  1. Teori + NLP-koncept (Stemming, Tokenization, bag of words)
  2. Skapa träningsdata
  3. PyTorch modell och utbildning
  4. Spara/ladda in modell och implementera chatten

Vi kommer att bygga chatbot för kaffe- och televerantörernas behov för att hantera enkla frågor om öppettider, bokningsmöjligheter och så vidare.

Ett ramverk för chatbot behöver en struktur där konversationsavsikter definieras. Ett rent sätt att göra detta är med en JSON-fil, så här.

Chatbots avsikter

Varje konversationsavsikt innehåller:

  • a Taggen (ett unikt namn)
  • mönster (meningsmönster för vår textklassificerare för neurala nätverk)
  • svar (en kommer att användas som svar)

Så vår NLP-pipeline ser ut så här

  • tokenize
  • Nedre + skaft
  • Uteslut skiljetecken
  • Påse med ord

Vi skapar en lista över dokument (meningar), varje mening är en lista över stamord och varje dokument är associerat med en avsikt (en klass). Hela koden är inne den här filen.

Sedan måste vi ställa in träningsdata och hyperparametrar.

Efter alla nödvändiga förbearbetningssteg skapar vi en modell.py fil för att definiera FeedForward Neural Network.

Feedforward neurala nätverk är Artificiellt nervsystem där kopplingarna mellan enheter inte bildar en cykel. Feedforward neurala nätverk var den första typen av artificiella neurala nätverk som uppfanns och är enklare än deras motsvarighet, återkommande neurala nätverk. De kallas framkoppling eftersom information bara färdas framåt i nätverket (inga loopar), först genom ingångsnoderna, sedan genom dolda noder (om sådan finns) och slutligen genom utgångsnoderna.

Var försiktig! I slutändan behöver vi ingen aktiveringsfunktion eftersom vi senare kommer att använda korsentropiförlust och den tillämpar automatiskt en aktiveringsfunktion åt oss.

Varför använder vi ReLU?

De är enkla, snabba att beräkna och lider inte av försvinnande gradienter, som sigmoidfunktioner (logistik, tanh, erf och liknande). Enkelheten i implementeringen gör dem lämpliga för användning på GPU:er, som är mycket vanliga idag på grund av att de är optimerade för matrisoperationer (som också behövs för 3D-grafik).

Efter att ha definierat en CrossEntropy Loss och Adam implementerar vi bakåt- och optimeringssteg.

Vad betyder alla dessa rader?

Vi ställer in zero_grad() till optimizer eftersom vi i PyTorch, för varje mini-batch under träningsfasen, måste uttryckligen ställa gradienterna till noll innan vi börjar göra backpropragation (dvs. uppdatering av vikter och fördomar) eftersom PyTorch ackumulerar gradienterna på efterföljande bakåtpassningar.

Att anropa .backward() flera gånger ackumulerar gradienten (genom addition) för varje parameter. Det är därför du bör anropa optimizer.zero_grad() efter varje .step()-anrop. Observera att efter det första bakåtgående samtalet är ett andra samtal endast möjligt efter att du har utfört ett nytt framåtpass.

optimizer.step utför en parameteruppdatering baserat på den aktuella gradienten (lagrad i .grad-attributet för en parameter) och uppdateringsregeln.

Äntligen, efter att ha kört train.py-skript vilket underbart resultat vi fick!

Och i den sista delen måste vi spara vår modell. Här gjorde jag det lätt.

Jag bestämde mig för att gå längre och skapa denna fantastiska visualisering av ChatBot.

Alla mina HTML-, CSS- och JavaScript-skript hittar du i min GitHub-repo.

Njut!

Nu, som du är medveten om vad en chatbot är och hur viktig botteknologi är för alla typer av företag. Du kommer säkert att hålla med om att bots drastiskt har förändrat hur företag interagerar med sina kunder.

Chatbot-tekniker kommer att bli en viktig del av strategin för kundernas engagemang framöver. Nära framtida bots kommer att utvecklas för att förbättra mänskliga förmågor och mänskliga agenter för att vara mer innovativa när det gäller att hantera strategiska aktiviteter.

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

Tidsstämpel:

Mer från Chatbots liv