Здравствуйте. Пишу эту статью как инструкцию по использованию своего чат-бота — Анимешница Фокси и для портфолио.
Бот создан как альтернатива поисковой системе. Он способен проанализировать ваш текст, определить критерии для подбора и выдать результат.
Результат поиска формируется на основании таких параметров:
Для каждого параметра, за исключением количества, есть свой словарь с определениями и их синонимами с которым сопоставляется текст пользователя.
Так же параметры Количество и Сортировка имеют значения по-умолчанию: 3 и random соответственно.
Поиск по жанру
Результат:
Так же, жанров может быть несколько:
Результат:
Поиск по типу
Результат:
Поиск по возрастным ограничениям
Результат:
Сортировка
Результат:
Комбинирование параметров
Результат:
Результат:
Результат:
Если текст не удалось разобрать на параметры, бот попытается осуществить анализ на наличие названия конкретного тайтла. И вернёт информацию о нем, а так же несколько связанных или похожих аниме.
В отличии от поиск по параметрам, здесь кроме словаря с названиями всех аниме используется поиск по предустановленным шаблонов и наличия имени собственного.
Результат:
Результат:
Результат:
Помимо непосредственно запроса, бот умеет сохранять контекст и связывать несколько последовательных запросов:
Результат:
Результат:
Как видите, хоть в последующих запросах нет явного указания на тип и лимит, бот сохраняет эти параметры из первого запроса, тем самым формируя контекст диалога.
Подробнее про синтаксический анализ читайте тут.
P.S. А, Ещё бот умеет не красиво огрызаться, если её оскорбить.
Какие задачи выполняет
Бот создан как альтернатива поисковой системе. Он способен проанализировать ваш текст, определить критерии для подбора и выдать результат.
Что умеет
Определять параметры поиска
Результат поиска формируется на основании таких параметров:
- Жанр.
- Тип (сериал, полнометражный фильм, спец. выпуск, ova, ona).
- Возрастные ограничения.
- Количество аниме в ответе.
- Сортировка.
Для каждого параметра, за исключением количества, есть свой словарь с определениями и их синонимами с которым сопоставляется текст пользователя.
Так же параметры Количество и Сортировка имеют значения по-умолчанию: 3 и random соответственно.
Примеры
Поиск по жанру
Комедия
Весёлое аниме
Что-то смешное
Результат:
{
"limit": "3",
"kind": [],
"genre": [
"Комедия"
],
"order": "random",
"rating": []
}
Так же, жанров может быть несколько:
Очень весёлое аниме или что-то страшное
Результат:
{
"limit": "3",
"kind": [],
"genre": [
"Комедия",
"Ужасы"
],
"order": "random",
"rating": []
}
Поиск по типу
Полнометражка
Фильм
Результат:
{
"limit": "3",
"kind": [
"Фильм"
],
"genre": [],
"order": "random",
"rating": []
}
Поиск по возрастным ограничениям
R+
Аниме для взрослых
Результат:
{
"kind": [],
"genre": [],
"order": "random",
"rating": [
"r_plus"
],
"limit": "3"
}
Сортировка
Топ аниме
Лучшие аниме
Результат:
{
"genre": [],
"order": "ranked",
"rating": [],
"limit": "3",
"kind": []
}
Комбинирование параметров
топ 5 аниме в жанре ужасы
Результат:
{
"kind": [],
"genre": [
"Ужасы"
],
"order": "ranked",
"rating": [],
"limit": 5
}
1 новый фильм
Результат:
{
"kind": [
"Фильм"
],
"genre": [],
"order": "aired_on",
"rating": [],
"limit": 1
}
5 последних сериалов или ova в жанре комедия с рейтингом R
Результат:
{
"genre": [
"Комедия"
],
"order": "aired_on",
"rating": [
"r"
],
"limit": 5,
"kind": [
"Сериал",
"OVA"
]
}
Поиск по названию
Если текст не удалось разобрать на параметры, бот попытается осуществить анализ на наличие названия конкретного тайтла. И вернёт информацию о нем, а так же несколько связанных или похожих аниме.
В отличии от поиск по параметрам, здесь кроме словаря с названиями всех аниме используется поиск по предустановленным шаблонов и наличия имени собственного.
Примеры
Аниме с названием Ван пис
Результат:
{
"name": "Ван пис"
}
Найди мне аниме на подобии Ван пис
Результат:
{
"name": "Ван пис"
}
Аниме ван пис
Результат:
{
"name": "ван пис"
}
Прочее
Помимо непосредственно запроса, бот умеет сохранять контекст и связывать несколько последовательных запросов:
1 лучший сериал
Результат:
{
"kind": [
"Сериал"
],
"genre": [],
"order": "ranked",
"rating": [],
"limit": 1
}
а фильм?
{
"kind": [
"Фильм"
],
"genre": [],
"order": "ranked",
"rating": [],
"limit": 1
}
ещё
Результат:
{
"kind": [
"Фильм"
],
"genre": [],
"order": "ranked",
"rating": [],
"limit": 1,
"page":2
}
Как видите, хоть в последующих запросах нет явного указания на тип и лимит, бот сохраняет эти параметры из первого запроса, тем самым формируя контекст диалога.
Подробнее про синтаксический анализ читайте тут.