我正在使用 mTurk 进行调查,我需要一种方法来确保参加过之前调查/HIT 的人不会参与未来的某些调查/HIT。我不确定我是否应该将其作为资格或以其他方式进行。
我知道有一些方法可以做到这一点,但我不知道如何。我的编程经验非常有限,非常感谢有关如何执行此操作的具体说明。我的理解是我可能需要使用 AWS?非常感谢!
我正在使用 mTurk 进行调查,我需要一种方法来确保参加过之前调查/HIT 的人不会参与未来的某些调查/HIT。我不确定我是否应该将其作为资格或以其他方式进行。
我知道有一些方法可以做到这一点,但我不知道如何。我的编程经验非常有限,非常感谢有关如何执行此操作的具体说明。我的理解是我可能需要使用 AWS?非常感谢!
就您作为请求者的声誉而言,上述建议的大规模拒绝是一个非常非常糟糕的主意。你最好为新的 HIT 创建一个 Qualification,它会自动将 100 分(或其他)授予接受它的任何人,并将零分分配给完成之前调查的每个人。这可以防止重复,但不会惹恼您的任何工人。
创建资格的最简单方法是在https://requester.mturk.com/qualification_types。
如果您从这里https://requester.mturk.com/workers下载工人的 csv ,您可以为完成之前 HIT(s) 的工人分配分数。
但是,要使新员工自动获得资格授予分数,则需要 API。
这是一个hacky方法:
如果您进行了足够多的调查,那么是的,您可能希望至少在审批部分使用 AWS API。否则,大多数事情似乎都可以从请求者界面执行。
Amazon Mechanical Turk 服务具有此选项,请求者可以通过 Qualification_Type 授予其工作人员。通过这种方式,通过将您的 HIT 连接到名为“A”的qualification_type,然后授予工人完全相同的qualification_type,只有具有该资格的工人才能看到并在HIT 上工作。
首先,通过 mturk Web UI 创建所需的资格类型。(只有名称和描述)requester.mturk.com > manage > QualificationTypes。它会在生成它后给你一个资格 ID。(你很快就会需要它)
其次,在 HIT 创建循环中,您必须使用 QualificationRequirement 类。(我正在使用 java 代码,它看起来像下面提到的代码):
QualificationRequirement[] qualReq = new QualificationRequirement[1];
qualReq[0] = new QualificationRequirement();
qualReq[0].setQualificationTypeId(qualID);
qualReq[0].setComparator(Comparator.EqualTo);
qualReq[0].setIntegerValue(100);
qualReq[0].setRequiredToPreview(false);
然后在 HIT 创建循环中,我将使用它:
try {
hit = this.service.createHIT(null,
props.getTitle(),
props.getDescription(),
props.getKeywords(),
question.getQuestion(),
new Double(props.getRewardAmount()),
new Long(props.getAssignmentDuration()),
new Long(props.getAutoApprovalDelay()),
new Long(props.getLifetime()),
new Integer(props.getMaxAssignments()),
props.getAnnotation(),
qualReq,
null);
第三是将资格类型分配给您希望他们在您的 HIT 上工作的工人。这很简单,我通常使用 mturk UI 来做。https://requester.mturk.com/ > 管理选项卡 > 工人。如果您想将此资格分配给一群工人,您应该下载 CSV 文件。(工人是过去和你一起工作的人)
您可以在合格后通过向他们发送电子邮件来通知他们
注意:一些工人在合格后回答你的新 HIT 的速度很慢;所以请记住,如果您在一定时间内没有收到足够的响应,您应该有一些备用计划和时间。