【问题标题】:In Mechanical Turk, how do you limit to one HIT per worker在 Mechanical Turk 中,如何限制每个工人一次 HIT
【发布时间】:2010-05-14 16:40:17
【问题描述】:

我从与 Mechanical Turk 工人的交流中了解到,有一种方法可以限制特定工人可以完成的 HIT 数量,但我不知道该怎么做。任何帮助将不胜感激!

【问题讨论】:

    标签: amazon-web-services mechanicalturk


    【解决方案1】:

    我开发了一个脚本来主要解决这个问题。主要思想是根据数据库检查工作人员 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>
    

    【讨论】:

    • 感谢您发布您的答案!请务必仔细阅读FAQ on Self-Promotion
    • 谢谢安德鲁。我已经编辑了我的答案以包含脚本,以便希望使答案更笼统。
    • @MyleOtt,这非常有用,但是关于上面脚本的一个问题,turkGetParam 函数定义在哪里?这是包含在 MTurk 标准库中的某个函数,还是您自己编写的?谢谢。
    • @SimonHughes, turkGetParamthis script (link) 中定义,Amazon 自动将其包含在所有使用 MTurk 界面设计的 HIT 中。
    • 我不太清楚的一件事是您如何知道 turker 是否完成了任务。我在这里检查了您的库和此代码,您只检查您的数据库是否包含他的条目,但是当土耳其人完成任务时,您如何首先将此类条目放入数据库?我没有看到它的代码。顺便说一句,感谢您提供的优质服务;)
    【解决方案2】:

    创建一个真正是单个 HIT 的匹配,但每次查看时使用 javascript 动态更改 HIT。然后在发布 HIT 时,将“每个 HIT 的作业数”设置为您想要的参与者数量。这样,您只会获得唯一的参与者。

    根据您要运行的 HIT 类型,这是一种可能适合您的技术。我用它来随机化显示给参与者的刺激。

    【讨论】:

    • 但是,如果没有服务器端应用程序,您如何跟踪已显示的实验?假设我想让每个实验 A、B、C 分别展示给 3 个人。
    【解决方案3】:

    您也可以通过外部问题来做到这一点。我在机械土耳其人身上进行心理学实验,所以我需要独特的参与者。除了要求工人只执行一次 HIT 之外,我还使用 python 脚本来验证唯一性。我的 HIT 都运行 cgi 脚本来产生问题。该脚本查阅一个日志文件,如果该工作人员之前接受过相关工作,它会礼貌地通知他们,因为我需要唯一的参与者,所以 HIT 将不可用。

    我以前是有资格的,但发现它真的限制了参与。

    【讨论】:

    • 如果土耳其人接受了打击,然后被告知他们不能接受,他们会不高兴吗?
    【解决方案4】:

    如果您想要 x 个唯一用户,请在“设计”部分中使每个 HIT 的分配数等于 x。然后,在加载您的 csv 文件时,只需在文件中放入一个 HIT。

    【讨论】:

      【解决方案5】:

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

      您可以设置两种类型的限制:

      • 对于您创建的特定 HIT 类型,任何 Worker 可以接受的最大分配数。在您设置之前,该值是未定义的。
      • 任何 Worker 可以为您的所有 HIT 接受的最大分配数,这些 HIT 没有分配特定于 HIT 类型的限制。初始默认值为 10。

      最初,无论 HIT 类型如何,您的所有 HIT 都会与适用于该组的总体限制(默认为 10)分组在一起。

      请注意,这是指工作人员当前可以接受的任务数量。工作人员提交任务后,他们可以接受另一个任务。

      您可能不应该关心一个工作人员总共完成了多少 HIT,但您可能有一个原因要更改工作人员当前可以接受的数量,而不是默认的 10。当然,工作人员只能接受一个来自具有多个分配的 HIT 分配。

      如果您真的非常想限制一个工作人员实际可以执行的 HIT 数量,您将需要指定您不会接受超过每个工作人员的特定数量,明确说明您'将在达到限制后拒绝任何提交,或者您可以使用资格类型来做这件事(但这可能需要大量工作)!

      作为后者的一个例子,如果你想限制某人总共做 N 个任务,你可以为每个 HIT 设置一个资格类型,并授予任何一个工人不超过 N 个类型。

      【讨论】:

      • “你可能不应该关心一个工人总共完成了多少 HIT”——当然你应该关心。对于某些类别的工作,让一个人进行多次迭代是有意义的。对于其他类别,它完全没用。例如,许多调查都使用土耳其语,并且希望一个人只做一次调查。
      • 但这不是 turk 的用途。 Mechanical Turk 的存在主要是为了让人类完成计算机无法轻松完成的人类智能任务。如果您真的关心一个工人完成了多少 HIT,那么您可能一开始就不应该使用 Mechanical Turk。
      • 您显然是在引用 SetWorkerAcceptLimit 的文档。此功能自 2008 年以来已被禁用:“您无法再设置接受限制。” docs.amazonwebservices.com/AWSMechTurk/2008-04-01/…
      【解决方案6】:

      只是为了澄清您是否只希望唯一的工人完成单次打击,您所要做的就是将最大分配设置为您想要的任意数量的唯一工人,而 Mechanical Turk 默认情况下只会为该打击分配唯一的工人。

      现在,如果您想要跨越多个点击的唯一工人,那么您必须花哨并使用外部问题以及记录工人 id 分机的脚本......

      【讨论】:

        【解决方案7】:

        psiTurk(MTurk 行为研究应用程序)使用类似于@david-l 的方法自动防止工人重复 HIT。披露:我是该项目的开发人员之一。

        【讨论】:

        • 根据上述线程中的帖子,我一直在研究使用外部点击来确保我在不同 HIT 组中拥有独特的工作人员。看来,当 MTURK 工作人员预览外部 HIT 时,MTURK 不会将 workerID 发送到外部服务器。当向工作人员显示 HIT 的预览时,这里的人们如何处理这个问题?如果可能的话,我想避免向他们展示 HIT,然后只有在他们接受它之后,才可能告诉他们他们不能接受它。提前感谢所有人的任何想法/信息。
        • 您可以要求工人提交他们的 MTurkID (WorkerID) 并将其附加到入站调查链接。如果 ID 已被查看,则显示感谢您参与页面。
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多