我正在考虑我的一个类似项目。我自己作为一名工人进行过实验。这是我的计划,希望对你有用。(我还没有实现它。它基于我作为工人参与的学术 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。如果它们匹配,请检查您的外部应用程序中的正确性并批准或拒绝。您可能会考虑奖金支付结构。
因此,要回答您的特定问题:
我预计我描述的方法不会出现问题。也就是说,Mechanical Turk 既是一门艺术,也是一门科学。也许更多的艺术。写出好的问题并适当地付钱给 Turkers 是你必须结合常识、市场研究和实验来解决的问题。
见上文 (C)。令牌设计为只能使用一次。使用足够长的令牌,碰撞的概率变得非常低。
见上文 (E)。Mechanical Turk 开发人员指南是一个很好的起点。
请分享您的结果。或者让 Turkers 向 StackOverflow 发送数百张明信片。:)
笔记:
我目前正在探索资格测试。我怀疑它们可能非常有用。
我想在我的外部应用程序中获得一个 Turker 的 Worker ID,但我还没有弄清楚那部分。我正在阅读它;例如:通过 assignmentId 获取 workerId
我正在考虑使用 API 中的ExternalQuestion功能:“...您可以使用“外部”问题在您自己的网站上托管问题。...带有外部问题的 HIT 会显示您网站上的网页在 Worker 的 web 浏览器的一个框架中。您的网页显示一个表单供 Worker 填写和提交。Worker 使用您的表单提交结果,您的表单将结果提交回 Mechanical Turk。使用您的网站显示表单让您的网站可以控制问题的出现方式和答案的收集方式。”