Direkt zum Inhalt

Einen Chatbot mit Chatterbot in Python bauen

In diesem Tutorial lernst du, wie du mit Chatterbot in Python einen Chatbot erstellst.
Aktualisierte 16. Jan. 2025  · 12 Min. Lesezeit

Bist du es leid, in langen Warteschlangen darauf zu warten, dass dein Anruf mit dem Kundendienstmitarbeiter verbunden wird? Fühlst du dich lethargisch, wenn du FAQ's liest? Dann bist du auf der richtigen Seite. Kannst du dich an das letzte Mal erinnern, als du mit einem Kundendienstmitarbeiter per Chat kommuniziert hast, weil dir ein falscher Artikel geliefert wurde? Es ist sehr wahrscheinlich, dass du von einem Bot und nicht von einem Kundenbetreuer angesprochen wurdest. Was genau sind also Bots? Wie bauen wir eine? Welchen Quellcode brauchst du dafür? Das sind einige der Fragen, die in diesem Blogpost beantwortet werden!

Künstliche Intelligenz, die maschinelles Lernen und die Verarbeitung natürlicher Sprache (NLP) ins Spiel bringt, um einen Bot oder Chatbot zu erstellen, wurde speziell entwickelt, um die reibungslose Interaktion zwischen Mensch und Computer zu ermöglichen. Chatbots sind allgegenwärtig, egal ob es sich um eine Bank-Website, einen Pizzaladen oder E-Commerce-Shops handelt. Chatbots unterstützen den Kundenservice in Echtzeit bei einer Reihe von vordefinierten Fragen, die sich auf den Bereich beziehen, auf dem sie aufgebaut sind. Es passt sich der natürlichen menschlichen Sprache an und unterhält sich mit Menschen auf eine menschenähnliche Weise.

Um die Definition von Chatbots zu vereinfachen, können wir sagen, dass Chatbots die Weiterentwicklung von Frage-Antwort-Systemen sind, die natürliche Sprachverarbeitung nutzen. Quellen zufolge wird der globale Konversationsmarkt bis zum Jahr 2024 auf 15,7 Milliarden Dollar anwachsen, wobei die jährliche Wachstumsrate 30,2 % beträgt. Inmitten der CoronaVirus-Pandemie haben wir zum Beispiel Tausende von Hoaxes auf WhatsApp kursieren sehen, z.B. was zur Behandlung von COVID verwendet werden kann oder was zur Erhöhung der Immunität beitragen kann oder ob das Virus in einem Labor entwickelt wurde. Um solchen Schwindeleien ein Ende zu setzen, hat Facebook einen Chatbot eingeführt, der als Faktenchecker arbeitet.

Willst du einen Chatbot mit Tools wie OpenAI und Pinecone erstellen? Schau dir unten unseren Code-Along an: 

Was ist ein Chatbot?

Der Begriff "Chatterbot" entstand 1994, als Michael Mauldin seinen ersten Chatbot namens "Julia" entwickelte. Laut Oxford Dictionary ist ein Chatbot definiert als "Ein Computerprogramm, das entwickelt wurde, um eine Konversation mit menschlichen Nutzern zu simulieren, insbesondere über das Internet". Er kann als virtueller Assistent betrachtet werden, der mit den Nutzern über Textnachrichten kommuniziert und den Unternehmen hilft, nah an ihren Kunden zu sein. Es ist ein Programm, das die Art und Weise imitiert, wie Menschen miteinander kommunizieren. Das kann über eine Chat-Schnittstelle oder per Sprachanruf geschehen. Die Entwickler entwerfen Chatbots in der Regel so, dass es für die Nutzer schwer zu erkennen ist, ob sie mit einem Menschen oder einem Roboter kommunizieren.

Chatbots helfen Unternehmen/Organisationen dabei, die folgenden Ziele zu erreichen:

  • Steigert die betriebliche Effizienz.
  • Automatisiere die Bearbeitung von Kundenanfragen.
  • Du bearbeitest einfache Anfragen, so dass die Mitarbeiter/innen sich um komplexe und höherwertige Anfragen kümmern können.
  • Bietet mehrsprachige Unterstützung.
  • Spart Zeit und Mühe durch die Automatisierung des Kundensupports.
  • Verbessert die Antwortquote und die Kundenbindung.
  • Personalisierung der Kommunikation
Flugbot-Grafik
Quelle

Wie funktioniert ein Chatbot?

Chatbots sind nichts anderes als Softwareanwendungen, die eine Anwendungsschicht, eine Datenbank und APIs haben. Um die Funktionsweise des Chatbots zu vereinfachen, können wir sagen, dass er mit Mustervergleichen arbeitet, um den Text zu klassifizieren und eine passende Antwort auf die Fragen/Anfragen des Nutzers zu geben. Der Chatbot antwortet dem Nutzer entsprechend dem Programm, mit dem er gefüttert wurde. Es gibt verschiedene Arten von Chatbots, je nachdem, wie sie eingesetzt werden. Es gibt im Wesentlichen drei Arten von Chatbots, und zwar folgende:

  • Der regelbasierte Chatbot: Dies ist der grundlegende Chatbot, mit dem der Nutzer über vordefinierte Optionen interagiert. Um Antworten von diesen Bots zu erhalten, müssen die Nutzer/innen auf bestimmte Optionen klicken. Diese Art von Bots sammeln die Anfrage des Nutzers, analysieren sie und bieten dann Ergebnisse in Form von Schaltflächen an. Diese Bots werden häufig eingesetzt, um häufig gestellte Fragen zu ersetzen, wenn es um komplexe Anfragen geht; sie sind nicht immer die beste Lösung.

  • Unabhängige (Stichwort) Chatbots: Das sind maschinell lernende Bots, die im Gegensatz zu regelbasierten Chatbots analysieren, was der/die Nutzer/in will und entsprechend reagieren. Diese Chatbots verwenden anpassbare Schlüsselwörter und maschinelles Lernen, um herauszufinden, wie sie effektiv und effizient auf die Anfragen der Nutzer/innen reagieren können.

  • NLP (kontextuelle) Chatbots: Dies sind bisher die fortschrittlichsten Chatbots. Sie sind eine Kombination des Besten aus regelbasierten und schlagwortbasierten Chatbots. Diese Chatbots nutzen NLP, um den Kontext und die Absicht in den Anfragen der Nutzer zu verstehen und entsprechend zu handeln. Diese Chatbots können problemlos mehrere Anfragen desselben Nutzers bearbeiten.

Vergleiche von Chatbot-Plattformen

Viele Plattformen bieten maßgeschneiderte Chatbots mit Automatisierung an, die nahtlose, immer pünktliche und erstklassige Supportleistungen für Kunden bereitstellen, wann immer sie diese benötigen, ohne dass die Konversationskapazitäten der Box ausreichen. Kunden wollen auch von einem Unternehmen kaufen, mit dem sie sich leicht über Nachrichten verbinden können.

Auflistung der KI-Chatbot-Bauplattform im Jahr 2020:

  • Azure Bot Service: Der Azure Bot Service bietet die Möglichkeit, einen Chatbot von Grund auf zu erstellen, d.h. du kannst ihn bauen, verbinden, testen und einsetzen. Es ermöglicht Entwicklern, das Open-Source-SDK und die Tools zu nutzen. Außerdem können Entwickler fortschrittliche Bots wie virtuelle Assistenten erstellen, die komplexe Anfragen bearbeiten.

  • Botsify: Die Einzigartigkeit dieses Tools besteht darin, dass es mit seiner intuitiven Oberfläche auch technisch nicht versierten Nutzern ermöglicht, einen Chatbot zu erstellen. Bots werden hier als Stories dargestellt, d.h. du kannst mehrere Stories oder mehrere Chatbots erstellen und sie je nach Bedarf einsetzen. Eine weitere großartige Funktion ist die Möglichkeit, die Antworten der Nutzer/innen in einem Formular zu speichern, das einfach in eine CSV-Datei exportiert werden kann.

  • Amazon Lex: Amazon lex ermöglicht es Entwicklern, Konversationsschnittstellen mit Text und Sprache zu erstellen. Es verfügt über fortschrittliche Deep-Learning-Funktionen und NLP, um den Kontext des Textes zu verstehen. Es bietet eine einfach zu bedienende Konsole, um Chatbots in wenigen Minuten zu erstellen.

  • Mobile Monkey: Mobile monkey bietet Entwicklern die Möglichkeit, Chatbots speziell für Marketingzwecke zu erstellen. Es ermöglicht Entwicklern, Facebook-Werbebots, SMS-Bots und native Web-Chatbots auf einer einzigen Plattform zu erstellen. Sie bieten auch vorgefertigte Chatbot-Vorlagen für jedes mögliche Unternehmen an, die direkt in eine Website eingebettet werden können.

  • ChatterOn: Er behauptet, dass er verschiedene Arten von Rich-Content-Antworten vom Bot verarbeiten kann, da er es Entwicklern ermöglicht, bei jeder Interaktion mit dem Nutzer verschiedene APIs zu verbinden. ChatterOn bietet mehr als 20 vorgefertigte Bolzen, die mit einem einzigen Klick verwendet werden können. Es erfordert nicht viel Programmieraufwand, was es für technisch nicht versierte Nutzer/innen einfacher macht, Chatbots zu erstellen.

  • TARS: Es bietet dir die Möglichkeit, eine konversationelle Landing Page zu erstellen, die es dir ermöglicht, einen automatisierten Chatbot zu erstellen, der dich und deine Kunden begrüßt, ihnen relevante Informationen über ihre Fragen zu deinen Produkten gibt und sie gleichzeitig nach ihrem Kontakt fragt. Tars bietet viele vordefinierte Chatbot-Vorlagen, die in zwei Bereiche unterteilt sind - nach Branche und nach Anwendungsfall.

Jetzt bist du sicher neugierig darauf, selbst einen Chatbot zu bauen. Und was ist besser als ein anpassbarer NLP-Chatbot? Fangen wir an, unseren eigenen Chatbot in Python mit der Bibliothek chatterbot zu bauen.

Chatterbot

chatterbot

Wie der Name schon sagt, ist chatterbot eine Python-Bibliothek, die speziell für die Erstellung von Chatbots entwickelt wurde. Dieser Algorithmus nutzt eine Auswahl von Algorithmen des maschinellen Lernens, um unterschiedliche Antworten auf die Anfragen der Nutzer/innen zu erstellen.

Chatterbot macht es einfacher, Chatbots zu entwickeln, die sich an Unterhaltungen beteiligen können. Es beginnt damit, einen untrainierten Chatterbot zu erschaffen, der keinerlei Erfahrung oder Wissen darüber hat, wie man kommuniziert. Wenn die Nutzer/innen Anweisungen eingeben, speichert die Bibliothek sowohl die Anfrage des/der Nutzers/in als auch die Antworten, die an die Nutzer/innen zurückgeschickt werden. Wenn die Anzahl der Instanzen im Chatterbot steigt, erhöht sich auch die Genauigkeit der Antworten, die der Chatterbot gibt.

Der Chatterbot ist darauf trainiert, die nächstliegende analoge Antwort zu suchen, indem er die nächstliegende analoge Anfrage von Nutzern findet, die der neuen Anfrage entspricht. Dann wählt er eine Antwort aus den bereits vorhandenen Antworten aus. Der USP von chatterbot ist, dass es Entwicklern ermöglicht, ihre eigenen Datensätze und Strukturen zu erstellen.

Einen Chatbot mit Chatterbot bauen

Beginnen wir mit der Installation der Chatterbot-Bibliothek. Um einen Chatbot zu erstellen, musst du auch den Chatterbot-Korpus installieren. Korpus - die wörtliche Bedeutung ist eine Sammlung von Wörtern. Dieser enthält einen Datenkorpus, der in das Chatterbot-Modul aufgenommen wird. Jeder Korpus ist nichts anderes als ein Prototyp von verschiedenen Eingabeanweisungen und ihren Antworten. Diese Korpus werden von Bots verwendet, um sich selbst zu trainieren. Die empfehlenswerteste Methode zur Installation von chatterbot und chatterbot_corpus ist die Verwendung von pip.

Installationsbefehle für das Terminal:

pip install chatterbot
pip install chatterbot_corpus

Installationsbefehle für Jupyter Notebook:

!pip install chatterbot
!pip install chatterbot_corpus

Importieren wir zunächst die Chatbot-Klasse des Chatterbot-Moduls.

# Importing chatterbot
from chatterbot import ChatBot

Chatbot-Instanz erstellen

Jetzt ist es Zeit für den interessantesten Teil, nämlich die Benennung deines Chatbots, indem du ein Chatbot-Objekt erstellst. Du kannst jeden Namen wählen, den du möchtest. Diese eine Codezeile erzeugt unseren ganz eigenen neuen Bot namens Buddy. Bevor wir unser erstes Programm starten, müssen wir noch einige Parameter angeben.

# Create object of ChatBot class
bot = ChatBot('Buddy')
[nltk_data] Downloading package averaged_perceptron_tagger to
[nltk_data]     /root/nltk_data...
[nltk_data]   Unzipping taggers/averaged_perceptron_tagger.zip.
[nltk_data] Downloading package stopwords to /root/nltk_data...
[nltk_data]   Unzipping corpora/stopwords.zip.
[nltk_data] Downloading package wordnet to /root/nltk_data...
[nltk_data]   Unzipping corpora/wordnet.zip.

Du kannst den Speicheradapter mit dem Chatbot-Objekt positionieren. Mit den Speicheradaptern kannst du eine Verbindung zu einer bestimmten Speichereinheit oder einem Netzwerk herstellen. Um einen Speicheradapter zu verwenden, müssen wir ihn angeben. Wir positionieren den Speicheradapter, indem wir ihn dem Importpfad des Speichers zuweisen, den wir verwenden wollen. Hier verwenden wir den SQL Storage Adapter, der es dem Chatbot ermöglicht, sich mit Datenbanken in SQL zu verbinden. Mit dem Parameter database erstellen wir eine neue SQLite-Datenbank. Bitte folge dem unten stehenden Code, um eine neue Datenbank für den Chatbot zu erstellen.

# Create object of ChatBot class with Storage Adapter
bot = ChatBot(
    'Buddy',
    storage_adapter='chatterbot.storage.SQLStorageAdapter',
    database_uri='sqlite:///database.sqlite3'
)

Du kannst den logischen Adapter auch mit einem Chatbot-Objekt positionieren. Wie der Name schon sagt, regelt der Logical Adapter die Logik hinter dem Chatterbot, d.h. er wählt Antworten für jede Eingabe, die ihm gegeben wird. Dieser Parameter enthält eine Liste von logischen Operatoren. Chatterbot ermöglicht es uns, eine Reihe von logischen Adaptern zu verwenden. Wenn mehr als ein logischer Adapter verwendet wird, berechnet der Chatbot das Konfidenzniveau, und die Antwort mit dem höchsten berechneten Konfidenzniveau wird als Ausgabe zurückgegeben. Hier haben wir zwei logische Adapter verwendet: BestMatch und TimeLogicAdapter.

# Create object of ChatBot class with Logic Adapter
bot = ChatBot(
    'Buddy',  
    logic_adapters=[
        'chatterbot.logic.BestMatch',
        'chatterbot.logic.TimeLogicAdapter'],
)

Den Chatbot trainieren

Der letzte Schritt bei der Erstellung eines Chatbots ist das Trainieren des Chatbots mithilfe der in Chatterbot verfügbaren Module. Um einen Chatbot mit Chatterbot zu trainieren, musst du nur eine Unterhaltung in die Chatbot-Datenbank eingeben. Sobald der Chatbot einen Datensatz erhält, erstellt er die notwendigen Einträge im Wissensgraphen des Chatbots, um die Eingabe und Ausgabe richtig darzustellen. Zunächst importieren wir ListTrainer, erstellen sein Objekt, indem wir das Objekt Chatbot übergeben, und rufen die Methode train() auf, indem wir eine Liste von Sätzen übergeben.

# Inport ListTrainer
from chatterbot.trainers import ListTrainer

trainer = ListTrainer(bot)

trainer.train([
'Hi',
'Hello',
'I need your assistance regarding my order',
'Please, Provide me with your order id',
'I have a complaint.',
'Please elaborate, your concern',
'How long it will take to receive an order ?',
'An order takes 3-5 Business days to get delivered.',
'Okay Thanks',
'No Problem! Have a Good Day!'
])
List Trainer: [####################] 100%

Chatbot-Tests

Der letzte Schritt dieses Tutorials besteht darin, die Konversationsfähigkeiten des Chatterbots zu testen. Um die Antworten zu testen, rufen wir die Methode get_responses() der Instanz Chatbot auf.

# Get a response to the input text 'I would like to book a flight.'
response = bot.get_response('I have a complaint.')

print("Bot Response:", response)
Bot Response: Please elaborate, your concern

Wir werden eine while-Schleife erstellen, in der unser Chatbot läuft. Wenn Anweisungen in der Schleife übergeben werden, erhalten wir dafür eine entsprechende Antwort, da wir bereits Daten in unsere Datenbank eingegeben haben. Wenn wir die Anweisung "Bye" oder "bye" vom Benutzer erhalten, können wir die Schleife beenden und das Programm anhalten.

name=input("Enter Your Name: ")
print("Welcome to the Bot Service! Let me know how can I help you?")
while True:
    request=input(name+':')
    if request=='Bye' or request =='bye':
        print('Bot: Bye')
        break
    else:
        response=bot.get_response(request)
        print('Bot:',response)
Enter Your Name: Avinash
Welcome to the Bot Service! Let me know how can I help you?
Avinash:I need your assistance regarding my order
Bot: Please, Provide me with your order id
Avinash:12345
Bot: No Problem! Have a Good Day!
Avinash:Bye
Bot: Bye

Fazit

Glückwunsch, du hast es bis zum Ende dieses Tutorials geschafft!

In diesem Artikel ging es darum, wie man mit der ChatterBot-Bibliothek einen Chatbot in Python erstellt. Die Erstellung eines Chatbots mit ChatterBot war nicht nur einfach, sondern die Ergebnisse waren auch genau. Mit der Weiterentwicklung von künstlicher Intelligenz und maschinellem Lernen ist alles möglich, egal ob es darum geht, Bots zu entwickeln, die sich wie Menschen unterhalten können, oder etwas anderes. Schau dir das DataCamp-Tutorial zum Einsatz von Facebook Chatbots mit Python an.

erkunde das Banner der Python-Kursbibliothek von DataCamp
Themen

Erfahre mehr über Python

Zertifizierung verfügbar

Kurs

Einführung in Python

4 hr
5.9M
Beherrsche die Grundlagen der Datenanalyse mit Python in nur vier Stunden. Dieser Online-Kurs führt in die Python-Schnittstelle ein und stellt beliebte Pakete vor.
Siehe DetailsRight Arrow
Kurs starten
Mehr anzeigenRight Arrow