Für das Verschreiben solltest du dir mal die
Levenshtein-Distanz anschauen bzw. dir die passende Delphi-Umsetzung dazu suchen.
Damit kann man Benutzereingaben mit einer gewissen Tolleranz dann erkennen, was meistens recht gut funktioniert (für einzelne Wörter).
Und dann könntest du im simpelsten Fall gucken, ob die gesuchten Worte ("Wie", "Wetter", "heute") in der Benutzereingabe (ggf. sogar in der richtigen Reihenfolge) vorkommen.
So in der Art von
Delphi-Quellcode:
if (pos('Wie', eingabe) < pos('Wetter', eingabe)) and ((pos('heute', eingabe) > pos('Wetter', eingabe)) then
// antwort
Kann man natürlich entsprechend schöner / optimierter / lesbarer etc machen, aber das Grundprinzip sollte klar sein.
Die Frage "Das Wetter ist heute wie?" erkennt er natürlich nicht, wenn du die Reihenfolge festlegst.