Amazon mechanical turk- "DoesNotExist" 限定类型分配中 Comparator 的值

Amazon mechanical turk- "DoesNotExist" value for Comparator in qualificatiol type assignment

我的目标是防止以前为我的 HIT 工作的人为我的下一个 HIT 工作。

为了这个目标,在发布第一批 HIT 后,我为第一轮 HIT 的工作人员分配了资格类型命名 "already_done_myHITs"。

然后为了发布第二个 HIT,我将创建一个 QualificationRequirement,它的比较器具有 "DoesNotExist" 值,但是我在值列表中看不到这个值导入的库建议我。

我想,我需要在下面的代码中使用 "DoesNotExist" 值而不是 X;但是,建议列表仅包含 "Exists",我没有看到 "DoesNotExist"。

QualificationRequirement[] qualReq = new QualificationRequirement[1];

qualReq[0] = new QualificationRequirement();

qualReq[0].setQualificationTypeId(qualID);

qualReq[0].setComparator(Comparator.X);

qualReq[0].setRequiredToPreview(false);

(我想如果我用我分配给前几个工人的qualification_type_ID来发布第二个HIT,然后使用Comparator.DoesNotExist,我可以禁止第一个HIT的工人继续工作下一个命中) 您对这个问题有什么建议吗?

我相信只有Java SDK and Ruby SDK for Amazon Mechanical Turk is up-to-date with the DoesNotExist qualification comparator. You can learn more about the recently updated Java SDK here

注意Perl and .NET SDKs, along with the Command Line Tools do not support the DoesNotExist comparator(还)。

看起来您使用的是 Java SDK,所以您的情况应该不错。这是一个您可以直接放入 SDK 中的 SimpleSurvey.java 代码示例的示例。它应该出现在 createSimpleSurvey() 方法中。只需替换这些行:

  // The create HIT method takes in an array of QualificationRequirements
  // since a HIT can have multiple qualifications.
  QualificationRequirement[] qualReqs = null;
  qualReqs = new QualificationRequirement[] { locationQualReq, numHITsApprovedQualReq };

有了这个:

  // This is a built-in qualification -- user must NOT be a Mechanical Turk Master Worker
  QualificationRequirement notMasters = new QualificationRequirement();
  notMasters.setQualificationTypeId("2ARFPLSP75KLA8M8DH1HTEQVJT3SY6"); // You can get these values here: http://docs.aws.amazon.com/AWSMechTurk/latest/AWSMturkAPI/ApiReference_QualificationRequirementDataStructureArticle.html
  notMasters.setComparator(Comparator.DoesNotExist);

  // The create HIT method takes in an array of QualificationRequirements
  // since a HIT can have multiple qualifications.
  QualificationRequirement[] qualReqs = null;
  qualReqs = new QualificationRequirement[] { locationQualReq, numHITsApprovedQualReq, notMasters };

问题与 JAVA SDK 的版本有关。我使用的是 java-aws-mturk 1.6.2,现在我将其更新为 1.7.0 版。那么,问题就解决了! 现在比较器的值列表包含 "DoesNotExist" 值!