Mechanical Turk - 通过API获取批次的结果

时间:2013-04-19 17:11:45

标签: api amazon-web-services mechanicalturk

我们使用Mechanical Turk网络界面创建了批量的HIT。现在我们要做的就是使用API​​下载批量结果,就像使用“下载CSV”在Web界面中下载批量结果一样。

亚马逊的文档说可以从API下载结果,如果不是,我会感到惊讶。但经过大量的编程时间和测试后,我无法获得批量的结果。

http://docs.aws.amazon.com/AWSMechTurk/latest/AWSMturkAPI/ApiReference_OperationsArticle.html

我们的问题不是获取HIT数据,使用GetHIT可以轻松获取。我们的问题不是获取分配数据,而是使用GetAssignmentsForHIT轻松完成。我们的问题是弄清楚批次的HIT ID,以便我们只获取该批次的结果。

我们认为我们可以使用GetHITsForQualificationType执行此操作,但由于我们对所有批次使用相同的HIT类型ID,因此这是不可能的。我能看到的唯一其他操作是SearchHIT,但是这个操作只允许你“排序”值,而不是通过例如批次ID“过滤”。

如果亚马逊是一家SOA公司并且他们遵循“吃你自己的狗食”的概念,那么我想知道他们是如何使用他们的API在“下载CSV”中生成结果的?

任何提示都将不胜感激。谢谢!

更新#1

我相信您可以使用SearchHITs来提取所有 HIT。然后使用GetHIT获取每个HIT的详细信息。然后通过实际包含批次ID的“RequesterAnnotation”过滤所有HIT,例如“BatchId:1234567;”。这可能是唯一的解决方案。听起来有点牵强。

1 个答案:

答案 0 :(得分:1)

工作流程与您在更新#1中描述的完全相同: (1)使用SearchHITs获取所有HIT。 (2)使用GetHIT获取详细信息(实际上您可以跳过此步骤,因为如果您包含SearchHITs响应组,则“请求者注释”字段会随HITDetail一起提供。 (3)通过注释字段过滤结果以获得所需的HIT。 (4)使用GetAssignmentsForHIT检索作业。

“批次ID”似乎只有亚马逊可以在请求者用户界面上使用。 (参见一些讨论on the MTurk Developer Forum

当然,API会以XML格式提供结果,您需要解析它以将其转换为CSV格式。