2015-02-06 65 views
2

目前,我想手動創建HIT,並使用mturk的API檢索它們。Boto + Mechanical Turk:你如何獲得所有領域?

我使用博託檢索作業,但問題是我只能看到工人填寫的信息。我也想看看我爲HIT提供的原始信息。

案例:

餐廳名稱:邁克的捲餅(由我提供)

餐廳地址:[請在此輸入地址(通過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餐廳名稱和餐廳地址。

但是,我遇到的問題是以編程方式執行此操作。我只設法得到餐廳地址......沒有餐廳名稱就沒有用處。

+0

我想你需要提供更多的細節......比如你是如何創建HIT的?餐廳名稱是表單域還是HIT文本的一部分? – Thomas 2015-02-07 09:31:00

+0

Hi @Thomas,我已經更新了我的問題,包括用於創建HIT的html ...仍然卡在這個,所以會愛你的幫助! – user2097278 2015-02-10 05:31:23

+0

感謝您編排您的代碼 – swyx 2017-01-07 06:03:43

回答

0

你遇到的是RUI和API之間的區別。 RUI(即網站)實際上是一個構建在MTurk API之上的應用程序,它包含附加功能。在RUI中創建CSV上傳批次時,MTurk將輸入值附加到每個HIT,以便在下載結果時它們在那裏。 MTurk實際上並沒有這個功能;這僅僅是RUI的一個特點。

如果您創建通過API的訪問,您可以使用RequesterAnnotation域得知其HIT是標記它們,但沒有辦法模仿的API的批量功能(即合併輸入和結果值),而本地記錄哪個HIT轉到哪個輸入數據,然後在從API中提取分配數據之後合併它們。因此,如果您通過RUI創建HIT並稍後將其從API中拉出,則基本上無法將輸入映射到結果。

+0

好的,謝謝Thomas ...看起來我只需通過API創建HIT即可。 – user2097278 2015-02-11 07:30:57