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

use*_*124 5 api mechanicalturk amazon-web-services

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

亚马逊的文档说,可以从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。然后使用捕获每个HIT的详细信息GetHIT。然后通过“ RequesterAnnotation”过滤所有HIT,其中实际上包含批次ID,例如“ BatchId:1234567;”。这可能是唯一的解决方案。听起来有些牵强。

Tho*_*mas 1

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

“批次 ID”似乎只能由亚马逊访问以在请求者用户界面上使用。(请参阅MTurk 开发者论坛上的一些讨论)

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