Pull to refresh

Бот для поиска аниме

Reading time2 min
Views8.3K
Здравствуйте. Пишу эту статью как инструкцию по использованию своего чат-бота — Анимешница Фокси и для портфолио.

Какие задачи выполняет


Бот создан как альтернатива поисковой системе. Он способен проанализировать ваш текст, определить критерии для подбора и выдать результат.

Что умеет


Определять параметры поиска


Результат поиска формируется на основании таких параметров:
  1. Жанр.
  2. Тип (сериал, полнометражный фильм, спец. выпуск, ova, ona).
  3. Возрастные ограничения.
  4. Количество аниме в ответе.
  5. Сортировка.


Для каждого параметра, за исключением количества, есть свой словарь с определениями и их синонимами с которым сопоставляется текст пользователя.

Так же параметры Количество и Сортировка имеют значения по-умолчанию: 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
}

Как видите, хоть в последующих запросах нет явного указания на тип и лимит, бот сохраняет эти параметры из первого запроса, тем самым формируя контекст диалога.

Подробнее про синтаксический анализ читайте тут.

P.S. А, Ещё бот умеет не красиво огрызаться, если её оскорбить.
Tags:
Hubs:
+2
Comments0

Articles

Change theme settings