亚马逊机械土耳其人:一种资格类型的随机问题

时间:2017-03-19 07:53:43

标签: amazon-web-services mechanicalturk

我正在使用CreateQualificationType操作在MTurk中创建一个新的资格类型,以便我可以在我的HIT中要求这个资格测试。

现在我有一系列关于此资格测试的问题,但我只希望要求此资格测试的MTurk工作人员回答这些问题的一小部分,并且不同的工作回答不同的问题随机。我在AWS Document about Qualifications找不到任何有用的答案。有没有办法实现这一目标?

2 个答案:

答案 0 :(得分:1)

遗憾的是,这是不可能的。资格测试只能使用QuestionForm XML进行设置,不允许任何类型的随机化。最常推荐的替代方法是使用您想要的内容创建HIT,然后根据他们对HIT的响应为工作人员分配资格分数。不太理想,但唯一的选择。

答案 1 :(得分:0)

实际上是一块蛋糕。你需要做的是在循环中创建问题xml文件,然后从该问题xml创建命中。在下面的示例中,我手工制作了一个问题xml并验证它在沙箱上有效。然后我将问题xml文件分成对应于未更改的部分的a,b,c部分,然后在我的循环中将xml代码写入文本文件。

  • parta
  • 更改的部分问题,在本例中为图像
  • B部分 改变的部分问题,在这种情况下是多项选择
  • C部分

在进度结束时,我有一个有效的xml文件,我在create hit中打开并使用它。现在我知道这个问题是关于资格的,但这个想法是完全一样的。

```

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(

```