previous icon Zurück zum Blog
Instant Messaging

Erstellen Sie Ihren ersten Chatbot mit Python & NLTK

In diesem Artikel werden wir einen einfachen Chat-Assistenten oder Chatbot mit Hilfe der NLTK-Bibliothek von Python zu erstellen.


Chatbots sind nicht sehr neu, einer der wichtigsten dieser Art ist ELIZA, welche in den frühen 1960er Jahren enstand. Um eine Chatbot erfolgreich zu erstellen, sollten sie die folgenden Frangen klären:


  • Wer ist die Zielgruppe?
  • Wie ist die gängige Sprache in der Kommunikation?
  • Was ist die Absicht oder der Wunsch der Zielgruppe?
  • Welche Antworten müssen bereitgestellt werden?

  

Die NLTK Bibliothek hat ein Modul, nltk.chat, das den Aufbau dieses Engines durch ein generisches Framework vereinfacht.

In diesem Blog werden 2 Importe von nltk.chat.util verwendet:

Chat: Dies ist eine Klasse, die die gesamte Logik hat, die vom Chatbot verwendet wird.

Reflections: Dies ist ein Dictionary, das einen Satz von Eingabewerten und die zugehörigen Ausgabewerte enthält. Es ist ein optionales Wörterbuch, das Sie verwenden können. Sie können auch Ihr eigenes Dictionary im gleichen Format wie unten erstellen und es in Ihrem Code verwenden. Wenn du nltk.chat.util checkst, siehst du seine Werte wie folgt:

 

from nltk.chat.util import Chat
from nltk.chat.util import reflections
 
reflections
Out[3]:
{'i am': 'you are',
 'i was': 'you were',
 'i': 'you',
 "i'm": 'you are',
 "i'd": 'you would',
 "i've": 'you have',
 "i'll": 'you will',
 'my': 'your',
 'you are': 'I am',
 'you were': 'I was',
 "you've": 'I have',
 "you'll": 'I will',
 'your': 'my',
 'yours': 'mine',
 'you': 'me',
 'me': 'you'}

 

Sie können auch Ihr eigenes Reflection Dictionary im gleichen Format wie oben erstellen und es in Ihrem Code verwenden. Hier ist ein Beispiel dafür:

 

my_dummy_reflections= {
    "go"    : "gone",
    "hello"   : "hey there"
 }

 

Als nächstes erstellen wir eine Liste von Paaren (pairs), die, ähnlich wie bei Reflections, Ein- und Ausgabewerte für Fragen und Antworten enthält.

 

pairs = [
    [
        r"my name is (.*)",
        ["Hello %1, How are you today ?",]
    ],
     [
        r"what is your name ?",
        ["My name is Chatty and I'm a chatbot ?",]
    ],
    [
        r"how are you ?",
        ["I'm doing good\nHow about You ?",]
    ],
    [
        r"sorry (.*)",
        ["Its alright","Its OK, never mind",]
    ],…]

 

Die Chatbots von nltk.chat funktionieren im Regex- Format auf Keywords, die in Ihrer Frage enthalten sind. So können Sie eine beliebige Anzahl von Fragen in einem geeigneten Format hinzufügen.

Als nächstes wird eine Instanz der Chat-Klasse erstellt, die Paare (Liste der Tupel mit einer Reihe von Fragen und Antworten) und Reflections (siehe oben) enthält.


chat = Chat(pairs, reflections)

 

Nun starten wir den Chatbot:


chat.converse()
>how are you?
I'm doing good
How about You ?
>quit
None

 

Mit "quit" beenden Sie das Gespräch.

Mit dem obigen Konzept aus der NLTK- Bibliothek von Python können Sie einen einfachen Chatbot erstellen, ohne Machine Learning Algorithmen oder Deep Learning zu verwenden.


Quellen:

https://www.nltk.org/py-modindex.html

https://www.kdnuggets.com/2019/05/build-chatbot-python-nltk.html

verbindet jeden Tag mehr als 10.000 Unternehmen mit Millionen von Konsumenten über das Mobiltelefon. Im Hintergrund stellt CM.com über eine innovative Plattform sicher, dass Millionen von Nachrichten, Anrufe und Zahlungstransaktionen ein Teil vom Leben der Menschen werden.

Is this region a better fit for you?

Go
close icon