【发布时间】:2019-09-11 02:00:57
【问题描述】:
我正在使用下面的代码在 Mechanical Turk 上使用 Boto 3 创建 HIT:
new_hit = mturk.create_hit(
Title='my title',
Description='my description',
Keywords='my, keywords',
Reward='0.02',
MaxAssignments=25,
LifetimeInSeconds=9999,
AssignmentDurationInSeconds=9999,
AutoApprovalDelayInSeconds=9999,
Question='''<?xml version="1.0" encoding="UTF-8"?>
<ExternalQuestion xmlns="http://mechanicalturk.amazonaws.com/AWSMechanicalTurkDataSchemas/2006-07-14/ExternalQuestion.xsd">
<ExternalURL>https://myexternalurl/</ExternalURL>
<FrameHeight>540</FrameHeight>
</ExternalQuestion>'''
)
这应该会创建一个包含 25 个作业的 HIT。
但是,当我尝试检索结果时,只有 10 个作业:
results = mturk.list_assignments_for_hit(
HITId='my HIT ID',
AssignmentStatuses=['Submitted', 'Approved']
)
# This always maxes out at 10
print 'Number of assignments: ' + str(len(results['Assignments']))
我已经用几个不同的 HIT 和几个不同的 MaxAssignments 值尝试了这个。它总是在 10 个任务中达到最大值。看来 Mechanical Turk 正在默默地将 MaxAssignments 封顶为 10。
我在 Mechanical Turk 文档中找到了两条线索。第一:
使用少于 10 个分配创建的 HIT 不能扩展为 10个或更多的任务。尝试以某种方式添加分配 使 HIT 的作业总数少于 10 分配给 10 个或更多的作业将导致 AWS.MechanicalTurk.InvalidMaximumAssignmentsIncrease 异常。
第二个:
如果创建的 HIT 最多分配 10 个或更多分配,则需要支付额外费用。有关更多信息,请参阅 Amazon Mechanical Turk 定价。
https://docs.aws.amazon.com/AWSMechTurk/latest/AWSMturkAPI/ApiReference_CreateHITOperation.html
但这并不能解释为什么我不能在第一个实例中为MaxAssignments 使用大于 10 的值。我没有收到任何错误。
如何为每个 HIT 创建和检索超过 10 个作业?
【问题讨论】:
标签: python amazon-web-services boto3 boto mechanicalturk