2017-03-19 30 views
1

我使用CreateQualificationType操作在MTurk中創建新的認證類型,以便我可以在我的HIT中要求進行認證測試。亞馬遜Mechanical Turk:一個認證類型中的隨機問題

現在我有一組用於這個資格測試的問題,但我只想要誰申請這個資格測試MTurk工人回答只是這些問題的一小部分,和不同的作品回答不同問題隨機。我在AWS Document about Qualifications沒有找到任何有用的答案。有沒有一種方法來實現這一點?

回答

1

這很不幸是不可能的。資格考試只能使用QuestionForm XML進行設置,該考試不允許任何形式的隨機化。最常用的建議方法是用你想要的內容創建一個HIT,然後根據他們對HIT的反應爲工人分配資格分數。不理想,但唯一的選擇。

0

一塊蛋糕,其實。你需要做的是在循環內創建問題XML文件,然後從該問題創建命中xml。在下面的示例中,我手工製作了一個問題xml,並驗證了它在沙箱上的工作情況。然後我將問題xml文件拆分爲與未更改的部分對應的部分a,b,c,然後在我的循環中將xml代碼寫入文本文件。

  • A部分
  • 改變,在這種情況下的圖像
  • B部分 改變的問題的一部分,在這種情況下,多選
  • C部分的問題的
  • 部分

在進展結束時,我有一個有效的XML文件,我打開並使用創建命中。現在我知道這個問題是關於資格的,但這個想法完全一樣。

```

for hit_number in range(how_many): 
    print(hit_number) 
    my_emotions = sample(emotion_names,5) 
    my_emoji = sample(emoji_numbers,1) 
    HIT_image = <a url on S3 is convenient> 

    f_out = open('data/dynamic_question.xml', 'w') 
    f_out.write(parta) 
    f_out.close() 

    f_out = open('data/dynamic_question.xml', 'a') 
    f_out.write(' <DataURL>' + HIT_image + '</DataURL>' + '\n') 
    f_out.write(partb) 

    for emotion in my_emotions: 
     f_out.write('   <Selection>' + '\n') 
     f_out.write('   <SelectionIdentifier>' + emotion + '</SelectionIdentifier>' + '\n') 
     f_out.write('   <Text>' + emotion.capitalize() + '</Text>' + '\n') 
     f_out.write('   </Selection>' + '\n') 

    f_out.write(partc) 
    f_out.close() 

    with open("data/dynamic_question.xml") as f: 
     question = f.read() 

    # Create the HIT 
    response = client.create_hit(

```