Hab so etwas in einem ganz kleinen Maßstab schon mal selber
programmiert. Das Prinzip ist einfach: Das Programm erkennt in dem Satz
gewisse Signalwörter. Signalwörter sind in Kategorien geordnet. Die
Kategorie, aus der die meisten Signalwörter im Eingabetext vorhanden
sind, legt fest, aus welcher Kategorie die Antwort gebildet wird.
Außerdem erfolgt eine Gewichtung nach Position. Z. B. so:
"Ich mag meinen Vater, er zahlt mir das Studium."
In dem Beispiel wären die Kategorien (höchste Priorität oben)
Familie
Geld
Ausbildung
In dem Fall würde also eine Frage zur Familie stattfinden. Das Programm
weiß, dass ein Vater existiert(da das Wort "tot/krank" nicht enthalten
ist). Also würde die Antwort hier drauf Bezug nehmen. Aus der Liste zum
Thema Familie wird also "Wie geht es deinem/deiner ... ?" per Zufall
gewählt. Das Wort Vater wird eingesetzt.
U: Ich mag meinen Vater, er zahlt mir das Studium.
C: Wie geht es deinem Vater
...
Findet das Programm keine Schlüsselwörter oder kann keinen Sinn
erkennen, wählt es eine Phrase aus einer Liste. Z. B. "Du solltest sowas
nicht in dich reinfressen lassen."