【发布时间】:2013-04-13 04:00:53
【问题描述】:
我们已经使用 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,因此这是不可能的。我能看到的唯一其他操作是 SearchHITs,但此操作仅允许您“排序”值而不是通过例如批次 ID“过滤”。
如果亚马逊是一家 SOA 公司并且他们遵循“吃你自己的狗粮”的概念,那么我想知道他们如何使用他们的 API 在“下载 CSV”中生成结果?
任何提示将不胜感激。谢谢!
更新 #1
我相信您可以使用SearchHITs 来提取所有 HIT。然后使用GetHIT 获取每个 HIT 的详细信息。然后通过实际包含批次 ID 的“RequesterAnnotation”过滤所有 HIT,例如“BatchId:1234567;”。这可能是唯一的解决方案。不过听起来有点牵强。
【问题讨论】:
-
什么是“批次 ID”?我从未在 API 文档中看到过这个术语。
-
可能没有这样的东西,但是当您使用 Web 界面使用 CSV 文件创建 HIT 时,亚马逊指的是带有“批次”字样的那些。一个批次由多个 HIT 组成。批次 ID 不是他们宣传的,但是您可以在浏览批次时在 URL 中看到它。
标签: api amazon-web-services mechanicalturk