Мнение большинства

Мнение большинства — это способ контроля качества, основанный на совпадении ответов большинства исполнителей, выполняющих одно и то же задание. Правильным считается ответ, выбранный большинством, другие ответы считаются неверными. В зависимости от доли правильных ответов вы можете либо увеличить значение навыка у исполнителя, либо заблокировать для него доступ к заданиям.

Алгоритм мнения большинства работает только с обязательными полями выходной спецификации.

Для проверки мнением большинства, на основе ответов исполнителя, можно настроить:

  • подсчет значения навыка;
  • обновление значения навыка;
  • блокировку аккаунта исполнителя.

Чтобы настроить проверку, задайте значения ключей в массиве quality_control.configs (параметры пула).

Тело и параметры запроса

Настроена проверка для пула с перекрытием «5». При подсчете учитываются задания, в которых совпали ответы трех и более исполнителей. Доля правильных (совпавших с большинством) ответов сохраняется как значение навыка 43. Навык можно применить для отбора исполнителей. Первый расчет навыка производится после выполнения двух заданий, совпавших с мнением большинства.

Вы можете заблокировать доступ исполнителя к заданиям в проекте на необходимое количество дней, часов, минут (по отдельности и в совокупности) или навсегда.

Пример

Блокировка на 10 дней

{
  "configs": [
    {
      "collector_config": {
        "type": "MAJORITY_VOTE",
        "parameters": {
          "answer_threshold": 3,
          "history_size": 10
        }
      },
      "rules": [
        {
          "conditions": [
            {
              "key": "total_answers_count",
              "operator": "GT",
              "value": 2
            }
          ],
          "action": {
            "type": "SET_SKILL_FROM_OUTPUT_FIELD",
            "parameters": {
              "skill_id": "43",
              "from_field": "correct_answers_rate"
            }
          }
        },
        {
          "conditions": [
            {
              "key": "total_answers_count",
              "operator": "GTE",
              "value": 5
            },
            {
              "key": "incorrect_answers_rate",
              "operator": "GT",
              "value": 3
            }
          ],
          "action": {
            "type": "RESTRICTION_V2",
            "parameters": {
              "scope": "PROJECT",
              "duration_unit": "DAYS",
              "duration": 10,
              "private_comment": "Does not correspond to the opinion of the majority"
            }
          }
        }
      ]
    }
  ]
}

Чтобы задать другой период блокировки, измените значение параметров duration_unit и duration ключа configs.rules.action.parameters:

Единица измерения длительности блокировки:

  • MINUTES — минуты;
  • HOURS — часы;
  • DAYS — дни;
  • PERMANENT — навсегда.

Длительность блокировки.

{
  ...
  "action": {
    "type":"RESTRICTION_V2",
    "parameters": {
      "scope": "PROJECT",
      "duration_unit": "HOURS",
      "duration": 12,
      "private_comment": "Does not correspond to the opinion of the majority"
    }
  }
  ...
}
{
  ...
  "action": {
    "type":"RESTRICTION_V2",
    "parameters": {
      "scope": "PROJECT",
      "duration_unit": "MINUTES",
      "duration": 30,
      "private_comment": "Does not correspond to the opinion of the majority"
    }
  }
  ...
}
{
  ...
  "action": {
    "type":"RESTRICTION_V2",
    "parameters": {
      "scope": "PROJECT",
      "duration_unit": "PERMANENT",
      "private_comment": "Does not correspond to the opinion of the majority"
    }
  }
  ...
}

Параметры

Все настройки правил контроля качества определяются в массиве объектов configs[]. Он является обязательным и содержит следующие параметры:

Параметр

Описание

collector_config*

object

Параметры для сбора статистики (например, количество пропусков заданий в пуле).

rules*

object

Набор правил контроля качества, которые нужно применить.

'configs[].collector_config'

Параметр

Описание

type*

string

Критерий, на котором основан блок качества:

  • ACCEPTANCE_RATE — доля ответов исполнителя, которые были отклонены при отложенной приемке заданий.

  • ANSWER_COUNT — количество страниц заданий, выполненных исполнителем в пуле.

  • ASSIGNMENT_SUBMIT_TIME — количество «быстрых» ответов (минимальная скорость ответа задается в параметрах).

  • ASSIGNMENTS_ASSESSMENT — количество принятых или отклоненных заданий при включенной отложенной приемке заданий.

  • CAPTCHA — количество успешно и неуспешно введенных капч.

  • GOLDEN_SET — количество правильных и неправильных ответов в контрольных заданиях.

  • INCOME — плата за задания, выполненные исполнителем за последние 24 часа.

  • MAJORITY_VOTE — доля ответов, которые совпали с мнением большинства.

  • SKIPPED_IN_ROW_ASSIGNMENTS — количество пропущенных подряд страниц заданий.

  • USERS_ASSESSMENT — значение навыка исполнителя и его блокировка.

parameters

object (обязательный при условии)

Обязательный, если configs.collector_config.type равно одному из значений:

  • ASSIGNMENT_SUBMIT_TIME
  • ASSIGNMENTS_ASSESSMENT
  • CAPTCHA
  • GOLDEN_SET
  • MAJORITY_VOTE
  • USERS_ASSESSMENT

Параметры для сбора данных (зависят от блока контроля качества, указанного в ключе type).

'configs[].collector_config.parameters'

Параметр

Описание

answer_threshold

integer (обязательный при условии)

Обязательный, если значение configs.collector_config.type равно MAJORITY_VOTE.

Количество исполнителей, которое считается большинством (например, 3 из 5).

fast_submit_threshold_seconds

integer (обязательный при условии)

Обязательный, если значение configs.collector_config.type равно ASSIGNMENT_SUBMIT_TIME.

Минимальная приемлемая скорость ответа в секундах.

history_size

integer (обязательный при условии)

Обязательный, если configs.collector_config.type равно одному из значений:

  • ASSIGNMENTS_ASSESSMENT
  • GOLDEN_SET
  • MAJORITY_VOTE
  • USERS_ASSESSMENT

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

Если поле отсутствует, в расчете учитываются все задания, ответы исполнителя или показы капчи в пуле.

'configs[].rules'

Параметр

Описание

action*

object

Действие в случае выполнения условий (например, закрыть доступ к проекту).

conditions*

object

Условия (например, пропуск 10 страниц заданий подряд). Несколько условий объединяются с помощью оператора «и».

'configs[].rules.action'

parameters*

object

Параметры действия.

type*

string

Тип действия:

  • APPROVE_ALL_ASSIGNMENTS — принять все ответы исполнителя. Например, если исполнитель выполняет большинство заданий качественно и вас устраивает такой результат.

  • CHANGE_OVERLAP — изменить перекрытие. Например, чтобы повторно отправить страницу заданий на выполнение другим исполнителям или отменить повторное выполнение уже принятых заданий.

  • REJECT_ALL_ASSIGNMENTS — отклонить все ответы исполнителя. Например, спустя несколько ответов исполнителя стало понятно, что он некачественно выполняет задания.

  • RESTRICTION_V2 — заблокировать доступ к проектам или пулам.

  • SET_SKILL — присвоить навыку указанное константное значение.

  • SET_SKILL_FROM_OUTPUT_FIELD — присвоить навыку значение «доля правильных ответов» (используется в блоках Контрольный набор и Мнение большинства).

    Значение навыка можно использовать для отбора исполнителей.

'configs[].rules.action.parameters'

Параметр

Описание

scope*

string

Уровень ограничения:

  • POOL — пул. Не влияет на рейтинг исполнителя.
  • PROJECT — проект. Влияет на рейтинг исполнителя.
  • ALL_PROJECTS — все проекты заказчика.

skill_id

string (обязательный при условии)

Обязателен, если type=SET_SKILL_FROM_OUTPUT_FIELD.

Идентификатор навыка, который необходимо обновлять по мере выполнения заданий.

from_field

string (обязательный при условии)

Обязателен, если type=SET_SKILL_FROM_OUTPUT_FIELD.

Значение, которое нужно присвоить навыку:

  • correct_answers_rate — доля правильных ответов;
  • wrong_answers_rate — доля неправильных ответов.

skill_value

integer (обязательный при условии)

Обязателен, если type=SET_SKILL_FROM_OUTPUT_FIELD.

Фиксированное значение, которое нужно присвоить навыку (число от 0 до 100).

delta

integer (обязательный при условии)

Обязателен, если type=CHANGE_OVERLAP.

Значение определяет, на сколько изменить перекрытие.

public_comment

string (обязательный при условии)

Обязателен, если type=REJECT_ALL_ASSIGNMENTS.

Комментарий (причина отклонения ответов). Доступен заказчику и исполнителю.

duration_unit

string

Единица измерения длительности блокировки:

  • MINUTES — минуты;
  • HOURS — часы;
  • DAYS — дни;
  • PERMANENT — навсегда.

duration

integer

Длительность блокировки.

private_comment

string

Комментарий (причина блокировки). Доступен только заказчику.

open_pool

boolean

Определяет, нужно ли открыть закрытый пул:

  • true — открыть пул после изменения, если он закрыт.
  • false — не открывать пул после изменения, если он закрыт.
'configs[].rules.conditions'

Параметр

Описание

key*

string

Значения, которые проверяются в условии:

  • total_answers_count — количество выполненных заданий, в которых сложилось мнение большинства (большинство укажите в answer_threshold).
  • correct_answers_rate — доля правильных ответов, т.е. совпавших с мнением большинства (от 0 до 100).
  • incorrect_answers_rate — доля неправильных ответов, т.е. не совпавших с мнением большинства (от 0 до 100).

Несколько условий с одинаковым значением поля key объединяются с помощью логического «и».

operator*

string

Оператор сравнения (данные key сравниваются с пороговым значением из value):

  • EQ («Equal») — равно.
  • GT («Greater than») — больше чем.
  • GTE («Greater than equal to») — больше или равно.
  • LT («Less than») — меньше чем.
  • LTE («Less than equal to») — меньше или равно.
  • NE («Not equal to») — не равно.

value*

integer

Пороговое значение переменной, указанной в key.

Обязательный параметр

Следующая