7

我们使用 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;”。这可能是唯一的解决方案。不过听起来有点牵强。

4

1 回答 1

0

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

“批次 id”似乎只有 Amazon 可以访问以在请求者用户界面上使用。(请参阅MTurk 开发者论坛上的一些讨论)

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

于 2013-05-02T09:56:19.477 回答