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;