Это было сказано, но NLTK будет местом для начала. В главе 8 книги, размещенной на их веб-сайте, анализируется структура предложений, которая будет первой частью написания программы, отвечающей на ваш вопрос. Главу можно найти здесь: http://www.nltk.org/book/ch08.html. Еще одна хорошая вводная книга для изучения этого набора инструментов Natural Language Processing с Python.
По сути, вы будете разбирать предложение на его слова, восстанавливать его значение, группируя слова, которые функционируют вместе, сохраняя их в переменных, а затем сопоставляя их с шаблонами предложений
где они могут соответствовать. Парсер создаст деревья данных (возможно, много деревьев)
