Если у вас есть готовый набор ответов, например «Привет, как дела», вы можете создать набор подходящих вопросов для таких ответов и сравнить их (например, с помощью spacy nlp ) между пользовательским вводом и вашими известными подсказками.
Вы можете задать самый быстрый аналогичный вопрос-запрос, чтобы определить наиболее похожий вопрос, который ранее был сопоставлен с ответом, а затем ответить на этот вопрос в качестве ответа.
Например, «Привет» и «Привет» имеют гораздо более высокое сходство (0,9 или около того), чем «Привет» и «Что такое страшное животное?»do (около 0) ..
Итак, если у вас было
"Что такое страшное животное?"==> «Тигр»,
«Привет» => «Привет, как дела»?
«Привет» будет отображать 0,9 в «Привет» и около 0 в «Что такоестрашное животное », поэтому выберите« Привет », ответ« Привет, как дела? »
« Что такое жестокое животное », которое будет отображаться ближе к« Что такое страшное животное », поэтому выберите« Тигр »для этого ..
Чтобы ваша программа могла улучшаться, вам нужно было бы где-то сохранить сопоставления и добавить больше ... это примерно то, как работают боты чата GOFAI