从我的本地计算机将我的HTML发布到Mturk沙箱中的HIT中



我正在研究如何使用python将我的HTML文件从本地计算机发布到沙箱中的HIT。我把python和HTML放在同一个目录中,并使用了给定教程中的模板。https://docs.aws.amazon.com/AWSMechTurk/latest/AWSMechanicalTurkRequester/Welcome.html.



1 import boto3
2 MTURK_SANDBOX = 'https://mturk-requester-sandbox.us-east-1.amazonaws.com'
3 mturk = boto3.client('mturk',
4    aws_access_key_id = "AKIAWMEANKTGFT3M57VI",
5    aws_secret_access_key = "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",
6    region_name='us-east-1',
7    endpoint_url = MTURK_SANDBOX
8 )
9 print("I have $" + mturk.get_account_balance()['AvailableBalance'] + " in my Sandbox account")
10
11 html_layout = open('./HTML_template.html', 'r').read()
12 new_hit = mturk.create_hit(
13     Title = 'Finish all tasks',
14     Description = 'Please follow the instructions described in the webpage',
15     Keywords = 'multiple choice',
16     Reward = '0.01',
17     MaxAssignments = 1,
18     LifetimeInSeconds = 172800,
19     AssignmentDurationInSeconds = 600,
20     AutoApprovalDelayInSeconds = 14400,
21     Question = html_layout,
22 )
23 print("A new HIT has been created. You can preview it here:" )
24 print("https://workersandbox.mturk.com/mturk/preview?groupId=" + new_hit['HIT']['HITGroupId'])
25 print("HITID = " + new_hit['HIT']['HITId'] + " (Use to Get Results)")
26 # Remember to modify the URL above when you're publishing
27 # HITs to the live marketplace.
28 # Use: https://worker.mturk.com/mturk/preview?groupId=

Here is the error message when I run the commandpython3 create_tasks.py

botocore.exceptions.ClientError: An error occurred (ParameterValidationError) when calling the CreateHIT operation: There was an error parsing the XML question or answer data in your request.  Please make sure the data is well-formed and validates against the appropriate schema. Details: Scanner State 24 not Recognized  (1602359732641 s)

我的想法是:第11行有一个错误。函数open不能接受HTML文件,因此我得到了一个错误。如何修复此错误?

很可能您的HTML文件格式不正确。请参阅以下示例。






<crowd-form>
<crowd-classifier
name="sentiment"
categories="['Positive', 'Negative', 'Neutral', 'N/A']"
header="What sentiment does this text convey?"
>
<classification-target>
Everything is wonderful.
</classification-target>

<full-instructions header="Sentiment Analysis Instructions">
<p><strong>Positive</strong> 
sentiment include: joy, excitement, delight</p>
<p><strong>Negative</strong> sentiment include: 
anger, sarcasm, anxiety</p>
<p><strong>Neutral</strong>: neither positive or 
negative, such as stating a fact</p>
<p><strong>N/A</strong>: when the text cannot be 
understood</p>
<p>When the sentiment is mixed, such as both joy and sadness,
use your judgment to choose the stronger emotion.</p>
</full-instructions>

<short-instructions>
Choose the primary sentiment that is expressed by the text. 
</short-instructions>
</crowd-classifier>
</crowd-form>
</body>
</html>
]]></HTMLContent>
<FrameHeight>0</FrameHeight>
</HTMLQuestion>

HTML文件的内容是什么?

它不应该只是HTML。Turk希望html被包装在一个标签中。

请参阅https://docs.aws.amazon.com/AWSMechTurk/latest/AWSMturkAPI/ApiReference_HTMLQuestionArticle.html例如,并查看html问题的格式。

最新更新