Boto + Mechanical Turk:如何获取所有字段?
Boto + Mechanical Turk: how do you get all fields?
目前,我想手动创建 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 文件,其中 'name' 作为属性之一。这会填充上面的字段。
<div><label>Restaurant address:</label> <input class="form-control" id="address" name="address" placeholder="Enter restaurant address here" type="text" /></div>
^ MTurk 为每家餐厅填写此项
当我登录到 MTurk,查看结果并单击 "Download csv" 时,我能够得到想要的结果:一个包含餐厅名称和餐厅地址的 csv。
但是,我遇到的问题是以编程方式执行此操作。我只设法得到了餐厅地址...没有餐厅名称匹配它是没有用的。
您遇到的是 RUI 和 API 之间的差异。 RUI(即网站)实际上是一个构建在 MTurk API 之上的应用程序,其中包含其他功能。当您在 RUI 中创建 CSV 上传批处理时,MTurk 会将输入值附加到每个 HIT,以便在您下载结果时它们就在那里。 MTurk 实际上没有这个功能;这只是 RUI 的一个功能。
如果您通过 API 创建 HIT,您可以使用 RequesterAnnotation
字段标记它们以了解哪个 HIT 是哪个,但是无法模仿 API(合并输入和结果值)而不在本地记录哪个 HIT 进入哪个输入数据,然后在从 API 中提取分配数据后合并它们。因此,如果您通过 RUI 创建 HIT,然后从 API 中提取它们,基本上没有办法将输入映射到结果。
目前,我想手动创建 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 文件,其中 'name' 作为属性之一。这会填充上面的字段。
<div><label>Restaurant address:</label> <input class="form-control" id="address" name="address" placeholder="Enter restaurant address here" type="text" /></div>
^ MTurk 为每家餐厅填写此项
当我登录到 MTurk,查看结果并单击 "Download csv" 时,我能够得到想要的结果:一个包含餐厅名称和餐厅地址的 csv。
但是,我遇到的问题是以编程方式执行此操作。我只设法得到了餐厅地址...没有餐厅名称匹配它是没有用的。
您遇到的是 RUI 和 API 之间的差异。 RUI(即网站)实际上是一个构建在 MTurk API 之上的应用程序,其中包含其他功能。当您在 RUI 中创建 CSV 上传批处理时,MTurk 会将输入值附加到每个 HIT,以便在您下载结果时它们就在那里。 MTurk 实际上没有这个功能;这只是 RUI 的一个功能。
如果您通过 API 创建 HIT,您可以使用 RequesterAnnotation
字段标记它们以了解哪个 HIT 是哪个,但是无法模仿 API(合并输入和结果值)而不在本地记录哪个 HIT 进入哪个输入数据,然后在从 API 中提取分配数据后合并它们。因此,如果您通过 RUI 创建 HIT,然后从 API 中提取它们,基本上没有办法将输入映射到结果。