Dav*_*and 14 mechanicalturk amazon-web-services
我从与机械土耳其工人的沟通中得知,有一种方法可以限制特定工人可以完成的HIT数量,但我无法弄清楚如何去做.任何帮助将不胜感激!
Myl*_*Ott 16
我开发了一个主要解决这个问题的脚本.主要思想是针对数据库检查工作者ID,然后如果工作者已经完成相关的HIT则隐藏HIT.
因此,您不需要托管自己的数据库服务器,我已将我的脚本作为(免费)服务提供,网址为:http://uniqueturker.myleott.com.如果您在使用脚本时遇到任何问题,或者您有任何问题或建议,请与我们联系.
我还在这里包含脚本,以防您希望将它与您自己的URL /数据库一起使用.如果你走这条路线,你需要设置一个带有工人ID的数据库的Web界面,如果允许工人使用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>
Run Code Online (Sandbox Code Playgroud)
创建一个真正是单个HIT的命中,但每次查看时都使用javascript动态更改HIT.然后将HIT设置为"每个HIT的分配数量"发布到您想要的参与者数量.通过这种方式,您将只获得独特的参与者.
根据您要运行的HIT的类型,这是一种可能适合您的技术.我用它来随机化给参与者显示的刺激.
看
http://docs.amazonwebservices.com/AWSMechanicalTurkRequester/2008-08-02/
您可以设置两种类型的限制:
- 对于您创建的特定 HIT 类型,任何工作人员可以接受的最大分配数量。在您设置之前,该值是未定义的。
- 对于所有尚未分配特定于 HIT 类型的限制的 HIT,任何工作人员可以接受的最大分配数量。初始默认值为 10。
最初,您的所有 HIT 都会被分组在一起,并且无论 HIT 类型如何,该组都会受到总限制(默认为 10)。
请注意,这是指工人当前可以接受的任务数量。一旦工作人员提交了任务,他们就可以接受另一个任务。
您可能不应该关心一个工作人员总共完成了多少 HIT,但是您可能有一个原因想要更改工作人员当前可以从默认的 10 接受的数量。当然,一个工作人员只能接受来自一个工作人员的一项分配。 HIT 具有多项作业。
如果您真的非常想限制一个工作人员实际可以执行的 HIT 数量,您将需要指定您不会接受每个工作人员超过一定数量的 HIT,明确说明您要一旦达到限制就拒绝任何提交,或者您可以通过资格类型来做到这一点(但这可能需要大量工作)!
作为后者的一个例子,如果您想限制某人完成 N 项总作业,您可以为每个 HIT 分配一个资格类型,并向任何一名工作人员授予不超过 N 种类型。
| 归档时间: |
|
| 查看次数: |
12613 次 |
| 最近记录: |