Chat-Bot Vokabularabgleich

Diskutiere Chat-Bot Vokabularabgleich im Allgemeine Java-Themen Forum; Moin :) Ich habe mir eben mal überlegt, dass so ein Bot zum Schreiben doch mal ganz nett wäre (dann fühl' ich mich nicht mehr so einsam ;p). Bis...

  1. Cromewell
    Cromewell Aktives Mitglied
    Moin :)
    Ich habe mir eben mal überlegt, dass so ein Bot zum Schreiben doch mal ganz nett wäre (dann fühl' ich mich nicht mehr so einsam ;p).
    Bis dato geht der Abgleich so von statten, dass einfach die Usereingabe mit Vorlagen verglichen wird, also etwa so:
    Code (Java):

    if(input.contains("how are you")|input.contains("how r u")|input.contains("how r you")|input.contains("how are u")){
        answer(Phrases.answersToHowAreYou);
    }
     
    Doch das ist im Code sehr unschön, wie ich finde.
    Jetzt habe ich gerade mal überlegt, wie man es anders machen könnte.
    Was mir spontan einfiel:
    -Satz-/Wortanalyse, nach Übereinstimmung an Buchstaben. Hier würde ich die Wörter mit einer Wörterbuch-Datei o.ä. abgleichen und demnach entscheiden, um was für ein Wort es sich handelt. Nur ist die Wahrscheinlichkeit, dass der Satz dabei rauskommt, der gemeint war, recht gering xD (wenn man davon ausgeht, dass der User sich verschreibt - helo anstatt hello als Beispiel -, ist es relativ sinnvoll)

    -Wie voriges, nur keine Acht geben auf Verschreiben und einfach, wenn nicht entzifferbar, ausgeben, dass man ihn - den User - nicht verstanden hätte und er es doch nochmal versuchen solle.

    Also summa summarum suche nach einer Idee/Möglichkeit, wie man möglichst geschickt die Eingabe mit dem Vokabular des Bots vergleichen kann.

    Cromewell :p
     
  2. Vielleicht hilft dir dieser Java-Kurs hier weiter --> (hier klicken)
  3. Aruetiise
    Aruetiise Mitglied
    Hi
    Ich hoffe die Hilfe kommt nicht viel zu spät.

    Zuerst würde ich die Eingabe des Benutzers in Kleinbuchstaben umwandeln. Spart viele mögliche Eingaben ein...
    Zu dem Verzeichnes mit Wörtern:

    Mir fällt da nur ein es vielleicht so um zu setzen:


    1 wie geht es dir
    2 was machst du
    3 wer bist du
    4...

    und dann die Datei mit denn fragen so auszulesen:

    3 Zeichen mit dem ersten der Eingabe abgleichen.
    das mit allen Nummern machen.
    und alle zutreffenden nummern in nem array speichern.

    dann bei jeder Nummer das 4,5,6... Zeichen abgleichen, bis alles zu trift.
    die nummern immer dann aus dem array löschen, wenn in der Datei NULL ausgelesen wird(Am ende der Zeile) oder wenn der Buchstabe an der Stelle nicht mehr zutrifft.

    Und dann könntest du die Antwort aufgrund der Zahl geben.
    Dann müsstest du "nur" alle zahlen in if-Abfragen packen und nicht alle Eingabemöglichkeiten.

    Das ist nur eine Spontane Idee. Habe es nicht getestet und auch nicht lange überlegt aber vom Grundgedanken könnte es gehen.
     
Thema: Chat-Bot Vokabularabgleich