Если подход "в лоб", то делать поиск в присланном сообщении по словам, выдавать заранее готовые уточняющие вопросы, к примеру:
- Хочу купить покемона, сколько будет стоить доставка?
Ключевые слова: купить, покемона, сколько, стоить, доставка
Покемон - это вещь в каталоге, значит можно показать варианты покемонов.
Доставка - это действие, значит можно показать стоимость.
Выдаем варианты кнопками:
- Выбрать покемона
- Стоимость доставки
Если более правильно, то гуглите world2vec, тогда обученный бот уже будет понимать контекст, т.к. пример выше самый простой.
Проблема 1 ваш бот не поймет повествование, пока не научится понимать его смысл, т.е.
выделять один
контекст из миллионов, который
вы или другой человек сможете
трактовать как правильный.
Проблема 2 ваш друг сидящий рядом скажет что бот тупой т.к. на ваш вопрос, бот ответил бессмыслицу, которая понятна только вам, но не вашему другу.
Проблема 3 это получить ответ от бота одинаково понятный вам и другу.
Вот набросал, смотрите как это работает
Окружающий мир и другие люди
загоняют нас в рамки:
- туда не ходи
- здесь не трогай
- где родился, там и пригодился
- это не солнце, а луна
- трава зеленого цвета, а не коричневая
- и т.д. миллионы контекстов
Каждый контекст - это вектор, кусок нашего опыта,
весь набор контекстов определяет вашу личность.
Чтобы вы были на одной волне с ботом, у вас должны быть
похожие с ним вектора. Т.е. вам нужно
создать такую
среду для бота, чтобы он испытывал теже ограничения что и большинство окружающих вас людей.
Попробуйте объяснить какому нибудь человеку из древнего африканского племени, что есть людей - это нехорошо, он не поймет вас, т.к. он вырос в другой среде, с абсолютно другими рамками и устоями.
Создать такого бота, это тоже самое что вырастить ребенка, т.е. сложно, но вполне возможно.
Начните с этого
видео, чтобы понять что я имею в виду, когда говорю "создать среду".