亚马逊机械土耳其人 - 比较器在限定醇类型分配中的"DoesNotExist"值



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

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

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

我认为,在下面的代码中,我需要使用"DoesNotExist"值而不是X;然而,建议列表只包含"Exists",我看不到"DoesNotExist"。

QualificationRequirement[]qualReq=新的QualificationRequirement[1];

qualReq[0]=新的QualificationRequirement();

qualReq[0]。setQualificationTypeId(qualID);

qualReq[0]。setComparator(Comparator.X)

qualReq[0].setRequiredToPreview(false);

(我认为,如果我在发布第二个HIT时使用我分配给前一个工人的qualification_type_ID,然后使用Comparator.DoesNotExist,我可以禁止第一个HIT的工人在下一个HIT上工作)你对这个问题有什么建议吗?

我相信只有用于Amazon Mechanical Turk的Java SDK和Ruby SDK才是最新的DoesNotExist资格比较器。您可以在此处了解有关最近更新的Java SDK的更多信息。

请注意,Perl和.NET SDK以及命令行工具还不支持DoesNotExist比较器。

看起来你在使用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版本。所以,问题已经过去了!现在Comparator的值列表包含"DoesNotExist"值!

最新更新