Ein Learning Chatterbot in C ++

6 Schritt:Schritt 1: Learner.h Schritt 2: Learner.cpp Schritt 3: Voice.h Schritt 4: voice.cpp Schritt 5: Main.cpp Schritt 6: Zusammenstellung und die Einrichtung zum ersten Mal ausgeführt wird

Ein Learning Chatterbot in C ++

Im Folgenden wird eine Anleitung, wie man einen Spaß und einfaches Chat-Roboter wie Anwendung in C ++ zu schreiben. Der Benutzer gibt einen Satz, und dann der Lernende anspricht, wenn der anfängliche Satz im Speicher vorhanden ist. Wenn es nicht im Arbeitsspeicher vorhanden ist, dann kann der Benutzer die Lern ​​was zu sagen unterrichten. Die Open-Source-Sprachsynthesizer espeak wird verwendet, um akustische Ausgabe zu erstellen. Sie können es hier herunterladen:
http://sourceforge.net/projects/espeak/
Der Code funktioniert übernehmen Sie in das gleiche Verzeichnis wie die Chat-Roboter-Anwendung haben, aber wenn es nicht, müssen Sie nur werden keine hörbaren Nachricht zusammen mit der Textausgabe zu hören.
Wenn Sie keine Lust Eingabe den Code haben wir es angebracht ..... aber würden wir nicht empfehlen, dass: P
Wir gehen davon aus, dass Sie ein grundlegendes Verständnis von C ++, und Erstellung von Multifile-Projekte haben. Schritt 1: Learner.h



Ein Learning Chatterbot in C ++

Lassen Sie uns zuerst unsere Lernenden Klasse zu erstellen. Eine Lernende, um Sätze zu reagieren, wenn es, wie man weiß, und lernen, wie, wenn es nicht tut.
Öffnen Sie Ihren Lieblingseditor / IDE, erstellen Sie eine Header-Datei namens learner.h und geben Sie den Code in das Bild.
Nochmals, ich nehme an, Sie wissen, was das alles bedeutet, aber ich werde die algorthmic Details in der nächsten step.Step 2 erklären: Learner.cpp

Ein Learning Chatterbot in C ++

Erstellen Sie eine weitere Datei namens learner.cpp und kopieren Sie den Code in das Bild.
Werfen wir einen Blick auf die Funktion reagieren. Der Algorithmus ist im Grunde einfach, aber die Datei-Operationen kann verwirrend sein.
In Zeile 15 erzeugen wir ein Datei-Stream-Objekt und weisen Sie dann die Speicherdatei in Zeile 16. Hinweis für die ios :: in Argument. Das bedeutet, dass wir wollen, um die Datei für die Eingabe zu öffnen, dh, um die Datei zu lesen.
In Zeile 19 beginnen wir eine while-Schleife, die fortgesetzt werden, bis das Ende der Datei erreicht ist wird.
Zeile 21, getline, liest eine Mehrwortleitung, wo sich der Cursor derzeit saßen wird, und dann in die nächste Zeile zu bewegen für den künftigen Betrieb. Der Ausdruck wird in der Kennung Variable gespeichert.
In Zeile 23 sehen wir, ob der aktuelle Satz Satz des Benutzers entspricht. Ist dies der Fall verwenden wir getline wieder auf der Leitung 25, um die Antwort unter dem passenden Ausdruck zu bekommen. Die Antwort wird dann die Verwendung des Lernenden Sprach Objekt und dann die Funktion auf der Leitung 27 verlassen wir.
Wenn wir erreichen das Ende der Datei, und wir haben keine Antwort gefunden wird, dann gehen wir in Zeile 31, wo wir die Datei zu schließen.
32 öffnen wir wieder die Datei, aber dieses Mal für die Ausgabe, dh Programm in eine Datei. Wir haben auch die ios :: app Argument hinzufügen, um sicherzustellen, dass wir angehängt an das Ende der Datei.
33 schreiben wir den ursprünglichen Begriff, und wiederholen Sie den Satz auf 35, um den Benutzer nach einer idealen Antwort aufgefordert. Die Antwort des Benutzers wird dann geschrieben, und die Datei geschlossen wird.
Das sagen Funktion auf Leitung 46 einfach übergibt den Begriff der Sprachobjekte sagen Funktion für textlichen und hörbaren output.Step 3: Voice.h

Ein Learning Chatterbot in C ++

Erstellen Sie eine weitere Datei namens voice.h, und kopieren Sie den Code in das Bild. Möglicherweise stellten die Notwendigkeit für diese Klasse, aber wir haben diese für die Portabilität und Wiederverwendbarkeit. Die Klasse ist eigentlich ganz gut für andere Projekte in dem Sie akustische Ausgabe möchten.
Diese Header-Datei erfordert nicht viel Beschreibung. Dies wird in der nächsten step.Step 4 kommen: voice.cpp

Ein Learning Chatterbot in C ++

Erstellen Sie eine weitere Datei namens voice.cpp, und kopieren Sie den Code in das Bild. Wie erwartet ist es ganz einfach.
Wir sind im Grunde nur die Ausführung der Anwendung espeak von aktuellen, vorbei an den Begriff als Argument, daher der Aufruf der Systemfunktion .... Die einfachste Art der Durchführung cmd Befehle.
Am 13. Wir verwenden String Summierung zu unserem Begriff der Befehl hinzufügen.
Am 14. konvertieren wir von String in const char *, so dass wir es an die Systemfunktion übergeben.
Am 15. wir Ausgang der Text.
Am 16. rufen wir System, und führen espeak mit dem Satz als das Argument zu sagen.
Stellen Sie sicher, dass Sie in der unmittelbaren Verzeichnis der kompilierten program.Step 5 setzen espeak.exe: Main.cpp

Ein Learning Chatterbot in C ++

Erstellen Sie eine weitere Datei mit dem Namen main.cpp, und kopieren Sie den Code in das Bild.
Hier sind die wichtigsten Funktions wohnt, daher, wo wir das Programm starten.
In Zeile 7 erstellen wir ein Lernobjekt und nennen es AI.
Am 13. beginnt der Hauptprogrammschleife. Es ist unendlich, daher der einzige Weg, um die Ausführung zu stoppen ist, wenn Sie die Anwendung schließen. Der Code 13 bis 19 wird wiederholt.
Zeilen 14 bis 16 fordert den Benutzer zur Eingabe.
Zeilen 18 bis 19 stellen die Lernleistung. Wir nennen respond Funktion KI und eine Antwort, oder ihn lehren, was zu say.Step 6: Zusammenstellung und die Einrichtung zum ersten Mal ausgeführt wird

Ein Learning Chatterbot in C ++

Jetzt sind wir alle mit dem Code.
Gehen Sie voran und zu kompilieren.
Achten Sie darauf, eine Speicherverzeichnis in das Verzeichnis, in dem die exe ist hinzuzufügen. Der Speicher-Datei in diesen Ordner bei der ersten Ausführung erstellt werden. Sie können tatsächlich bearbeiten Sie die Speicherdatei direkt, wenn Sie zu korrigieren oder hinzuzufügen, nichts zu wünschen!
Auch sicherstellen, dass Sie in auch hier haben die espeak exe.
Jetzt sollte alles bis zum ersten Ausführung festgelegt werden: D