Java >> Java Tutorial >  >> Java

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


Java-Tag