Классификация текстов
Обратите внимание
Документация на русском языке может быть устаревшей. Самые последние изменения доступны в документации на английском языке.
Для такого проекта в Толоке есть пресет Кликбейт или нет?
Пресет помогает классифицировать любой тип текста для обучения классификаторов и NLP-моделей.
Посмотрите пример — интерфейс разметки включает блок текста и радиокнопки для разных категорий. В нем уже настроена валидация, горячие клавиши и внешний вид задания.
-
view.text — текст, который вы хотите классифицировать.
Показать код{ "type": "view.text", "label": "Headline", "content": { "type": "data.input", "path": "headline" } }
-
field.button-radio-group — добавляет кнопки для выбора варианта ответа.
Показать код{ "type": "field.button-radio-group", "validation": { "type": "condition.required" }, "label": "Is this headline clickbait?", "options": [ { "label": "Clickbait", "value": "yes" }, { "value": "no", "label": "Not clickbait" } ], "data": { "type": "data.output", "path": "result" } }
-
condition.required — проверяет, что выбран хотя бы один вариант.
Показать код{ "type": "condition.required", "hint": "Select an option" }
-
plugin.toloka — настраивает внешний вид задания.
Показать код{ "type": "plugin.toloka", "layout": { "kind": "scroll", "taskWidth": 500 } }
-
plugin.hotkeys — горячие клавиши.
Показать код{ "1": { "type": "action.set", "data": { "type": "data.output", "path": "result" }, "payload": "yes" }, "2": { "type": "action.set", "data": { "type": "data.output", "path": "result" }, "payload": "no" }, "type": "plugin.hotkeys" }
Примечание
Вы можете добавлять медиафайлы (аудио, видео, картинки) со своего сервера, Яндекс Диска или из облачных хранилищ, таких как Yandex Cloud, Google Cloud, Amazon AWS и т.п.
Если вам не подходит этот пресет, посмотрите другие примеры в этом разделе.
Добавить описание
Чтобы добавить подробное описание к заданию, используйте компонент view.text.
{
"type": "view.text",
"content": "Read the headline and tell if it is clickbait."
}
Добавить поле для ввода ответа
Если вам нужны комментарии от исполнителя, то добавьте поле для ввода текста с помощью компонента field.textarea.
{
"type": "field.textarea",
"label": "Comments",
"placeholder": "Enter text",
"data": {
"type": "data.output",
"path": "comment"
}
}
Добавить оформление
Чтобы исполнитель легче ориентировался в задании, вы можете оформлять цветом разные типы данных с помощью компонента view.alert. В этом примере описание выделено синей рамкой, а кнопки — желтой.
{
"type": "view.alert",
"theme": "info",
"content": {
"type": "view.text",
"content": "Look at the text and tell if it is clickbait."
}
},
{
"type": "view.text",
"label": "Headline",
"content": {
"type": "data.input",
"path": "headline"
}
},
{
"type": "view.alert",
"theme": "warning",
"content": {
"type": "field.button-radio-group",
"validation": {
"type": "condition.required",
"hint": "Select an option"
},
"label": "Is this headline clickbait?",
"options": [
{
"label": "Clickbait",
"value": "yes"
},
{
"label": "Not clickbait",
"value": "no"
}
],
"data": {
"type": "data.output",
"path": "result"
}
}
}
Другие варианты кнопок
Определите, может ли исполнитель выбрать несколько вариантов ответа или только один:
Если ответов на вопрос может быть несколько — настройте чекбоксы field.checkbox-group.
{
"type": "field.checkbox-group",
"label": "This headline is:",
"options": [
{
"label": "Clickbate",
"value": "clickbate"
},
{
"label": "Too long",
"value": "long"
},
{
"label": "Gramatically incorrect",
"value": "bad-grammar"
},
{
"label": "None of this",
"value": "none"
}
],
"data": {
"type": "data.output",
"path": "input_data"
},
"validation": {
"type": "condition.required",
"hint": "Select at least one option"
}
}
Компонент field.button-radio-group отображается в виде цельных кнопок. Такие кнопки лучше подходят, когда в вопросе 2–4 варианта с короткими названиями.
Если вариантов ответа много или названия длинные, то лучше использовать переключатель field.radio-group, как в примере.
{
"type": "field.radio-group",
"label": "This headline is:",
"options": [
{
"label": "Clickbate",
"value": "clickbate"
},
{
"label": "Too long",
"value": "long"
},
{
"label": "Grammatically incorrect",
"value": "bad-grammar"
},
{
"label": "None of this",
"value": "none"
},
{
"label": "The text hasn't loaded",
"value": "404"
}
],
"data": {
"type": "data.output",
"path": "input_data"
},
"validation": {
"type": "condition.required",
"hint": "Select an option"
}
}
Добавить условия
С помощью helper.if можно показывать любой элемент интерфейса только при выборе определенного ответа.
{
"type": "helper.if",
"condition": {
"type": "condition.equals",
"data": {
"type": "data.output",
"path": "first-q"
},
"to": "no"
},
"then": {
"type": "field.checkbox-group",
"label": "2. Why don't you like it?",
"options": [
{
"label": "It's clickbate",
"value": "clickbate"
},
{
"label": "It's too long",
"value": "long"
},
{
"label": "It's grammarly incorrect",
"value": "bad-grammar"
},
{
"label": "Other",
"value": "other"
}
],
"data": {
"type": "data.output",
"path": "input_data"
},
"validation": {
"type": "condition.required",
"hint": "Select an option"
}
}
}
Сравнение текста и поискового запроса
Подходит ли текст под поисковый запрос
Добавьте кнопку, по которой исполнители будут открывать результаты поиска, и сформируйте ссылку поискового запроса с помощью компонента helper.search-query. Чтобы убедиться, что исполнитель перешел по ссылке и проверил ее содержимое, настройте валидацию, как в примере.
{
"type": "condition.link-opened",
"hint": "Follow the link",
"url": {
"type": "helper.search-query",
"query": {
"type": "data.input",
"path": "link"
},
"engine": "bing"
}
}
Попарное сравнение с веб-страницей
С помощью компонента view.iframe вы можете отобразить веб-страницу во встроенном окне. Расположите рядом текст, используя layout.side-by-side.
{
"type": "view.iframe",
"maxWidth": 400,
"fullHeight": true,
"url": {
"type": "helper.search-query",
"query": {
"type": "data.input",
"path": "link"
},
"engine": "bing"
}
}
Попарное сравнение с веб-страницей в рамке мобильного устройства
Это более сложный пример, который сравнивает текст с результатами поискового запроса. В нем используются компоненты:
- view.iframe — отображает веб-страницу во встроенном окне;
- view.device-frame — оборачивает окно в рамку смартфона;
- layout.side-by-side — располагает картинку и окно с результатами запроса рядом друг с другом.
{
"type": "layout.side-by-side",
"items": [
{
"type": "view.text",
"content": {
"type": "data.input",
"path": "text"
}
},
{
"type": "view.device-frame",
"maxWidth": 400,
"content": {
"type": "view.iframe",
"maxWidth": 400,
"fullHeight": true,
"url": {
"type": "helper.search-query",
"query": {
"type": "data.input",
"path": "link"
},
"engine": "bing"
}
}
}
]
}