2012-06-27 4 views
2

우리는 Amazon Mechanical Turk와 함께 CrowdFlower를 사용하고 있습니다. Google의 질문에는 답변을 선택할 때와 동일한 답변이 있으므로 사용자가 속임수를 사용하지 못하도록 알림을 표시하고 순서를 무작위로 정하고 싶습니다.CrowdFlower에서 답변 선택을 무작위로 선택하는 방법은 무엇입니까?

모든 질문에 적용 할 수있는 스크립트를 CML (CrowdFlower Markup Language) 문서에 삽입 할 수 있기를 원합니다. 우리는 JavaScript를 삽입하는 것이 올바른 방법 일 것이라고 생각합니다. 모든 팁을 환영 할 것입니다.

답변

2

자바 스크립트의 작은 스 니펫으로이를 수행 할 수 있습니다. 모두 랜덤 화하려는 cml:radios 또는 cml:checkboxes 태그에 class = "rando"속성을 추가하고 고급 편집기 의 자바 스크립트 부분에 다음 코드를 삽입하면됩니다.이 코드는 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 개 라디오 버튼 (A가 말을, b, c, d, e) 그리고 나는 그들을 무작위로 분류하여 ab가 gether와 cd는 함께 머물러 있습니다. – jeunefille

+0

그것은 가능하지만 다소 까다 롭습니다. 가장 간단한 방법은 위의 정렬 함수를 수정하여 함께 머물러야하는 필드에 대해 동일한 값을 반환하는 것입니다. 함수 (a, b) {if (a.get ('value')} 일치 (/ a | b /)) {return 1} else {return Math.round (Math.random() * 10) - 1}} –

+0

다음은 내가하려는 일입니다. AB를 같은 클래스로 만듭니다. let = 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 %} 
관련 문제