Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Ähnlichkeiten eines Strings an eine Variable prüfen? (Chatbot) (https://www.delphipraxis.net/156747-aehnlichkeiten-eines-strings-eine-variable-pruefen-chatbot.html)

Ghostleader 13. Dez 2010 18:36

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 Turing-Test.
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,

Darkface 13. Dez 2010 21:38

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;

mkinzler 14. Dez 2010 05:26

AW: Ähnlichkeiten eines Strings an eine Variable prüfen? (Chatbot)
 
Oder man verwendet einen SoundEx oder Levensthein-Algorithmus

stahli 14. Dez 2010 08:45

AW: Ähnlichkeiten eines Strings an eine Variable prüfen? (Chatbot)
 
Hier gab es mal eine kleine Sammlung...


Alle Zeitangaben in WEZ +1. Es ist jetzt 11:38 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz