我们使用 Mechanical Turk Web 界面创建了一批 HIT。现在我们要做的就是使用 API 下载批次的结果,就像您可以使用“下载 CSV”在 Web 界面中下载批次的结果一样。
来自亚马逊的文档说从 API 下载结果是可能的,如果不是,我会感到惊讶。但是经过大量的编程和测试后,我无法获得批处理的结果。
http://docs.aws.amazon.com/AWSMechTurk/latest/AWSMturkAPI/ApiReference_OperationsArticle.html
我们的问题不是获取 HIT 数据,使用GetHIT
. 我们的问题也不在于获取分配数据,这很容易用GetAssignmentsForHIT
. 我们的问题是找出一个批次的 HIT ID,以便我们只获取该批次的结果。
我们认为我们可以做到这一点,GetHITsForQualificationType
但由于我们对所有批次使用相同的 HIT 类型 ID,这是不可能的。我能看到的唯一其他操作是 SearchHITs,但此操作仅允许您“排序”值而不是“过滤”例如批次 ID。
如果亚马逊是一家 SOA 公司并且他们遵循“吃你自己的狗粮”的概念,那么我想知道他们如何使用他们的 API 在“下载 CSV”中生成结果?
任何提示将不胜感激。谢谢!
更新#1
我相信你可以SearchHITs
用来拉出所有的命中。然后使用 . 获取每个 HIT 的详细信息GetHIT
。然后通过“RequesterAnnotation”过滤所有HIT,其中实际包含批次ID,例如“BatchId:1234567;”。这可能是唯一的解决方案。不过听起来有点牵强。