В общем интересует данный сабж на PHP. Готовый решения.А так же идеи алгоритма чтобы получался логический ответ.
Данный сабж не то что хотелось бы видеть у себя. Потому что использовать регулярные выражения в поиске текста явно не дадут логический ответ собеседнику. Да и структура if else в данном случае не правильна. Хочется создать пополняемую систему не вручную а теми же пользователями с которыми он будет общаться. Сейчас идея такова. 1) Создать бд в Mysql с 3 столбцами. 1. id вопроса 2. вопрос 3. ответы в массиве 2) Получаем фразу к примеру "привет как дела". Разбиваем ее на составляющие по слову. То есть получаем в итоге 3 слов 1."привет" 2."как" 3."дела" 3) Далее задаем вопрос к базе mysql в котором указываем SELECT `otvet` FROM `baza` WHERE `vopros` LIKE '%привет%' and LIKE '%как%' and LIKE '%дела%' 4) Получаем все данные по данному запросу и перебираем их циклом узнавая длину каждой строки. Где длина строки меньше всего тот вопрос считается самым схожим 5) Получаем все ответы по данному вопросу который как помним храниться в бд в виде сериализованного массива 6) Если ответов несколько рандомно выбираем один из них и отправляем его пользователю
Не ужели ни у кого нет идей по данному поводу? Так же был предложен вариант Slesh'a за что ему спасибо. Состоит он в том что каждое слово в своем смысле имеет вес. К примеру "я" 1 балл, "привет" 2 балла и т.д. Далее по такому же алгоритму как у меня происходит вытаскивание данных из бд. Вот только вместо 4 пункта в моем варианте ставим. 4) Получаем обший вес слов в приложении. Чем больше вес то фраза считается более схожа. Но данный вариант мне не подходит потому что каждому слову вручную надо означать его вес. А с учетом слов в русском языке это почти не выполнимо. Сейчас думаю как сделать склонение слов в мужской род или женский. Не буду же я в базе хранить ответ для мужского рода и женского отдельно. Хотелось бы работать с одной фразой. И исходя от рода говорящего и бота ставить фразы грамматически верно. То есть если в базе есть ответ "прости я отходил". Если бот у нас женского рода то фраза становиться "прости я отходила".