Эта задача не совсем простая задача машинного обучения.Вам необходимо знать, откуда поступают ваши входные данные (webscraping, NL corpus и т. Д.), И из этого вы должны абстрагировать некоторые шаблоны, соответствующие вашим входным данным.Возможно, вы могли бы использовать некоторый анализ зависимостей (вместо соседства и коллокаций), чтобы извлечь шаблоны и отношения из данных корпуса.Логическим компилятором для python является pyke, вы можете проверить, можете ли вы его использовать.
Все остальное кажется простой логикой высказываний или предикатов, поэтому вам следует проверить, какие алгоритмы разрешения вы можете использовать, чтобы выяснитьистинные значения ваших сценариев.
Если вам нужна только Позиционная логика, вы можете использовать некоторый контекстно-свободный синтаксический анализатор и реализовывать разрешение в качестве рекурсивных операций над вложенными словарными представлениями логических операторов, я однажды сделал это с Ранним анализатором, и этобыл довольно полезным инструментом.
http://pyke.sourceforge.net/
https://www.doc.ic.ac.uk/~sgc/teaching/pre2012/v231/lecture8.html