Wie man einen Chatbot in Java implementiert
Damit sind wir wieder bei unserer Diskussion über Chatbots. Ich werde nicht über die Grundlagen von Chatbots sprechen, die ich hier behandelt habe. Ich beginne direkt damit, zu zeigen, wie man einen Chatbot in Java implementiert. Wir werden die AIML-Bibliothek (Artificial Intelligence Markup Language) für diese Implementierung verwenden. Diese Bibliothek ist Open Source und wird von Google bereitgestellt.
Ein Maven-Projekt
Als ersten Schritt erstellen wir ein Maven-Projekt in Eclipse mit der Gruppen-ID com.betterjavacode
und die Artefakt-ID als chatbot
. Sobald das Projekt erstellt ist, können wir ab.jar
hinzufügen zu projizieren, indem Sie die entsprechende Abhängigkeit in maven pom.xml
hinzufügen wie unten:
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.betterjavacode</groupId>
<artifactId>chatbot</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>JavaChatbot</name>
<dependencies>
<dependency>
<artifactId>com.google</artifactId>
<groupId>Ab</groupId>
<version>0.0.4.3</version>
<scope>system</scope>
<systemPath>${basedir}/lib/Ab.jar</systemPath>
</dependency>
</dependencies>
</project>
Die Google-Bibliothek für AIML bietet standardmäßige KI-Regeln zur Implementierung von Chatbots. Wir werden diese Regeln im Ressourcenverzeichnis unseres Projekts hinzufügen. Kopieren Sie bots
Ordner von program-ab
Verzeichnis in den Ressourcenordner.
Chatbot-Programm
Jetzt werden wir das Chatbot-Programm schreiben, das Teil der Hauptmethode sein wird. Einfach ausgedrückt, nachdem wir dieses Programm über main
aufgerufen haben Methode, wird es in einer Endlosschleife sein. Ein Eingabebefehl wartet auf Benutzereingaben und antwortet dann basierend auf unserer AML-Bibliothek auf die Eingaben eines Benutzers.
try {
String resourcesPath = getResourcesPath();
System.out.println(resourcesPath);
MagicBooleans.trace_mode = TRACE_MODE;
Bot bot = new Bot("Mr. Chatter", resourcesPath);
Chat chatSession = new Chat(bot);
bot.brain.nodeStats();
String textLine = "";
while (true) {
System.out.println("human: ");
textLine = IOUtils.readInputTextLine();
if ((textLine == null) || (textLine.length() < 1))
textLine = MagicStrings.null_input;
if (textLine.equals("q")) {
System.exit(0);
} else if (textLine.equals("wq")) {
bot.writeQuit();
System.exit(0);
} else {
String request = textLine;
if (MagicBooleans.trace_mode)
System.out.println("STATE=" + request + ":THAT=" + ((History) chatSession.thatHistory.get(0)).get(0) + ":TOPIC=" + chatSession.predicates.get("topic"));
String response = chatSession.multisentenceRespond(request);
while (response.contains("<"))
response = response.replace("<", "<");
while (response.contains(">"))
response = response.replace(">", ">");
System.out.println("Robot : " + response);
}
}
} catch (Exception e) {
e.printStackTrace();
}
Wenn wir dieses Programm jetzt ausführen, zeigt es uns Eingaben, um eine Frage an den Chatbot Mr. Chatter zu stellen.
Schlussfolgerung
In diesem Artikel haben wir gezeigt, wie man einen Chatbot in Java hinzufügt. Auf ähnliche Weise können wir dieses Programm verbessern, indem wir benutzerdefinierte Muster hinzufügen, auf die der Chatbot reagieren kann.
Referenzen
Chatbot-Implementierung