Boto + Mechanical Turk:如何获得所有字段?

问题描述 投票:0回答:1

目前,我想手动创建 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。

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

python boto mechanicalturk
1个回答
0
投票

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

如果您通过 API 创建 HIT,则可以使用

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

© www.soinside.com 2019 - 2024. All rights reserved.