我正在使用以下代码通过Boto 3在Mechanical Turk上创建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创建和检索十个以上的作业?
答案 0 :(得分:2)
您是否尝试过指定MaxResults参数,如下所示:
response = client.list_assignments_for_hit(
HITId='string',
NextToken='string',
MaxResults=123,
AssignmentStatuses=[
'Submitted'|'Approved'|'Rejected',
]
)