![]() |
Delphi-Version: 2010
Ähnlichkeiten eines Strings an eine Variable prüfen? (Chatbot)
Chatbot
Hey, ich würde gerne einen Chatbot schreiben. Die Idee habe ich vom ![]() Allerdings geht es mir eher um einen sehr, sehr minimalen Bot, der einfach auf bestimmte Fragen antwortet. Das Problem ist nun, dass ein User nie exakt, oder nur sehr selten, die vorgegebene Frage stellen wird, die im Programm eingespeichert ist und auf die der Bot eine Antwort weiß. Hat jemand eine Idee wie man zum Beispiel einen String der vom User kommt, mit dem String der im Programm gespeichert ist, vergleichen kann und falls er (zumindest) ähnlich ist, gleichsetzten kann? Also wenn String1 ähnlich String2 dann String1=String2 und entsprechende Reaktion. Wäre zwar noch sehr unstabil und hätte jede Menge Fehler, aber zumindest schon einmal eine Annäherung an einen Chatbot. (Ich bin noch in der Planung meines Programmes, daher kein Code) Könnt mir natürlich auch andere Methoden nennen, falls ihr welche kennt, das ist nur eine die ich mir ausgedacht habe. Edit: Ich bin jetzt dabei eine Datenbank zu schreiben, die mit jede Menge Frage/Antwort-Möglichkeiten gefüllt wird. Aber selbständig wäre das Programm nur wenn es ohne diese Datenbank überleben könnte. Ginge theoretisch wenn der Bot immer auf das, was geschrieben wurde, eingeht und Satzteile einfach wiederholt. Falls ihr irgendetwas darüber wisst gebt mir Bescheid. (Google, und Forensuche habe ich schon genutzt...) Danke, |
AW: Ähnlichkeiten eines Strings an eine Variable prüfen? (Chatbot)
Ich würde das mit Keywords angehen.
Bsp.: Frage auf die geantwortet werden soll: Hallo wie geht es dir? --> Dann würd ich meine Keyword Datenbank abklappern und wenn es einen (oder mehrere) Treffer gibt die Antwort ausgeben die am meisten zutrifft. Datenbank: Keywords |#| Antwort ------------------------------------------------------------- Hallo; Wetter; Sonne;|#| Hallo das Wetter ist schön und bei dir? Hallo; geht es dir; gehts dir; wie gehts;|#| Hallo mir gehts gut, wie siehts bei dir aus? .... blabla dann villeicht noch explizit sehen ob nen Hallo dabei war oder nicht, und dann die Antwort mit nem gegen Hallo oder ohne ausgeben. Vergleich Beispielsweise mit pos nach dem Motto
Delphi-Quellcode:
If pos(keyword[i], Frage)<>0 Then
begin //Uiui Keyword gefunden gebe Antwort[y] aus. end; |
AW: Ähnlichkeiten eines Strings an eine Variable prüfen? (Chatbot)
Oder man verwendet einen SoundEx oder Levensthein-Algorithmus
|
AW: Ähnlichkeiten eines Strings an eine Variable prüfen? (Chatbot)
![]() |
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:01 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz