Я заинтересован в написании механизма синтаксического анализа, такого как в Inform, который очень надежен.
Я пробовал несколько разных подходов:
- регулярное выражение. Для регулярных выражений я могу сопоставить только
{verb} {noun1 optional-noun2} {optional-preposition} {indirect-noun1 optional-indirect-noun2}
Это не очень хорошо работает.
- список предопределенных глаголов с соответствующими им предлогами и существительными. Этот подход слишком сложен, так как должно быть МНОГО предопределенных данных.
- разбить на разные слова и запустить их через словарь карт. Опять же, это слишком сложно и не практично из-за двусмысленности некоторых слов, таких как «смотреть» или «надевать (выходить)»
Я знаю о языковой обработке, хотя на самом деле понятия не имею, с чего начать, и некоторые вещи слишком сложны. (Нет знания по CS, сейчас я учусь самостоятельно).
У меня есть несколько идей:
- Как я уже сказал, обработка естественного языка.
- Разработка синтаксического анализатора, который анализирует что-то похожее на SQL.
Есть еще идеи? Как мне заняться дизайном и их реализацией?
Заметьте, я использую Python в качестве языка. и в случае, если вы пропустили это, я не проектирую язык программирования, я просто анализирую пользовательские команды, такие как "идти на север" или сложные вещи, такие как "потушить огонь одеялом"