35

我正在实施一个网站,招募的 MTurk 工人将在该网站上执行任务。我计划使用 MTurk 任务招聘工人,我会将他们重定向到外部网站以进行实际工作。我有以下与此计划有关的问题。

  1. 这种运行 HIT 的方法是否存在任何可预见的问题?如果是这样,我们如何减轻它们?

  2. 我应该如何在我的外部站点上实施身份验证程序?例如,我如何确保来网站执行特定任务的人确实是之前在 MTurk 上为该特定任务招募的同一组人?

  3. 当工人完成任务后,我应该如何根据他们的表现将付款程序与 MTurk 整合?例如,假设工人在我的外部网站上完成任务后被欠 3 美元,我是否可以告诉 MTurk 以编程方式向他/她支付这笔款项?

如果这些细节很重要,外部站点将使用 Python 构建。

任何基于您使用 MTurk 的经验和见解的建议和意见将不胜感激!

4

2 回答 2

30

我正在考虑我的一个类似项目。我自己作为一名工人进行过实验。这是我的计划,希望对你有用。(我还没有实现它。它基于我作为工人参与的学术 HIT。)这里是:

A. 创建一个具有如下语言的模板:

1. Please open this web site in a new browser window:
   http://your-url.xyz.blah/tasks/${token}
2. Read and follow the instructions there.
3. After completing the task, you will receive a confirmation code. Paste 
   it here: [________]

B. 为您的 Mechnical Turk 数据文件创建一些随机标记:

1A1B43B327015141
09F49F2D47823E0C
B5C49A18B3DB56F4
4E93BB63B0938728
CCE7FA60BFEB3198
...

(从您的应用程序生成这些令牌;它需要交叉引用它们。)

C. 你的应用程序从 URL 中提取令牌,查找任务,并执行它需要做的任何事情。我个人不担心人们偶然发现 URL,因为它是一次性使用令牌。

D. 用户在外部网站完成任务后,外部应用程序给出确认码。确认码应该是随机且不透明的。只有您的应用程序会知道任何特定代码是否对应于正确或不正确的答案。事实上,如果您愿意,甚至可能无法实时确定正确性——它可能是多个提交的聚合和/或比较的结果。

E. 编写一些代码以编程方式进行交互。从 MTurk 结果中获取令牌和确认码,并确保它们与您的外部应用程序匹配。如果它们不匹配,则拒绝 HIT。如果它们匹配,请检查您的外部应用程序中的正确性并批准或拒绝。您可能会考虑奖金支付结构。

因此,要回答您的特定问题:

  1. 我预计我描述的方法不会出现问题。也就是说,Mechanical Turk 既是一门艺术,也是一门科学。也许更多的艺术。写出好的问题并适当地付钱给 Turkers 是你必须结合常识、市场研究和实验来解决的问题。

  2. 见上文 (C)。令牌设计为只能使用一次。使用足够长的令牌,碰撞的概率变得非常低。

  3. 见上文 (E)。Mechanical Turk 开发人员指南是一个很好的起点。

请分享您的结果。或者让 Turkers 向 StackOverflow 发送数百张明信片。:)

笔记:

  • 我目前正在探索资格测试。我怀疑它们可能非常有用。

  • 我想在我的外部应用程序中获得一个 Turker 的 Worker ID,但我还没有弄清楚那部分。我正在阅读它;例如:通过 assignmentId 获取 workerId

  • 我正在考虑使用 API 中的ExternalQuestion功能:“...您可以使用“外部”问题在您自己的网站上托管问题。...带有外部问题的 HIT 会显示您网站上的网页在 Worker 的 web 浏览器的一个框架中。您的网页显示一个表单供 Worker 填写和提交。Worker 使用您的表单提交结果,您的表单将结果提交回 Mechanical Turk。使用您的网站显示表单让您的网站可以控制问题的出现方式和答案的收集方式。”

于 2012-06-13T05:22:57.807 回答
7

您可能还会发现PsiTurk很有用:“PsiTurk 是一个开放平台,用于在 Amazon 的 Mechanical Turk 上进行自定义行为实验。......它旨在提供运行实验所需的大部分后端机器。它使用 AMT 的外部问题 HIT类型,意思是你可以使用任何网站收集数据。只要你能把你的实验变成一个网站,你就可以用 PsiTurk 运行它!”

于 2012-06-13T05:54:59.667 回答