2010-05-14 36 views

回答

1

http://docs.amazonwebservices.com/AWSMechanicalTurkRequester/2008-08-02/

您可以設置兩種類型的限制:

  • 分配任何工作人員可以接受你已經創建了一個特定的HIT型的最大數量。這個值在你設置之前是未定義的。
  • 分配任何工作人員可以接受您所有的HIT不否則有HIT型特定的限制已分配的最大數量。初始默認值爲10.

最初,您的所有HIT都將應用於組的整體限制(默認值爲10)分組在一起,而不考慮HIT類型。

請注意,這是指工作人員當前可以接受的分配數量。一旦工作人員提交了作業,他們可以接受另一項作業。

你可能不應該關心一個工人完成多少個HIT,但可能有一個原因,你想改變一個工人當前可以從默認值10接受的數量。當然,一個工人只能接受來自具有多個分配的HIT的一項任務。

如果你真的想要限制工人實際上可以做的HIT數量,那麼你需要指定你不會接受每個工人超過一定的數量,明確指出一旦達到限制,你會拒絕任何意見書,或者你可以用資格類型猴子來做這件事(但這可能是很多工作)!

作爲後者的例子,如果你想給別人限制做總共N個任務,你可以一個資格類型爲每個HIT並授予不超過N種以上任何一個工人。

+0

「你也許不應該關心工人多少命中完成整體」 - 你當然應該。對於某些類別的工作,讓一個人做很多迭代是有意義的。對於其他類別,它是完全無用的。例如,許多調查使用土耳其語,並希望一個人只進行一次調查。 – 2011-10-28 00:09:24

+1

然而,這不是什麼土耳其人。機械土耳其人主要存在於人類做人類智能任務的計算機無法輕鬆完成的任務。如果你真的關心工人完成多少個HIT,你可能不應該首先使用Mechanical Turk。 – 2012-03-03 06:12:13

+4

您顯然引用了SetWorkerAcceptLimit的文檔。此功能自2008年以來已被禁用:「您無法再設置接受限制。」 http://docs.amazonwebservices.com/AWSMechTurk/2008-04-01/AWSMechanicalTurkRequester/ApiReference_SetWorkerAcceptLimitOperation.html – 2012-07-24 18:48:39

3

你也可以用外部問題做到這一點。我在機械特克上運行心理學實驗,所以我需要獨特的參與者。除了要求工作人員只執行一個HIT之外,我還使用python腳本來驗證唯一性。我的HIT都運行一個cgi腳本來產生問題。該腳本查閱日誌文件,如果該工作人員以前接受過相關工作,則會禮貌地通知他們,因爲我需要獨特的參與者,所以HIT將不可用。

我用學歷來做到這一點,卻發現它實在有限參與。

+0

做的零工生氣,如果他們接受一個命中,然後被告知,他們不能要嗎? – VikR 2015-06-17 08:36:11

5

創建一擊這確實是一個打擊,但使用JavaScript來每次被觀看的時間動態變化的HIT。然後,在發佈HIT時,將「每個HIT的分配數量」設置爲您想要的參與人數。這樣你只會得到獨一無二的參與者。

根據您要運行該HIT的類型是可能爲你工作的技術。我用它來隨機化顯示給參與者的刺激。

1

只是爲了澄清,如果你只想要獨特工人完成單發命中所有你需要做的是設置你想要的最大分配到然而,許多獨特的工人和機械土耳其人在默認情況下將只分配唯一的工人到命中。

現在如果你想在多個命中獨特的工人,那麼你必須有獲得幻想和使用再加上記錄作業人員ID的分機腳本外部問題...

1

如果你想要使用X獨特的用戶,使每個HIT的分配數量等於「設計」部分中的x。然後,加載您的csv文件時,只需將一個HIT放在文件中。

15

我開發了一個腳本,主要解決這個問題。主要想法是根據數據庫檢查工作人員ID,如果工作人員已經完成相關的HIT,則隱藏HIT。

,這樣你就不需要託管自己的數據庫服務器,我做了可作爲在(免費)服務我的腳本:http://uniqueturker.myleott.com。如果您在使用腳本時遇到任何問題,或者您有任何問題或建議,請告訴我們。

我還包括這裏的腳本,如果你想用自己的URL /數據庫使用。如果你走這條路線,你需要爲你的數據庫設置一個Web界面,該界面需要一個工人ID,如果工人被允許在HIT上工作,則返回「1」,否則返回「0」。然後,你只要將「YOUR_URL」下面指向Web界面:

<script type="text/javascript"> 
(function() { 
    var assignmentId = turkGetParam('assignmentId', ''); 
    if (assignmentId != '' && assignmentId != 'ASSIGNMENT_ID_NOT_AVAILABLE') { 
    var workerId = turkGetParam('workerId', ''); 
    var url = 'http://YOUR_URL/?workerId='+workerId; 
    var request = new XMLHttpRequest(); 
    request.open('GET', url, false); 
    request.send(); 
    if (request.responseText != '1') { 
    document.getElementById('mturk_form').style.display = 'none'; 
    document.getElementsByTagName('body')[0].innerHTML = "You have already completed the maximum number of HITs allowed by this requester. Please click 'Return HIT' to avoid any impact on your approval rating."; 
    } 
    } 
})(); 
</script> 
+0

感謝您發佈您的答案!請務必仔細閱讀[自助推廣常見問題](http://stackoverflow.com/faq#promotion)。 – 2012-12-13 03:15:08

+1

謝謝安德魯。我已經編輯了我的答案以包含腳本,以便希望使答案更一般。 – 2012-12-13 04:46:52

+0

@MyleOtt,這是非常有用的,但是上面的腳本有一個問題,'turkGetParam'函數在哪裏定義?這是一個包含在MTurk標準庫中的函數嗎,還是你自己寫的?謝謝。 – 2013-03-23 17:30:05

0

psiTurk(MTurk行爲研究的應用程序)使用類似於@大衛-1的方法自動防止工人重複命中。披露:我是該項目的開發人員之一。

+0

根據上述帖子中的帖子,我一直在尋找使用外部命中來確保我有不同HIT組的獨特工作人員。看起來,當外部HIT由MTURK worker預覽時,MTURK不會將workerID發送到外部服務器。當向工作人員展示HIT的預覽時,這裏的人們如何處理這個問題?如果可能的話,我想避免向他們展示一個HIT,然後只有在他們接受它之後,纔有可能告訴他們他們不能接受它。預先感謝所有的任何想法/信息。 – VikR 2015-06-17 01:10:03

+0

您可以要求工作人員提交他們的MTurkID(WorkerID)並將其附加到入站調查鏈接。如果已經看到ID,則顯示一個感謝您參與的頁面。 – Kwame 2017-07-15 11:36:34

相關問題