NLP-basierter Chatbot in PyTorch. Bonus-Flask- und JavaScript-Bereitstellung

Quellknoten: 1123050
Victoria Maslova

Zu den verschiedenen Möglichkeiten, die Kundenzufriedenheit zu verbessern, gehören Chatbots leistungsstarke Lösung zur Unterstützung des Kundenstamms. Chatbots sind erschwinglich, helfen Ihnen bei der Skalierung Ihres Unternehmens, sind vollständig anpassbar, helfen Ihren Kunden, die richtigen Produkte/Dienstleistungen zu finden und tragen dazu bei, Vertrauen in Ihr Unternehmen aufzubauen. Um dies zu beweisen, werde ich den folgenden Inhalt durchgehen:

  1. Was ist ein Chatbot für maschinelles Lernen?
  2. Warum sind Chatbots in verschiedenen Geschäftsbereichen wichtig?
  3. Erstellen Sie mit PyTorch Ihren eigenen NLP-basierten Chatbot.
  4. Stellen Sie den Chatbot in Javascript und Flask bereit.

Ein Chatbot (Conversational AI) ist ein automatisiertes Programm, das menschliche Gespräche durch Textnachrichten, Sprachchats oder beides simuliert. Es lernt, dies auf der Grundlage vieler Eingaben zu tun, und Natürliche Sprachverarbeitung (NLP).

Aus Gründen der Semantik werden Chatbots und Konversationsassistenten in diesem Artikel synonym verwendet, sie bedeuten im Grunde das Gleiche.

Business Insider berichtete, dass der globale Chatbot-Markt voraussichtlich von 2.6 Milliarden US-Dollar im Jahr 2019 auf 9.4 Milliarden US-Dollar im Jahr 2024 wachsen wird, was eine durchschnittliche jährliche Wachstumsrate von 29.7 % prognostiziert. Derselbe Bericht deutete auch darauf hin, dass das größte Wachstum bei der Chatbot-Implementierung in der Einzelhandels- und E-Commerce-Branche zu verzeichnen sei, da die Nachfrage nach der Bereitstellung nahtloser Omnichannel-Erlebnisse für Kunden steigt.

Das allein sollte ausreichen, um Sie davon zu überzeugen Chatbots sind die Art und Weise, Kundenbeziehungen abzuwickeln In Zukunft werden sie aber auch als interne Tools für Unternehmenstools weiter wachsen und nahezu jede Branche wird die Technologie übernehmen, sofern dies nicht bereits geschehen ist.

Nachfolgend sind die Hauptgründe aufgeführt, warum immer mehr Unternehmen die Chatbot-Strategie übernehmen und wie sie eine Win-Win-Formel zur Kundengewinnung und -bindung darstellen.

  • Reduzieren Sie die Wartezeit Ihrer Kunden - 21% der Verbraucher Betrachten Sie Chatbots als die einfachste Möglichkeit, ein Unternehmen zu kontaktieren. Bots sind eine intelligentere Methode, um sicherzustellen, dass Kunden die sofortige Antwort erhalten, die sie suchen, ohne dass sie in der Warteschlange warten müssen.
  • 24 × 7 Verfügbarkeit — Bots stehen jederzeit zur Verfügung, um Kunden mit sofortigen Antworten auf häufig gestellte Fragen zu versorgen. Der größte potenzielle Vorteil des Einsatzes von Chatbots ist der 24-Stunden-Kundenservice.
  • Bessere Kundenbindung — Konversations-Bots können Kunden rund um die Uhr ansprechen, indem sie eine proaktive Erhaltung einleiten und personalisierte Empfehlungen anbieten, die das Kundenerlebnis verbessern.
  • Sparen Sie Kundendienstkosten – Chatbots werden Unternehmen dabei helfen, mehr als zu sparen 8 Milliarden Dollar pro Jahr. Bots können leicht skaliert werden, wodurch Kosten für den Kundensupport durch die Einstellung weiterer Ressourcen, Infrastrukturkosten usw. eingespart werden.
  • Automatisieren Sie die Lead-Qualifizierung und den Verkauf — Sie können Ihren Verkaufstrichter mit Chatbots automatisieren, um Leads vorzuqualifizieren und sie zur weiteren Pflege an das richtige Team weiterzuleiten. Die Möglichkeit, Kunden sofort anzusprechen, erhöht die Anzahl der Leads und die Konversionsraten.

1. Wie Conversational AI den Kundenservice automatisieren kann

2. Automatisierte vs. Live-Chats: Wie wird die Zukunft des Kundenservice aussehen?

3. Chatbots als medizinische Assistenten in der COVID-19-Pandemie

4. Chatbot vs. Intelligenter virtueller Assistent — Was ist der Unterschied und warum kümmern?

Es gibt viele Plattformen, auf denen Entwickler, Datenwissenschaftler und Ingenieure für maschinelles Lernen Chatbots erstellen und verwalten können Dialogablauf und Amazon Lex. Mein Ziel in diesem Artikel ist es jedoch, Ihnen zu zeigen, wie Sie einen Chatbot von Grund auf erstellen, um Ihnen das Verständnis der Konzepte von Feed-Forward-Netzwerken für die Verarbeitung natürlicher Sprache zu erleichtern.

Lass uns loslegen!

Einen vollständigen Code finden Sie ganz einfach in meinem GitHub Repo.

Hier ist ein kurzer Plan, dem ich folgen möchte, um ein Modell zu bauen.

  1. Theorie + NLP-Konzepte (Stemming, Tokenisierung, Wortschatz)
  2. Erstellen Sie Trainingsdaten
  3. PyTorch-Modell und Training
  4. Modell speichern/laden und Chat implementieren

Wir werden einen Chatbot für Kaffee- und Teelieferanten erstellen, der einfache Fragen zu Öffnungszeiten, Reservierungsoptionen usw. beantworten kann.

Ein Chatbot-Framework benötigt eine Struktur, in der Gesprächsabsichten definiert werden. Eine saubere Möglichkeit, dies zu tun, ist eine JSON-Datei wie diese.

Chatbot-Absichten

Jede Konversationsabsicht enthält:

  • a Etikett (ein eindeutiger Name)
  • Muster (Satzmuster für unseren Textklassifikator für neuronale Netze)
  • Antworten (eine davon wird als Antwort verwendet)

Unsere NLP-Pipeline sieht also so aus

  • tokenize
  • Unterer + Stiel
  • Satzzeichen ausschließen
  • Tasche der Wörter

Wir erstellen eine Liste von Dokumenten (Sätzen), jeder Satz ist eine Liste von Stammwörter und jedes Dokument ist einer Absicht (einer Klasse) zugeordnet. Der vollständige Code ist enthalten Diese Datei.

Dann müssen wir Trainingsdaten und Hyperparameter festlegen.

Nach allen notwendigen Vorverarbeitungsschritten erstellen wir eine model.py Datei zum Definieren des FeedForward Neural Network.

Feedforward-Neuronale Netze sind künstliche neurale Netzwerke wobei die Verbindungen zwischen Einheiten keine a bilden Zyklus. Feedforward-Neuronale Netze waren die erste Art künstlicher neuronaler Netze, die erfunden wurden, und sind einfacher als ihre Gegenstücke. wiederkehrende neuronale Netze. Sie heißen Feedforward weil Informationen im Netzwerk nur vorwärts wandern (keine Schleifen), zuerst durch die Eingabeknoten, dann durch die versteckte Knoten (falls vorhanden) und schließlich über die Ausgabeknoten.

Seien Sie vorsichtig! Am Ende brauchen wir keine Aktivierungsfunktion, da wir später den Kreuzentropieverlust verwenden werden und dieser automatisch eine Aktivierungsfunktion für uns anwendet.

Warum verwenden wir ReLU?

Sie sind einfach, schnell zu berechnen und leiden nicht unter verschwindenden Gradienten wie Sigmoidfunktionen (Logistik, Tanh, Erf und ähnliche). Aufgrund der Einfachheit der Implementierung eignen sie sich für den Einsatz auf GPUs, die heute aufgrund ihrer Optimierung für Matrixoperationen (die auch für 3D-Grafiken benötigt werden) sehr verbreitet sind.

Nachdem wir einen CrossEntropy Loss und Adam definiert haben, implementieren wir einen Rückwärts- und Optimierungsschritt.

Was bedeuten all diese Zeilen?

Wir setzen „zero_grad()“ auf „Optimizer“, da wir in PyTorch für jeden Mini-Batch während der Trainingsphase die Gradienten explizit auf Null setzen müssen, bevor wir mit der Backpropragation (d. h. der Aktualisierung von Gewichtungen und Bias) beginnen, da PyTorch die Gradienten akkumuliert anschließende Rückwärtspässe.

Durch mehrmaliges Aufrufen von .backward() wird der Gradient (durch Addition) für jeden Parameter akkumuliert. Aus diesem Grund sollten Sie „optimierer.zero_grad()“ nach jedem .step()-Aufruf aufrufen. Beachten Sie, dass nach dem ersten .backward-Aufruf ein zweiter Aufruf erst möglich ist, nachdem Sie einen weiteren Vorwärtsdurchlauf durchgeführt haben.

optimierer.step führt eine Parameteraktualisierung basierend auf dem aktuellen Gradienten (gespeichert im .grad-Attribut eines Parameters) und der Aktualisierungsregel durch.

Nachdem wir schließlich das train.py-Skript ausgeführt hatten, bekamen wir ein wunderbares Ergebnis!

Und im letzten Teil müssen wir unser Modell speichern. So wie ich es einfach gemacht habe.

Ich beschloss, noch einen Schritt weiter zu gehen und diese erstaunliche Visualisierung von ChatBot zu erstellen.

Alle meine HTML-, CSS- und JavaScript-Skripte finden Sie in meinem GitHub-Repo.

Viel Spaß damit!

Nun wissen Sie, was ein Chatbot ist und wie wichtig die Bot-Technologie für jede Art von Unternehmen ist. Sie werden sicherlich zustimmen, dass Bots die Art und Weise, wie Unternehmen mit ihren Kunden interagieren, drastisch verändert haben.

Chatbot-Technologien werden in Zukunft ein wichtiger Bestandteil der Kundenbindungsstrategie sein. In naher Zukunft werden Bots Fortschritte machen, um die menschlichen Fähigkeiten zu verbessern, und menschliche Agenten werden innovativer bei der Abwicklung strategischer Aktivitäten sein.

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

Zeitstempel:

Mehr von Chatbots Leben