2012-06-27 2 views
2

Мы используем CrowdFlower в тандеме с Amazon Mechanical Turk. Наши вопросы имеют одинаковый набор ответов на выбор, поэтому мы хотим рандомизировать порядок, в котором они появляются, чтобы держать пользователей в курсе и, надеюсь, отговаривать их от обмана.Как вы производите выбор ответа на CrowdFlower?

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

ответ

2

Вы можете достичь этого с помощью небольшого фрагмента javascript. Все, что вам нужно сделать, это добавить атрибут class = "rando" в тег cml:radios или cml:checkboxes, который вы хотите рандомизировать, и поместить следующий код в часть javascript расширенного редактора (предполагается, что у вас меньше 10 выбор в вашем cml:radios или cml:checkboxes тега):

$$('.cml_field.rando input').sort(function(a,b) { 
    return Math.round(Math.random()*10) - 1 
}).each(function(o) { 
    o.getParent('.cml_row').inject(o.getParent('.cml_field')) 
}) 
+0

вы знаете, если возможно следующее: у меня есть 5 кнопок радио (а, b, c, d, e), и я хочу рандомизировать их так, чтобы ab оставался gether и cd остаются вместе. – jeunefille

+0

Это возможно, но довольно сложно. Самый простой способ - изменить функцию сортировки выше, чтобы вернуть то же значение для полей, которые вы хотите сохранить вместе. Что-то вроде: 'function (a, b) {if (a.get ('value'). Match (/ a | b /)) {return 1} else {return Math.round (Math.random() * 10) - 1}} ' –

+0

Вот что я пытаюсь сделать: сделайте AB тем же классом. Пусть replace = Math.floor (Math.random() * 2). Если replace == 1, замените ярлык на A на B и наоборот. Мой вопрос: как я могу получить доступ к ярлыкам переключателей, чтобы их можно было изменить? $$ ('. cml_field.myClass input'). replace («A», «B»), похоже, не работает – jeunefille

1

вы также можете использовать случайное Жидкое фильтр:

{% capture my_value %}{{ 3 | random }}{% endcapture %} 
{% case my_value %} 
{% when "1" %} 
    One 
{% when "2" %} 
    Two 
{% when "0" %} 
    Zero 
{% endcase %}