Лицензия: GPL
<?xml версия="1.0" кодировка="UTF-8"?> < Конфигурация > <Идентификатор штата ="0"> < message >Привет, как дела?</ message > < ключевые слова > < ключевое слово target ="1">счастливое</ ключевое слово > </ ключевые слова > </ Государство >В приведенном выше примере, если пользователь вводит ключевое слово «счастливое», бот переходит в состояние «1» и отображает одно из сообщений о состоянии «1» случайным образом. Если пользователь вводит какие-либо другие строки, появится одно из недопустимых сообщений.<Идентификатор штата ="1"> < message >вау, ты счастлива!</ message > < сообщение > рад это слышать!</ сообщение > </ Государство > < Инвалидсообщения > < message >А, я не понял?</ message > < message >Что вы имеете в виду?</ message > </ Инвалидмессажес > </ Конфигурация >
Тег ключевого слова содержит несколько атрибутов, позволяющих настроить бота в соответствии с требованиями.
<Идентификатор штата ="16"> < message >Привет, как дела сегодня?</ message > < сообщение >Как вы себя чувствуете?</ сообщение > < message >Как дела?</ message > < keyword target ="11">счастлив, очень рад</ keyword > < keyword target ="13">не счастлив, не хорошо, не в порядке, грустно, расстроен</ ключевое слово > < keyword target ="23">хорошо, хорошо, спасибо</ keyword > < keyword target ="14">себя</ ключевое слово > </ Государство >
Использование функции погоды
Чтобы использовать функцию погоды, тег ключевого слова должен содержать два атрибута: className и arg, className должен иметь значение «Погода», а arg должен иметь значение «сегодня», «завтра» или «dayaftertomorrow». Вот пример получения текущей погоды:
< ключевое слово className ="Погода" arg ="сегодня">погода</ ключевое слово >
Результат:
Ты: как погода? Бот: Думаю, сегодня туман.
<Идентификатор штата ="11"> < message >Отлично, почему вы счастливы?</ message > < ключевые слова > < keyword target ="21">лотерея</ ключевое слово > < ключевое слово target ="22">*</ ключевое слово > </ ключевые слова > </ Государство >
<?xml версия="1.0" кодировка="UTF-8"?> < Конфигурация > <Идентификатор штата ="0"> < message >Привет, меня зовут MajBot, как вас зовут?</ message > < ключевые слова > < ключевое слово target ="2" переменная ="name">([a-zA-Z ]+)</ ключевое слово > </ ключевые слова > </ Государство > <Идентификатор штата ="16"> < message >Привет, [имя], рад тебя видеть!</ message > </ Государство > </ Конфигурация >Результат:
Бот: Здравствуйте, меня зовут MajBot, как вас зовут? Вы: Маджид Бот: Привет, Маджид, рад тебя видеть!В приведенном выше примере регулярное выражение «([a-zA-Z )+)» принимает любые символы от a до z (без учета регистра), включая пробелы, и сохраняет соответствующее слово для имени переменной, а затем, используя [name] в сообщении, пользовательское имя имя будет заменено этим тегом. (Дополнительную информацию о синтаксисе Regex см. в документации Java Regex).
< Конфигурация > <Идентификатор штата ="0"> < message >Привет, меня зовут MajBot, как вас зовут?</ message > < ключевые слова > < ключевое слово target ="16" переменная ="name" точек ="2">.*меня зовут ([a-zA-z]+).*</ ключевое слово > < ключевое слово target ="16" переменная ="name">([a-zA-Z ]+)</ ключевое слово > </ ключевые слова > </ Государство > <Идентификатор штата ="16"> < message >Привет, [имя], рад тебя видеть!</ message > </ Государство > </ Конфигурация >Результат:
Бот: Здравствуйте, меня зовут MajBot, как вас зовут? Ты: меня зовут Маджид Бот: Привет, Маджид, рад тебя видеть!В приведенном выше примере мы добавляем 2 балла для первого ключевого слова, поэтому, если пользователь вводит «Меня зовут Маджид», он получает только имя, а не возвращает «Меня зовут Маджид» в качестве имени.
<Идентификатор штата ="1"> < message >О чем вы хотите поговорить?</ message > < ключевое слово переменная ="subject" target ="27">([a-zA-z]+)</ ключевое слово > </ Государство > <Идентификатор штата ="27"> < сообщение >Что такое [тема]?</ сообщение > < ключевое слово target ="43" переменная ="result" Learn ="subject">(.*)</ ключевое слово > </ Государство >Результат:
Бот: О чём ты хочешь поговорить? Ты: футбол Бот: Что такое футбол? Ты: это хорошая игра Бот: Понятно... Бот: О чём ты хочешь поговорить? Ты: футбол Бот: это хорошая играКак показано в приведенном выше примере, бот узнает ключевое слово «футбол», а затем отправляет ответ обратно пользователю, когда пользователь снова отправляет то же ключевое слово.
java -cp MajBot.jar bot.MainЧтобы запустить MajBot, вы можете просто ввести:
ш бежать.шЕсли вы используете Windows, вместо этого вы можете запустить файл run.bat.
После запуска бота пользователь может ввести сообщение и начать общение с MajBot.
Наслаждаться!
http://www.majidkhosravi.com/chat-bot/