Ich bin daran interessiert, eine Parsing-Engine wie die in Inform zu schreiben, die sehr robust ist.
Ich habe ein paar verschiedene Ansätze ausprobiert:
- regex. Für regex kann ich nur übereinstimmen
{verb} {noun1 optional-noun2} {optional-preposition} {indirect-noun1 optional-indirect-noun2}
Das funktioniert nicht so gut. - eine Liste mit vordefinierten Verben und den dazugehörigen Präpositionen und Substantiven. Dieser Ansatz ist zu komplex, da es eine MENGE vordefinierter Daten geben muss.
- Aufspaltung in verschiedene Wörter und Durchlaufen eines Wörterbuchs. Auch dies ist zu komplex und aufgrund der Mehrdeutigkeit bestimmter Wörter wie "schauen" oder "anziehen, ausziehen" nicht praktikabel.
Ich kenne mich mit Sprachverarbeitung aus, obwohl ich eigentlich keine Ahnung habe, wie ich anfangen soll, und einige der Dinge sind zu kompliziert. (Kein CS-Hintergrund, ich lerne im Moment nur auf eigene Faust).
Ich habe einige Ideen:
- Wie ich bereits sagte, natürliche Sprachverarbeitung.
- Entwerfen Sie einen Parser, der etwas ähnliches wie SQL parst.
Gibt es noch andere Ideen? Wie würde ich vorgehen, um sie zu entwerfen und umzusetzen?
Ich verwende Python als Sprache. Und falls es Ihnen entgangen sein sollte, ich entwerfe keine Programmiersprache, sondern analysiere nur Benutzerbefehle wie "go north" oder komplexes Zeug wie "put the fire out with the blanket".