Анализ тональности и модерация контента

Напишите нам, если не нашли ответ в Справке. Вы можете приложить скриншоты или видео, чтобы ускорить помощь:

Написать в чат  Написать в Telegram

Используйте этот пресет, чтобы классифицировать содержание текста по определенным категориям.

В пресете по умолчанию для создания интерфейса задания используется редактор HTML/JS/CSS. В этом разделе описано, как использовать Конструктор шаблонов для этой же цели. В разделе Интерфейс проекта выберите Конструктор шаблонов и вставьте код из примера в раздел Конфигурация.

В этом примере исполнителю нужно ответить на вопрос: если в тексте нарушения правил публикации или нет. Если ответ положительный, то отметить это нарушения.

Интерфейс разметки содержит:

  • текст;
  • варианты ответов;
  • горячие клавиши.

При выборе ответа Да, отображается уточняющий вопрос с вариантами ответа на него.

Обратите внимание, что в этом примере уже настроен внешний вид задания и валидация: исполнитель не сможет отправить задание, если не выберет один из вариантов ответа.

Из каких компонентов состоит этот пример
  • view.list — отображает данные списком;
  • view.text — показывает текст;
Показать код
{
  "type": "view.text",
  "content": {
    "type": "data.input",
    "path": "text"
  }
}
  • view.alert — создает цветную рамку для выделения важной информации;

В этом примере текст выделен синим цветом.

Показать код
{
  "type": "view.alert",
  "theme": "info",
  "content": {
    "type": "view.text",
    "content": {
      "type": "data.input",
      "path": "comment"
    }
  }
}
  • view.markdown — отображает текст в разметке Markdown;
Показать код
{
  "type": "view.markdown",
  "content": "**Есть ли в тексте какие-либо нарушения правил публикации?**"
}

Компонент view.markdown потребляет много ресурсов и может влиять на производительность устройства исполнителя. Чтобы отобразить текст без разметки, используйте компонент view.text.

  • field.radio-group — добавляет группу переключателей-радиокнопок для выбора одного ответа;
Показать код
{
  "type": "field.radio-group",
  "options": [
    {
      "label": "Нет",
      "value": "no"
    },
    {
      "label": "Да",
      "value": "yes"
    }
  ],
  "data": {
    "type": "data.output",
    "path": "is_infringements"
  },
  "validation": {
    "type": "condition.required",
    "hint": "Выберите вариант ответа."
  }
}
Показать код
{
  "type": "field.checkbox-group",
  "label": "Какие нарушения?",
  "options": [
    {
      "label": "Реклама или спам",
      "value": "advertising"
    },
    {
      "label": "Бессмысленный текст",
      "value": "nonsense"
    },
    {
      "label": "Оскорбление",
      "value": "insult"
    },
    {
      "label": "Нарушение закона",
      "value": "law_violation"
    },
    {
      "label": "Ненормативная лексика",
      "value": "profanity"
    }
  ],
  "data": {
    "type": "data.output",
    "path": ""
  },
  "validation": {
    "type": "condition.required",
    "hint": "Выберите одно или несколько нарушений."
  }
}
  • condition.required — проверяет, что поле с данными заполнено;
Показать код
{
  "type": "condition.required",
  "hint": "Выберите вариант ответа."
}
  • helper.if — в зависимости от условия позволяет выполнить либо один блок кода, либо другой;
Показать код
{
  "type": "helper.if",
  "condition": {
    "type": "condition.equals",
    "data": {
      "type": "data.output",
      "path": "is_infringements"
    },
    "to": "yes"
  },
  "then": {
    "type": "field.checkbox-group",
    "label": "Какие нарушения?",
    "options": [
      {
        "label": "Реклама или спам",
        "value": "advertising"
      },
      {
        "label": "Бессмысленный текст",
        "value": "nonsense"
      },
      {
        "label": "Оскорбление",
        "value": "insult"
      },
      {
        "label": "Нарушение закона",
        "value": "law_violation"
      },
      {
        "label": "Ненормативная лексика",
        "value": "profanity"
      }
    ],
    "data": {
      "type": "data.output",
      "path": ""
    },
    "validation": {
      "type": "condition.required",
      "hint": "Выберите одно или несколько нарушений."
    }
  }
}
  • plugin.toloka — настраивает внешний вид задания;
Показать код
{
  "type": "plugin.toloka",
  "layout": {
    "kind": "scroll",
    "taskWidth": 500
  }
}
Показать код
{
  "1": {
    "type": "action.set",
    "data": {
      "type": "data.output",
      "path": "is_infringements"
    },
    "payload": "no"
  },
  "2": {
    "type": "action.set",
    "data": {
      "type": "data.output",
      "path": "is_infringements"
    },
    "payload": "yes"
  },
  "w": {
    "type": "action.toggle",
    "data": {
      "type": "data.output",
      "path": "advertising"
    }
  },
  "a": {
    "type": "action.toggle",
    "data": {
      "type": "data.output",
      "path": "nonsense"
    }
  },
  "s": {
    "type": "action.toggle",
    "data": {
      "type": "data.output",
      "path": "insult"
    }
  },
  "d": {
    "type": "action.toggle",
    "data": {
      "type": "data.output",
      "path": "law_violation"
    }
  },
  "f": {
    "type": "action.toggle",
    "data": {
      "type": "data.output",
      "path": "profanity"
    }
  },
  "type": "plugin.hotkeys"
}

Если вам не подходит этот пресет, посмотрите другие примеры в этом разделе.

Добавить описание

Чтобы добавить описание к заданию, воспользуйтесь компонентом view.text.

Показать код
{
  "type": "view.text",
  "content": "Решите, соответствует ли текст правилам публикации."
}

Добавить поле для ввода ответа

Чтобы исполнители могли оставить комментарий, добавьте компонент для ввода многострочного текста field.textarea.

Показать код
{
  "type": "field.textarea",
  "label": "Коментарии",
  "placeholder": "Введите текст",
  "data": {
    "type": "data.output",
    "path": "comment"
  }
}

Написать в службу поддержки