Amazon Mechanical Turk 请求者API代码示例教程
项目介绍
亚马逊Mechanical Turk (MTurk) 是一个在线市场,让请求者(通常是开发者或研究人员)可以发布微任务,由被称为“工作者”的远程用户完成这些任务。2017年,MTurk宣布支持AWS软件开发工具包(SDK),使得请求者能够通过九个新的SDK程序化地访问MTurk服务。伴随这次更新,MTurk还发布了请求者API的新版本(版本号:'2017-01-17'),此版本在命名上有了重大更新,并且采用了REST架构和Signature Version 4标准进行安全认证。
本教程基于GitHub上的aws-samples/mturk-code-samples仓库,提供了多种语言的代码示例,帮助您迅速掌握如何使用这个新API及对应的SDK来提交任务并接收成果。
项目快速启动
安装准备
首先,确保您已有一个AWS账号,并设置好MTurk Requester和Developer Sandbox账户。然后,选择合适的SDK进行下载和配置。以Python为例,您需要安装Boto3库,可以通过pip进行安装:
pip install boto3
配置API端点
为了连接到MTurk Developer Sandbox,需将SDK的API终点设置为:
endpoint_url = "https://mturk-requester-sandbox.us-east-1.amazonaws.com"
创建 HIT 示例
接下来,我们将展示如何使用Python SDK创建一个HIT(Human Intelligence Task)的基本流程:
import boto3
def create_hit():
mturk = boto3.client('mturk',
region_name='us-east-1',
endpoint_url=endpoint_url,
aws_access_key_id='YOUR_ACCESS_KEY',
aws_secret_access_key='YOUR_SECRET_KEY')
question = "<QuestionForm xmlns='http://mechanicalturk.amazonaws.com/AWSMechanicalTurkDataSchemas/2005-10-01/QuestionForm.xsd'> \
<Question> \
<QuestionIdentifier>exampleQuestion</QuestionIdentifier> \
<DisplayName>What color is the sky?</DisplayName> \
<AnswerSpecification> \
<SelectionAnswer> \
<StyleSuggestion>radiobutton</StyleSuggestion> \
<Selections> \
<Selection> \
<Value>Blue</Value> \
</Selection> \
<Selection> \
<Value>Green</Value> \
</Selection> \
</Selections> \
</SelectionAnswer> \
</AnswerSpecification> \
</Question> \
</QuestionForm>"
response = mturk.create_hit(
Title='Example HIT',
Description='This is an example HIT to demonstrate the HIT creation process.',
Keywords='example,questionnaire',
Reward='0.05',
MaxAssignments=1,
LifetimeInSeconds=3600,
Question=question,
)
print(response['HIT']['HITId'])
if __name__ == "__main__":
create_hit()
注意: 替换 'YOUR_ACCESS_KEY'
, 'YOUR_SECRET_KEY'
为您自己的AWS访问密钥和私有访问密钥,并且在生产环境中谨慎处理这些敏感信息。
应用案例和最佳实践
- 质量控制: 使用MTurk Worker的质量评分系统,确保任务被可靠执行。
- 批量任务自动化: 利用SDK批量创建和管理HIT,优化效率。
- 数据标注: 在图像识别、文本分类等机器学习项目中,利用MTurk快速获取大规模标注数据。
典型生态项目
虽然直接的“典型生态项目”可能不特定于该代码仓库,但很多研究机构和企业都在其产品和服务中整合了MTurk作为数据收集和众包工作的一部分。例如,人工智能和自然语言处理领域经常通过MTurk获取大量的标注数据集,用于模型训练。
完成以上步骤后,您可以开始探索更复杂的场景和进一步定制您的MTurk应用,利用该平台的灵活性解决各种需求。务必参考AWS MTurk的官方文档和该开源项目的示例代码,以深入学习如何充分利用这一服务。