Далее - результаты работы тестовой версии chatbot'а на базе нейросетевого движка логического вывода:
Схематично движок работает так.
Пользователь вводит запрос (это может быть вопрос в техподдержку, или к виртуальному персонажу игры, или к поисковой системе).
Движок ищет в базе знаний наиболее релевантную предпосылку, на основе которой можно построить ответ (в листинге отмечено как best premise).
Далее берет эту предпосылку, добавляет текст вопроса и с помощью отдельной нейросетки строит ответ.
В приведенном ниже сеансе работы можно видеть некоторые важные фичи, без которых chatbot бесполезен, например учет морфологии и семантической близости слов.
:> кто питается травой?
Best premise=коровы едят траву
коровы
:> питаются ли коровы травой?
Best premise=коровы едят траву
да
:> коровы питаются чем?
Best premise=коровы едят траву
траву
:> кто есть траву?
Best premise=коровы едят траву
коровы
:> траву кто кушает?
Best premise=коровы едят траву
коровы
:> что едят коровы?
Best premise=коровы едят траву
траву
:> ловят ли кошки мышей?
Best premise=кошка ловит мышку
да
:> мышей кто ловит?
Best premise=кошка ловит мышку
кошка