我正在使用以下代码使用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异常。
https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/mturk.html#MTurk.Client.create_additional_assignments_for_hit。
第二:
如果创建的HIT具有最多10个或更多的分配,则需要支付额外费用。有关更多信息,请参阅Amazon Mechanical Turk定价。
https://docs.aws.amazon.com/AWSMechTurk/latest/AWSMturkAPI/ApiReference_CreateHITOperation.html
但这并不能解释为什么我不能在第一个实例中为
MaxAssignments
使用大于10的值。我没有任何错误。如何为每个HIT创建和检索十个以上的任务?
最佳答案
您是否尝试过指定MaxResults参数,如下所示:
response = client.list_assignments_for_hit(
HITId='string',
NextToken='string',
MaxResults=123,
AssignmentStatuses=[
'Submitted'|'Approved'|'Rejected',
]
)
关于python - 每个HIT最多只能创建10个作业,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/57875678/