Помощь в создании бота (PHP, регулярные выражения)
Делаю бота для чата на php и нужен человек, хорошо знающий регулярные выражения. У меня самого на них уйдет много времени.
Да и вообще программист в принципе нужен, ищу контакты.
Бот может общаться и выполнять команды. Общение построено по такому принципу.
Есть определенный порядок фраз, после нахождение которых в тексте в определенном порядке бот отвечает или выполняет команду.
Например, такая строка для бота:
bot;бот|как|дела;поживаешь|*, потихоньку;*, пока ничего;
Здесь разделители | это порядок нахождения фраз, а точка с запятой это варианты фраз (с английским переводом или жаргон и т.д.).
Бот распознает два предложения "bot, как дела" и "бот, как поживаешь", а вот "бот, дела есть" уже не войдет в это условие.
Соответственно. конструкция разбивается в массив, где последний элемент массива это ответ бота, который случайный (random), где варианты перечислены точкой с запятой, а звездочка это пользователь, к которому идет обращение.
Возможны конструкции с командами, собственно, для этого и нужен бот.
bot;бот|узнай;пробей;скажи|погоду в|getWeather
Тут последний элемент массива уже функция. Файл с функциями расширяемый, они вызываются из класса. Для безопасности будут иметь префикс chatbot_getWeather. Функция возвращает ответ бота. Перед вызовом функции идет проверка прав пользователя, если недостаточно прав, функция не вызывается. Это только для примера, конечно погода не нужна.
Здесь пока несложно - скрипт создает регулярное выражение из конструкции, где варианты будут выглядеть примерно так (узнай|пробей|скажи) ? (погоду в), т.е. с нужной последовательностью слов. Но иногда нужно будет парсить из текста какие-то данные. Бот может отправить пользователю сообщение с параметрами, например, сосчитать пример и тогда нужно будет взять числовые выражения со знаками операций. То есть идет сначала проверка по соответствию "бот, сосчитай 2423+231.34*342" или так "бот, сколько будет 54,43/23", а затем из сообщения выдираются нужные данные и приводиться в порядок, например, точки заменены на запятые. При этом все точки на запятые можно заменить сразу , убрав точку в конце предложения, чтобы не писать сложную регулярку.
нужна гибкость, чтобы пользователи не заучивали правила обращения к боту, а потому нужен программист имеющий хороший опыт работы с регулярными выражениями. плюс еще нужно "кормить" бота данными из разных сайтов, т.е. парсить таблицы, обрабатывать json-данные и т.д.
Плачу до 10$ в час не зависимо от результата.