Op NLP gebaseerde chatbot in PyTorch. Bonus Flask en JavaScript-implementatie

Bronknooppunt: 1123050
Victoria Maslova

Onder de verschillende manieren waarop u de klanttevredenheid kunt verbeteren, zijn chatbots een krachtige oplossing om het klantenbestand te helpen. Chatbots zijn betaalbaar, helpen uw bedrijf op te schalen, zijn volledig aanpasbaar, helpen uw klanten de juiste producten/diensten te vinden en helpen vertrouwen op te bouwen voor uw bedrijf. Om dit te bewijzen, zal ik de volgende inhoud doornemen:

  1. Wat is een machine learning-chatbot?
  2. Waarom chatbots belangrijk zijn in verschillende bedrijfstakken?
  3. Bouw je eigen NLP-gebaseerde chatbot met PyTorch.
  4. Implementeer chatbot in Javascript en Flask.

Een chatbot (Conversationele AI) is een geautomatiseerd programma dat menselijke gesprekken simuleert via sms-berichten, voicechats of beide. Het leert dat te doen op basis van veel input, en Natuurlijke taalverwerking (NLP).

Omwille van de semantiek worden chatbots en gespreksassistenten in dit artikel door elkaar gebruikt; ze betekenen min of meer hetzelfde.

Business Insider meldde dat de wereldwijde chatbotmarkt naar verwachting zal groeien van 2.6 miljard dollar in 2019 naar 9.4 miljard dollar in 2024, waarbij een samengesteld jaarlijks groeipercentage van 29.7% wordt voorspeld. Hetzelfde rapport suggereerde ook dat de grootste groei in de implementatie van chatbots zou plaatsvinden in de detailhandel en e-commerce, vanwege de toenemende vraag om klanten naadloze omnichannel-ervaringen te bieden.

Dat alleen al zou voldoende moeten zijn om u daarvan te overtuigen chatbots zijn de manier om met klantrelaties om te gaan in de toekomst, maar ze zullen ook blijven groeien als interne tools voor bedrijfstools en bijna elke sector zal de technologie adopteren als ze dat nog niet heeft gedaan.

Hieronder staan โ€‹โ€‹de belangrijkste redenen waarom steeds meer bedrijven de chatbotstrategie omarmen en hoe deze een win-winformule is om klanten te werven en te behouden.

  • Verminder de wachttijd van de klant - 21% van de consumenten zie chatbots als de gemakkelijkste manier om contact op te nemen met een bedrijf. Bots zijn een slimmere manier om ervoor te zorgen dat klanten onmiddellijk het antwoord krijgen waarnaar ze op zoek zijn, zonder dat ze in de wachtrij hoeven te staan.
  • 24 ร— 7 beschikbaarheid โ€” Bots zijn altijd beschikbaar om klanten te betrekken met onmiddellijke antwoorden op de veelgestelde vragen die door hen worden gesteld. Het grootste potentiรซle voordeel van het gebruik van chatbots is de 24-uurs klantenservice.
  • Betere klantbetrokkenheid โ€” Conversationele bots kunnen klanten XNUMX uur per dag betrekken door proactief behoud te starten en gepersonaliseerde aanbevelingen te doen die de klantervaring verbeteren.
  • Bespaar klantenservicekosten โ€” Chatbots zullen bedrijven helpen meer te besparen dan $ 8 miljard per jaar. Bots kunnen eenvoudig worden geschaald, waardoor de kosten voor klantenondersteuning door het inhuren van meer middelen, infrastructuurkosten, enz. worden bespaard.
  • Automatiseer leadkwalificatie en -verkoop โ€” U kunt uw verkooptrechter automatiseren met chatbots om leads vooraf te kwalificeren en ze door te sturen naar het juiste team voor verdere begeleiding. Het kunnen binden van klanten verhoogt direct het aantal leads en de conversiepercentages.

1. Hoe Conversational AI de klantenservice kan automatiseren

2. Geautomatiseerde versus live chats: hoe ziet de toekomst van klantenservice eruit?

3. Chatbots als medische assistenten bij COVID-19-pandemie

4. Chatbot versus Intelligente virtuele assistent โ€” Wat is het verschil en waarom zou u er om geven?

Er zijn veel platforms waarop ontwikkelaars, datawetenschappers en machine learning-ingenieurs chatbots kunnen maken en onderhouden Dialogflow en Amazon-Lex. Maar mijn doel in dit artikel is om u te laten zien hoe u een geheel nieuwe chatbot kunt maken om u te helpen de concepten van Feed-Forward Networks voor natuurlijke taalverwerking te begrijpen.

Laten we beginnen!

Een volledige code kun je eenvoudig vinden in mijn GitHub repo.

Hier is een kort plan dat ik wil volgen om een โ€‹โ€‹model te bouwen.

  1. Theorie + NLP-concepten (Stemming, Tokenization, zak met woorden)
  2. Trainingsgegevens maken
  3. PyTorch-model en training
  4. Bewaar/laad het model en implementeer de chat

We gaan een chatbot bouwen voor koffie en thee. Leveranciers moeten eenvoudige vragen beantwoorden over openingstijden, reserveringsopties enzovoort.

Een chatbotframework heeft een structuur nodig waarin de gespreksintenties worden gedefinieerd. Een schone manier om dit te doen is met een JSON-bestand, zoals dit.

Chatbot-intenties

Elke gespreksintentie bevat:

  • a label (een unieke naam)
  • patronen (zinpatronen voor onze neurale netwerktekstclassificator)
  • reacties (รฉรฉn wordt gebruikt als antwoord)

Onze NLP-pijplijn ziet er dus zo uit

  • Tokeniseren
  • Lager + stuurpen
  • Sluit leestekens uit
  • Zak met woorden

We maken een lijst met documenten (zinnen), elke zin is een lijst stamwoorden en elk document is gekoppeld aan een intentie (een klasse). Volledige code is binnen dit bestand.

Vervolgens moeten we trainingsgegevens en hyperparameters instellen.

Na alle benodigde voorbewerkingsstappen creรซren we een model.py bestand om FeedForward Neural Network te definiรซren.

Feedforward neurale netwerken zijn dat wel kunstmatige neurale netwerken waarbij de verbindingen tussen eenheden geen a vormen cyclus. Feedforward neurale netwerken waren het eerste type kunstmatige neurale netwerk dat werd uitgevonden en zijn eenvoudiger dan hun tegenhanger. terugkerende neurale netwerken. Ze worden genoemd feedforward omdat informatie alleen vooruit gaat in het netwerk (geen lussen), eerst via de invoerknooppunten en vervolgens via de verborgen knooppunten (indien aanwezig), en ten slotte via de uitgangsknooppunten.

Wees voorzichtig! Uiteindelijk hebben we geen activeringsfunctie nodig omdat we later kruis-entropieverlies zullen gebruiken en automatisch een activeringsfunctie voor ons toepassen.

Waarom gebruiken wij ReLU?

Ze zijn eenvoudig, snel te berekenen en hebben geen last van verdwijnende gradiรซnten, zoals sigmoรฏde functies (logistiek, tanh, erf en dergelijke). De eenvoud van implementatie maakt ze geschikt voor gebruik op GPU's, die tegenwoordig heel gebruikelijk zijn omdat ze zijn geoptimaliseerd voor matrixbewerkingen (die ook nodig zijn voor 3D-graphics).

Na het definiรซren van een CrossEntropy Loss en Adam implementeren we een achterwaartse en optimalisatiestap.

Wat betekenen al deze lijnen?

We stellen zero_grad() in op optimizer omdat we in PyTorch voor elke mini-batch tijdens de trainingsfase de gradiรซnten expliciet op nul moeten zetten voordat we beginnen met backpropragation (dat wil zeggen het bijwerken van gewichten en biases) omdat PyTorch de gradiรซnten accumuleert op daaropvolgende achterwaartse passes.

Door .backward() meerdere keren aan te roepen, wordt de gradiรซnt (door optelling) voor elke parameter verzameld. Dit is de reden waarom u optimizer.zero_grad() moet aanroepen na elke .step()-aanroep. Houd er rekening mee dat na de eerste achterwaartse oproep een tweede oproep alleen mogelijk is nadat u opnieuw een voorwaartse oproep hebt uitgevoerd.

optimizer.step voert een parameterupdate uit op basis van de huidige gradiรซnt (opgeslagen in het .grad-attribuut van een parameter) en de updateregel.

Eindelijk, na het uitvoeren van het train.py-script, wat een prachtig resultaat hebben we gekregen!

En in het laatste deel moeten we ons model opslaan. Hier zoals ik het gemakkelijk deed.

Ik besloot verder te gaan en deze geweldige visualisatie van ChatBot te maken.

Al mijn HTML-, CSS- en JavaScript-scripts vind je in mijn GitHub-repository.

Geniet!

Nu u weet wat een chatbot is en hoe belangrijk bottechnologie is voor elk soort bedrijf. U zult het er zeker mee eens zijn dat bots de manier waarop bedrijven met hun klanten omgaan drastisch hebben veranderd.

Chatbot-technologieรซn zullen in de toekomst een essentieel onderdeel worden van de strategie voor klantbetrokkenheid. In de nabije toekomst zullen bots vooruitgang boeken om de menselijke capaciteiten te vergroten en menselijke agenten innovatiever te zijn bij het afhandelen van strategische activiteiten.

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

Tijdstempel:

Meer van Chatbots leven