【问题标题】:Boto + Mechanical Turk: how do you get all fields?Boto + Mechanical Turk:如何获得所有领域?
【发布时间】:2015-02-06 16:17:44
【问题描述】:

目前,我想手动创建 HIT,并使用 mturk 的 API 检索它们。

我正在使用 Boto 检索作业,但问题是我只能看到工作人员填写的信息。我还想查看我为 HIT 提供的原始信息。

例子:

餐厅名称:Mike's Burritos(由我提供)

餐厅地址:[请在此处输入地址](mturk填写)

我可以通过以下方式获取餐厅地址:

from boto.mturk.connection import MTurkConnection
mtc = MTurkConnection(aws_access_key_id=[ACCESS_ID],
                  aws_secret_access_key=[SECRET_KEY],
                  host=[HOST])

assignments = mtc.get_assignments([HIT_ID], status=None, sort_by='SubmitTime', sort_direction='Ascending', page_size=10, page_number=1, response_groups=None)
address = assignments[0].answers[0][0].fields

如何获得餐厅名称?

谢谢, 埃德

更新

这是我用来创建 HIT 的相关 html:

<table>
    <tbody>
        <tr>
            <td><label>Restaurant name:</label></td>
            <td>${name}</td>
        </tr>
    </tbody>
</table>

^ 然后,我上传一个 .csv 文件,其中包含“名称”作为属性之一。这会填充上面的字段。

<div><label>Restaurant address:</label> <input class="form-control" id="address" name="address" placeholder="Enter restaurant address here" type="text" /></div>

^ MTurk 为每家餐厅填写此信息

当我登录 MTurk,查看结果并点击“下载 csv”时,我能够得到想要的结果:一个包含餐厅名称和餐厅地址的 csv。

但是,我遇到的问题是以编程方式执行此操作。我只是设法获得了餐厅地址……没有餐厅名称与之匹配是没有用的。

【问题讨论】:

  • 我认为您需要提供更多详细信息...例如您是如何创建 HIT 的?餐厅名称是表单字段还是 HIT 文本的一部分?
  • 嗨@Thomas,我已经更新了我的问题以包括用于创建 HIT 的 html... 仍然停留在这个问题上,所以希望您能提供帮助!

标签: python api amazon boto mechanicalturk


【解决方案1】:

您遇到的是 RUI 和 API 之间的差异。 RUI(即网站)实际上是一个构建在 MTurk API 之上的应用程序,其中包括附加功能。当您在 RUI 中创建 CSV 上传批处理时,MTurk 会将输入值附加到每个 HIT,以便在您下载结果时它们就在那里。 MTurk 实际上没有这个功能。这是 RUI 单独的一个功能。

如果您通过 API 创建 HIT,则可以使用 RequesterAnnotation 字段标记它们以了解哪个 HIT 是哪个,但是没有办法模仿 API 的批处理功能(合并输入和结果值)在本地记录哪个 HIT 进入哪个输入数据,然后在从 API 提取分配数据后合并它们。因此,如果您通过 RUI 创建 HIT,然后从 API 中提取它们,则基本上无法将输入映射到结果。

【讨论】:

  • 好的,谢谢 Thomas……看来我也只能通过 API 创建 HIT。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-07-28
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多