Предыдущая версия справа и слева
Предыдущая версия
Следующая версия
|
Предыдущая версия
|
tech:toloka [2023/03/10 12:52] arina_lukash |
tech:toloka [2025/03/03 15:46] (текущий) anastasia_melnikova |
====== Яндекс.Толока — тестирование диктанта ====== | ====== Яндекс.Задания — тестирование диктанта ====== |
| |
===== Вводные ===== | ===== Вводные ===== |
**Ограничение**: цельный текст диктанта под секретом, нельзя его полностью показывать отдельному человеку. | **Ограничение**: цельный текст диктанта под секретом, нельзя его полностью показывать отдельному человеку. |
| |
**Решение**: предлагать пользователям сервиса "Яндекс.Толока" писать отдельные предложения под диктовку, а затем склеивать результаты в единые тексты, затем формировать [[tech/import|архив для импорта]]. | **Решение**: предлагать пользователям сервиса "Яндекс.Заданий" писать отдельные предложения под диктовку, а затем склеивать результаты в единые тексты, затем формировать [[tech/import|архив для импорта]]. |
| |
===== Описание решения ===== | ===== Описание решения ===== |
| |
Зарегистрируйтесь в сервисе | Зарегистрируйтесь в сервисе |
[[https://toloka.yandex.ru/|Яндекс.Толока]] в качестве заказчика. | [[https://tasks.yandex.ru//|Яндекс.Задания]] в качестве заказчика. |
| |
==== Пополнение баланса ==== | ==== Пополнение баланса ==== |
| |
Пополните баланс на нужную сумму (в долларах). Примерная экономика: 3 цента за предложение. В диктанте в среднем 15-20 предложений, следовательно, одно написание будет стоить от 45 до 60 центов. | Пополните баланс на нужную сумму (в рублях). Примерная экономика: 1,85 ₽ за предложение. В диктанте в среднем 15-20 предложений, следовательно, одно написание будет стоить от 28 до 37 рублей. |
| |
Можно пополнить баланс с расчётного счёта юрлица. | Можно пополнить баланс с расчётного счёта юрлица. |
==== Формирование проекта ==== | ==== Формирование проекта ==== |
| |
Создайте [[https://toloka.yandex.ru/requester/templates|новый проект]]. Шаблон: "Audio → Transcribing audio recordings". | Создайте [[https://tasks.yandex.ru/requester/templates|новый проект]]. Шаблон: "Аудио → Расшифровка аудиозаписей". |
| |
**Name to show Tolokers**: "Напишите предложение из школьного диктанта". | **Название для исполнителей**: "Напишите предложение из школьного диктанта". |
| |
**Description for Tolokers**: "Нужно послушать и записать предложение со всеми знаками препинания, опираясь на собственную грамотность". | **Описание для исполнителей**: "Нужно послушать и записать предложение со всеми знаками препинания, опираясь на собственную грамотность". |
| |
**Task interface** → Template builder → Config: вставить json из поля ниже. | **Интерфейс задания** → Конструктор шаблонов → Конфигурация: вставить json из поля ниже. |
| |
<code javascript json> | <code javascript json> |
**Инструкция для исполнителей** | **Инструкция для исполнителей** |
| |
В поле "Instructions for Tolokers" вставляется инструкция: | В поле "Инструкция для исполнителей" вставляется инструкция: |
<code> | <code> |
Используйте наушники для прослушивания аудиозаписи. | Используйте наушники для прослушивания аудиозаписи. |
</code> | </code> |
| |
После заполнения всех полей нажимается **Save**. | После заполнения всех полей нажимается **Создать проект**. |
==== Создание пула ==== | ==== Создание пула ==== |
| |
Создаётся новый пул заданий ("Create new pool"), для каждого диктанта отдельный. В поле "Pool type" выбирается опция "General tasks". Называние пишется в поле "Pool name (private)", например, "Диктант 1" (название текущего диктанта). В "Private comment" записывается название проекта. | Создаётся новый пул заданий ("Добавить пул"), для каждого диктанта отдельный. Называние пишется в поле "Название пула (доступно только вам)", например, "Диктант 1" (название текущего диктанта). В публичное описание вставляется инструкция для исполнителей задания (например, //Внимательно послушайте и запишите предложение со всеми знаками препинания, опираясь только на собственную грамотность (без словарей, справочников и поисковиков)//). |
| |
На странице пула выставляются следующие параметры: | На странице пула выставляются следующие параметры: |
* На странице **"Select the audience for your task"** убирается галочка "My task may contain shocking or pornographic content", сохраняется опция "Languages" в поле "= Value" выставляется "Russian", ставится галочка "Tolokers who passed the language test". На шкале "Specify the percentage of top-rated Tolokers who can access tasks in the pool" выбирается, например, топ 60% лучших исполнителей. | * В поле **"Аудитория"** убирается галочка "В моих заданиях может содержаться шокирующий или порнографический контент", сохраняется опция "Языки" в поле "= Значение" выставляется "Русский". На шкале "Соотношение скорости и качества" выбирается, например, топ 60% лучших исполнителей. |
{{:tech:define_relevant_tolokers_who_get_access_to_your_tasks.jpg?600|}} | {{:tech:audience.png?600|}} |
| |
* На странице **"Set up quality control"** удаляется окошко с полями "Recent task suites to use... Minimum time per task suite". Через новое **"Add a quality control rule"** выбирается правило контроля качества **"Submitted responses"**, там проставляются значения: ''If submitted tasks suites = 3, then suspend in pool permanently'' — для того, чтобы один человек смог увидеть не более трёх предложений диктанта. В **"Reason"** вписывается "Ответ получен". | * В поле **"Контроль качества"** удаляются поля "Учитывать последних страниц заданий... Минимальное время на страницу заданий", "Мнение большинства". Оставляется правило контроля качества **"Выполненные задания"**, там проставляются значения: ''Если отправленных страниц = 3, то приостановить в пуле навсегда'' — для того, чтобы один человек смог увидеть не более трёх предложений диктанта. В **"Причина"** вписывается "Ответ получен". |
{{:tech:set_up_quality_control.jpg?600|}} | {{:tech:quality_control.png?600|}} |
| |
* На странице **"Set the task price and overlap"** в поле "Price per task suite, $" выставляется цена 0,02, в поле "Number of Tolokers per task Overlap" выставляется значение 120. | * В окне **"Цена"** в поле "Цена за страницу заданий, ₽" выставляется цена 1,85, в поле "Перекрытие" выставляется значение 120. |
{{:tech:task_price_overlap.jpg?600|}} | {{:tech:price.png?400|}} |
| |
* На странице "Add optional pool settings" проставляется галочка "Keep task order", остальные параметры оставляются по умолчанию. | * В расширенных настройках → Дополнительные настройки выбирается **"Время на страницу заданий, с"** — 600, **"Тип пула"** — Пул с обычными заданиями. Выбирается опция "Сохранять порядок заданий". |
| {{:tech:task-order.png?600|}} |
| |
| ==== Клонирование пула ==== |
| Если в проекте есть пул, удовлетворяющий всем необходимым параметрам, его можно скопировать, чтобы не заполнять заново вручную все поля. Это можно сделать двумя способами: |
| - На странице проекта со всеми пулами заданий навести мышь на нужный и выбрать кнопку "Клонировать".// |
| {{:tech:clone_1.png?800|}}// |
| - На странице выбранного пула в дополнительных опциях по кнопке "…" выбрать "Клонировать".// |
| {{:tech:clone_02.png?800|}}// |
| |
==== Загрузка заданий ==== | ==== Загрузка заданий ==== |
</code> | </code> |
| |
Файл сохраняется с расширением ''.tsv'' и загружается в текущий пул задач (страница **"Prepare and upload data"**). После **"Continue"** в окне "Smart mixing" выставляются параметры: "General tasks" — 1, "Control tasks" — 0, "Training tasks" — 0. | Файл сохраняется с расширением ''.tsv'' и загружается в текущий пул задач (кнопка **"Загрузить задания"**). |
| |
У оставшегося окна нажимается **"Do it later"**. | |
==== Запуск пула ==== | ==== Запуск пула ==== |
| |
На открывшейся странице (**"Overview"**) нажимается **"Start labeling"** → **"Launch"**. | На странице пула нажимается кнопка **"Запустить разметку"**. |
После модерации Толоки проект будет запущен и откроется толокерам. | После модерации проект будет запущен и откроется исполнителям. |
==== Получение результатов написания ==== | ==== Получение результатов написания ==== |
| |
После выполнения всех заданий толокерами можно скачать результаты по кнопке "Download results" в пуле. В окне скачивания выбираются статусы "General" и "Accepted" без полей и разделения ответов пустой строкой. | После выполнения всех заданий можно скачать результаты по кнопке "Скачать результаты" в пуле. В окне скачивания выбираются только статусы "Принятые" и "ID Исполнителя". |
| |
{{:tech:results.jpg?200|}} | |
| |
| {{:tech:results.png?400|}} |
| |
Данные из скачанного файла импортируются в таблицу, на лист //OUTPUT// так, чтобы в каждой строке была ссылка на аудиофайл и текст результата: | Данные из скачанного файла импортируются в таблицу, на лист //OUTPUT// так, чтобы в каждой строке была ссылка на аудиофайл, текст результата и ID толокера: |
| |
{{:tech:toloka_output.png|}} | {{:tech:toloka_output.png|}} |
| |
Следует просмотреть глазами все результаты, чтобы вручную удалить пустые и некорректные строки (сочетание ''Ctrl + Alt + -''). | ==== Анализ результатов написания ==== |
| |
Итого, готова таблица для работы скрипта по формированию текстов диктанта. | 1. Значения сортируются по столбцу с "ID толокера" (столбец "C").\\ |
| 2. Для всех недобросовестных толокеров, явно не старавшихся написать предложения, в столбце "D" пишется слово "бан" (для последующей фильтрации).\\ |
| 3. С помощью фильтра по значению "бан" (в столбце "D") копируются в новый лист с названием "BAN" все строки.\\ |
| 4. В листе "BAN" по столбцу "C" удаляются все повторы, чтобы в "ID толокеров" не осталось дублей.\\ |
| {{:tech:doubles.png?600|}}\\ |
| 5. Столбец с "ID толокеров" без первой строки сохраняется в новую таблицу типа ''ban.csv''.\\ |
| 6. На странице [[https://tasks.yandex.ru/requester/workers?ban=REQUESTER_BAN|Пользователи]] через "Загрузить файл" (1) загружается получившаяся csv-таблица. При загрузке списка пользователей нажимается "Добавить". На открывшейся странице с пользователями выбирается кнопка "Заблокировать" (2), место блокировки в открывшемся окне — "У меня".\\ |
| {{:tech:ban_01.jpg?350|}}\\ |
| {{:tech:ban_02.jpg?700|}}\\ |
| 7. В изначальном листе с помощью фильтра выбираются все строки //без// значения "бан", копируются и вставляются в новый лист с названием "OUTPUT". Старый лист удаляется.\\ |
| 8. Все строки сортируются по столбцу "B" ("Сортировать А > Я"), чтобы было проще убирать лишнее: удаляются пустые строки, обрывочные написания, незаконченные предложения (пропуск двух и более слов).\\ |
| |
| После анализа таблица готова для работы скрипта по формированию текстов диктанта. |
==== Подготовка скрипта слияния ==== | ==== Подготовка скрипта слияния ==== |
| |
</code> | </code> |
| |
В начале, в секции "основные параметры скрипта", прописываются нужные ссылки: на таблицу с результатами, директорию сохранения текстовых файлов, идентификатора диктанта. Подробные пояснения в комментариях скрипта. | В начале, в секции "основные параметры скрипта", прописываются нужные значения: ID таблицы с результатами, ID папки для сохранения текстовых файлов, ID диктанта. Подробные пояснения в комментариях скрипта. |
| |
После заполнения нужных параметров нажимается команда "Выполнить". | После заполнения нужных параметров нажимается команда "Выполнить". |
| |
Архив импортируется в Учительскую в [[tech/import#format_importa_tekstov|формате для импорта]]. | Архив импортируется в Учительскую в [[tech/import#format_importa_tekstov|формате для импорта]]. |
| |
| ==== Анализ вариантов без тепловой карты ==== |
| |
| Чтобы посмотреть на частотное распределение написаний, нужно в лист OUTPUT таблицы с выгружаемыми данными в ячейку C2 (1) вставить формулу ''=QUERY(B2:B; "select B, count(B) where B is not null group by B order by count(B) desc"; 0)''. |
| |
| Первый параметр функции указывает на интервал. Если исходных предложений несколько, то указывается конкретный для нужного предложения интервал, например B2:B100. После вставки справа должна появиться статистика по вариантам написания (2). |
| |
| {{:tech:example-without-map.png?800|}} |
| |
| Ссылка на [[https://docs.google.com/spreadsheets/d/1gzjjDJVhP0fHIigBSz4p1e20T4NYLslQ1KUGqYwwdZw/edit?gid=418681934#gid=418681934|таблицу из примера выше]]. |
| |
===== Сохранение артефактов ===== | ===== Сохранение артефактов ===== |
| |
В комментарии к Редмайн-задаче даётся ссылка на гугл-таблицу, ссылка на "Тепловую карту", прикрепляется zip-архив с текстами из Толоки. | В комментарии к Редмайн-задаче даётся ссылка на гугл-таблицу, ссылка на "Карту ошибок", ссылка на проект в "Заданиях", прикрепляется zip-архив с текстами из Яндекс.Заданий. |