Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Hinzufügen von Automation mit Liquid
Unser benutzerdefiniertes Vorlagensystem verwendet Liquid
Am häufigsten wird Liquid zum Analysieren der Daten aus dem pre-annotation Lambda (Lambda-Skript zur Vorverarbeitung) und zum Auslesen der relevanten Variablen verwendet, um die Aufgabe zu erstellen. Das taskInput
-Objekt, das vom Lambda zur Vorverarbeitung zurückgegeben wird, wird in Ihren Vorlagen als task.input
-Objekt zur Verfügung stehen.
Die Eigenschaften in den Datenobjekten Ihres Manifests werden im Lambda zur Vorverarbeitung als event.dataObject
übergeben. Ein einfaches Pass-Through-Skript gibt dieses Objekt schlichtweg als taskInput
-Objekt zurück. Stellen Sie Werte aus Ihrem Manifest folgendermaßen als Variablen dar.
Beispiel Datenobjekt des Manifests
{ "source": "This is a sample text for classification", "labels": [ "angry" , "sad" , "happy" , "inconclusive" ], "header": "What emotion is the speaker feeling?" }
Beispiel HTML mit Variablen
<crowd-classifier name='tweetFeeling' categories='{{ task.input.labels | to_json }}' header='{{ task.input.header }}' > <classification-target> {{ task.input.source }} </classification-target>
Beachten Sie oben das Hinzufügen von „ | to_json
“ zur labels
-Eigenschaft. Das ist ein Filter, um das Array in eine JSON Repräsentation des Arrays umzuwandeln. Variablenfilter werden im nächsten Abschnitt erläutert.
Die folgende Liste enthält zwei Arten von Liquid-Tags, die für Sie nützlich sein könnten, um die Verarbeitung von Vorlageneingabedaten zu automatisieren. Wenn Sie einen der folgenden Tag-Typen auswählen, werden Sie zur Liquid-Dokumentation weitergeleitet.
-
Steuerungsablauf
: Beinhaltet Programmierlogik-Operatoren wie if/else
,unless
undcase/when
. -
Iteration
: Ermöglicht das wiederholte Ausführen von Codeblöcken mithilfe von Anweisungen wie for-Schleifen. Ein Beispiel für eine HTML Vorlage, die Liquid-Elemente verwendet, um eine For-Schleife zu erstellen, finden Sie unter translation-review-and-correction.liquid.html
in. GitHub
Weitere Informationen und Dokumentationen finden Sie auf der Liquid-Homepage
Variablenfilter
Zusätzlich zu den Standard-Liquid-Filtern|
) nach dem Variablennamen platziert und dann ein Filtername angegeben wird. Filter können verkettet werden in Form von:
{{ <content> | <filter> | <filter> }}
Autoescape und explizites Escape
Standardmäßig werden Eingaben maskiert, um Verwechslungen zwischen Ihrem HTML Variablentext und zu vermeiden. HTML Sie können den escape
-Filter explizit hinzufügen, um es für den Leser der Quelle Ihrer Vorlage ersichtlicher zu machen, dass das Escaping durchgeführt wird.
escape_once
escape_once
stellt sicher, dass, wenn Sie Ihren Code bereits durch Escape-Zeichen geschützt haben, er nicht zusätzlich erneut durch Escape-Zeichen geschützt wird. Damit beispielsweise & nicht zu &amp; wird.
skip_autoescape
skip_autoescape
ist nützlich, wenn Ihr Inhalt verwendet werden soll alsHTML. Beispiel: Sie haben ein paar Textabsätze und einige Bilder in den vollständigen Anweisungen für einen Begrenzungsrahmen.
Sparsames Verwenden von skip_autoescape
Die bewährte Methode bei Vorlagen besteht darin, die Übergabe von funktionalem Code oder Markup mit skip_autoescape
zu vermeiden, es sei denn, Sie sind absolut sicher, dass Sie strenge Kontrolle darüber haben, was übergeben wird. Wenn Sie Benutzereingaben übergeben, können Sie Ihre Worker einem Cross-Site-Scripting-Angriff aussetzen.
to_json
to_json
kodiert, was Sie damit füttern JSON (JavaScript Object Notation). Wenn Sie ein Objekt bereitstellen, wird dieses serialisiert.
grant_read_access
grant_read_access
nimmt ein S3 URI und codiert es in ein HTTPS URL mit einem kurzlebigen Zugriffstoken für diese Ressource. Dadurch ist es möglich, Workern Foto-, Audio- oder Videoobjekte anzuzeigen, die in S3-Buckets gespeichert sind, auf die nicht anders öffentlich zugegriffen werden kann.
Beispiel der Filter
Eingabe
auto-escape: {{ "Have you read 'James & the Giant Peach'?" }} explicit escape: {{ "Have you read 'James & the Giant Peach'?" | escape }} explicit escape_once: {{ "Have you read 'James & the Giant Peach'?" | escape_once }} skip_autoescape: {{ "Have you read 'James & the Giant Peach'?" | skip_autoescape }} to_json: {{ jsObject | to_json }} grant_read_access: {{ "s3://mybucket/myphoto.png" | grant_read_access }}
Output
auto-escape: Have you read 'James & the Giant Peach'? explicit escape: Have you read 'James & the Giant Peach'? explicit escape_once: Have you read 'James & the Giant Peach'? skip_autoescape: Have you read 'James & the Giant Peach'? to_json: { "point_number": 8, "coords": [ 59, 76 ] } grant_read_access: https://s3.amazonaws.com/mybucket/myphoto.png?
<access token and other params>
Beispiel einer automatisierten Klassifizierungsvorlage.
Um das einfache Textklassifizierungsbeispiel zu automatisieren, ersetzen Sie den Tweet-Text mit einer Variablen.
Die Textklassifizierungsvorlage befindet sich unten mit hinzugefügter Automatisierung. Die Änderungen/Ergänzungen sind in Fettschrift hervorgehoben.
<script src="https://assets.crowd.aws/crowd-html-elements.js"></script> <crowd-form> <crowd-classifier name="tweetFeeling" categories="['positive', 'negative', 'neutral', 'cannot determine']" header="Which term best describes this tweet?" > <classification-target> {{ task.input.source }} </classification-target> <full-instructions header="Analyzing a sentiment"> Try to determine the feeling the author of the tweet is trying to express. If none seem to match, choose "other." </full-instructions> <short-instructions> Pick the term best describing the sentiment of the tweet. </short-instructions> </crowd-classifier> </crowd-form>
Die Tweet-Text im vorherigen Beispiel wird jetzt durch ein Objekt ersetzt. Das entry.taskInput
Objekt verwendet source
(oder einen anderen Namen, den Sie in Ihrer Voranmerkung Lambda angeben) als Eigenschaftsnamen für den Text und er wird direkt in den HTML eingefügt, da er sich zwischen doppelten geschweiften Klammern befindet.