Self-Paced Reading und die Maze-Aufgabe
Self-Paced Reading mit Moving Window, kumulativ oder zentriert sowie die A-Maze-Aufgabe in Potato ausführen, mit Lesezeiten pro Region, Verständnisfragen und Prüfungen.
Neu in v2.12.0
trial_timing.presentation zeigt den Text jedes Items regionsweise an und zeichnet auf, wie lange die teilnehmende Person bei jeder Region verweilt. Es deckt die Lesezeitmethoden der Psycholinguistik ab:
mode | Methode | Was die teilnehmende Person sieht |
|---|---|---|
moving_window | Self-Paced Reading (Just, Carpenter & Woolley, 1982) | Den Satz als Striche. Jeder Tastendruck deckt die nächste Region auf und maskiert die vorherige |
cumulative | Kumulatives Self-Paced Reading | Wie oben, aber frühere Regionen bleiben sichtbar |
centered | Zentriertes Self-Paced Reading, im Stil von RSVP | Jeweils eine Region in der Mitte des Bildschirms |
maze | Maze-Aufgabe (Forster, Guerrera & Elliot, 2009), einschließlich A-Maze (Boyce, Futrell & Levy, 2020) | Zwei Wörter nebeneinander. Die Person wählt das Wort, das den Satz fortsetzt |
Es baut auf zeitgesteuerten Trials auf und teilt mit ihnen Fixation, Inter-Trial-Intervall, frame-genaue Onsets, Serverprüfungen und Trial-Datensatz. Jede Region erscheint an einer Frame-Grenze, und ihre Lesezeit ist der nächste Tastendruck minus dieses Frames.
Self-Paced Reading
item_properties:
id_key: id
text_key: sentence
trial_timing:
enabled: true
fixation_ms: 400
iti_ms: 500
presentation:
mode: moving_window
field: sentence
region_separator: "|"
advance_key: space
question_field: question
response:
schema: comprehension
keys: {f: "Yes", j: "No"}
annotation_schemes:
- annotation_type: radio
name: comprehension
description: Answer the question
labels: ["Yes", "No"]
label_requirement:
required: true{"id": "gp1", "condition": "ambiguous",
"sentence": "The horse | raced | past | the barn | fell | to the ground.",
"question": "Did the horse fall?"}Regionen werden an region_separator getrennt, oder an Leerraum (ein Wort pro Region), wenn er nicht gesetzt ist. Der erste Tastendruck zeigt die erste Region, und der Tastendruck nach der letzten Region beendet den Satz.
Mit question_field folgt auf einen Satz, dessen Fragefeld ausgefüllt ist, diese Verständnisfrage, die wie bei jedem zeitgesteuerten Trial mit den response-Tasten beantwortet wird. Ein Satz ohne Frage endet nach seiner letzten Region mit dem Ergebnis completed, und die Person geht ohne Antwort weiter. Ohne question_field fragt jeder Satz das Schema response ab, was zu einem Akzeptabilitäts- oder Plausibilitätsurteil nach jedem Satz passt.
Ganz ohne Block response zeichnet die Seite nur Lesezeiten auf, und jedes Schema auf der Seite muss dann pure_display sein.
Maze
trial_timing:
enabled: true
fixation_ms: 300
presentation:
mode: maze
field: sentence
distractor_field: distractors
maze_keys: {left: e, right: i}
on_error: stop
annotation_schemes:
- annotation_type: pure_display
name: instructions
description: Choose the word that continues the sentence.{"id": "m1", "sentence": "The horse raced past the barn fell to the ground.",
"distractors": "x-x-x clock holly toward soft hint knew duty hope fuel."}distractor_field listet einen Distraktor pro Region auf, getrennt wie der Satz. Hat es einen weniger, wird für das erste Wort x-x-x verwendet, wie bei A-Maze. Die Seite des richtigen Worts ist bei jedem Paar zufällig. on_error: stop beendet den Satz bei der ersten falschen Wahl, und redo lässt das Paar aufblinken, wartet auf das richtige Wort und zeichnet auf, wie viele falsche Tastendrücke vorausgingen.
A-Maze-Distraktoren werden üblicherweise mit einem Sprachmodell als ungrammatische Fortsetzungen erzeugt, die in Länge und Frequenz angeglichen sind. Potato liest sie aus den Daten. Erzeugen Sie sie daher mit den A-Maze-Werkzeugen, bevor Sie die Items importieren.
Optionen
| Schlüssel | Standardwert | Bedeutung |
|---|---|---|
mode | moving_window | moving_window, cumulative, centered oder maze |
field | item_properties.text_key | Item-Feld mit dem Text |
region_separator | keiner | Trennt Regionen an dieser Zeichenkette (1-3 Zeichen) statt an Leerraum |
advance_key | space | Taste, die die nächste Region zeigt (von maze nicht verwendet) |
question_field | keiner | Item-Feld mit einer Verständnisfrage pro Item |
distractor_field | erforderlich für maze | Item-Feld mit einem Distraktor pro Region |
maze_keys | {left: e, right: i} | Tasten für das linke und das rechte Wort |
on_error | stop | stop oder redo, für maze |
mask_char | - | Zeichen, mit dem das Moving Window Buchstaben maskiert |
Die Anzeigen für Moving Window und kumulatives Lesen verwenden eine nichtproportionale Schrift, sodass die Masken die Länge jedes Worts erhalten und die Zeile sich beim Aufdecken der Wörter nicht verschiebt. Die Weiter- und Maze-Tasten können nicht zugleich response-Tasten sein.
Lesezeitdaten
Der Trial-Datensatz in user_state.json enthält eine Liste regions mit einem Eintrag pro gezeigter Region:
| Feld | Bedeutung |
|---|---|
index | Position der Region, ab 0 |
text | Der Text der Region |
rt_ms | Zeit vom Onset-Frame der Region bis zum Tastendruck |
correct, side, errors | Nur Maze: ob das richtige Wort gewählt wurde, welche Seite gedrückt wurde und die falschen Tastendrücke davor (on_error: redo) |
Die CSV- und TSV-Exporte schreiben die Regionen in regions.csv (oder regions.tsv), eine Zeile pro Region mit den Spalten für teilnehmende Person, Item und Bedingung, dem Ergebnis des Trials und seiner Onset-Zeit. Die Datei trials hat eine Zeile pro Trial und keine Regionsspalten.
Der Server prüft jeden Datensatz und fügt Flags hinzu:
| Flag | Bedeutung |
|---|---|
reading_exceeds_server_elapsed | Die gesamte Lesezeit ist länger, als der Server das Item ausgegeben sah |
bad_region_rt | Eine Region hat ein negatives rt_ms. Die Region wird so behalten, wie sie gesendet wurde |
completed_without_presentation | Der Datensatz gibt an, dass der Trial nach dem Lesen endete, aber das Item hatte keine Regionen zum Lesen. Es zählt nicht als abgeschlossen |
completed_with_question | Der Datensatz gibt an, dass der Trial nach dem Lesen endete, aber das Item hat eine zu beantwortende Frage. Es zählt nicht als abgeschlossen |
regions_incomplete | Der Datensatz hat weniger oder mehr Regionen als der Satz. Es zählt nicht als abgeschlossen |
maze_error | Ein Maze-Trial endete bei einer falschen Wahl (on_error: stop), und die letzte Region hat correct: false |
reloaded_mid_trial | Die Seite wurde während des Satzes neu geladen, was ihn von vorn beginnen lässt. Die Regionen stammen aus dem zweiten Lesedurchgang |
trial_duration_ms und stimulus_duration_ms gelten für die Frage, die auf das Lesen folgt, nicht für das Lesen selbst. Die Deadline beginnt, wenn die Frage erscheint, und stimulus_duration_ms blendet den Fragetext aus, sodass ein Item ohne Frage keine Deadline hat. potato validate warnt, wenn eines davon zusammen mit presentation gesetzt ist.
Beispiele
python potato/flask_server.py start examples/advanced/self-paced-reading/config.yaml -p 8000
python potato/flask_server.py start examples/advanced/maze-task/config.yaml -p 8000Beide verwenden Holzwegsätze mit und ohne den disambiguierenden Relativsatz. Für ein vollständiges Design fügen Sie eine Bedingung list mit einer Datendatei pro Liste hinzu, sodass jede teilnehmende Person eine Version jedes Items sieht (Experimentablauf). Ein bestehendes Ibex- oder PCIbex-Experiment lässt sich direkt in diese Struktur importieren (Umstieg von Ibex).
Weiterführende Informationen
- Zeitgesteuerte Trials - Fixation, Deadlines und Reaktionszeiten bei Annotationsitems
- Umstieg von Ibex - Ein Ibex- oder PCIbex-Experiment importieren
- Experimentablauf - Bedingungen und Listen nach lateinischem Quadrat
- Online-Verhaltensexperimente - Eine psycholinguistische Studie in Potato von Anfang bis Ende
Implementierungsdetails finden Sie in der Quelldokumentation.