Lectura autoadministrada y la tarea maze
Ejecuta en Potato la lectura autoadministrada con ventana móvil, acumulativa o centrada, o la tarea A-maze, con tiempos de lectura por región, preguntas de comprensión y comprobaciones.
Nuevo en v2.12.0
trial_timing.presentation muestra el texto de cada ítem región a región y registra cuánto tiempo dedica el participante a cada región. Cubre los métodos de tiempos de lectura de la psicolingüística:
mode | Método | Lo que ve el participante |
|---|---|---|
moving_window | Lectura autoadministrada (Just, Carpenter & Woolley, 1982) | La oración como guiones. Cada pulsación de tecla revela la región siguiente y enmascara la anterior |
cumulative | Lectura autoadministrada acumulativa | Como la anterior, pero las regiones previas siguen visibles |
centered | Lectura autoadministrada centrada, al estilo de la RSVP | Una región cada vez en el centro de la pantalla |
maze | Tarea maze (Forster, Guerrera & Elliot, 2009), incluida la A-maze (Boyce, Futrell & Levy, 2020) | Dos palabras una al lado de la otra. El participante elige la que continúa la oración |
Se apoya en los ensayos cronometrados y comparte con ellos la fijación, el intervalo entre ensayos, los inicios alineados con los fotogramas, las comprobaciones del servidor y el registro del ensayo. Cada región aparece en el límite de un fotograma, y su tiempo de lectura es la siguiente pulsación de tecla menos ese fotograma.
Lectura autoadministrada
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?"}Las regiones se separan por region_separator, o por espacios en blanco (una palabra por región) cuando no está definido. La primera pulsación de tecla muestra la primera región, y la pulsación que sigue a la última región termina la oración.
Con question_field, una oración cuyo campo de pregunta está relleno va seguida de esa pregunta de comprensión, que se responde con las teclas de response como cualquier ensayo cronometrado. Una oración sin pregunta termina tras su última región con el resultado completed, y el participante avanza sin responder. Sin question_field, cada oración formula el esquema de response, lo que encaja con un juicio de aceptabilidad o de plausibilidad después de cada oración.
Sin ningún bloque response, la página registra solo tiempos de lectura, y entonces todos los esquemas de la página deben ser pure_display.
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 enumera un distractor por región, separados de la misma forma que la oración. Si tiene uno menos, se usa x-x-x para la primera palabra, como en la A-maze. El lado de la palabra correcta es aleatorio en cada par. on_error: stop termina la oración en la primera elección incorrecta, y redo hace parpadear el par, espera la palabra correcta y registra cuántas pulsaciones incorrectas hubo antes.
Los distractores de la A-maze suelen generarse con un modelo de lenguaje como continuaciones agramaticales igualadas en longitud y frecuencia. Potato los lee de los datos, así que genéralos con las herramientas de A-maze antes de importar los ítems.
Opciones
| Clave | Valor predeterminado | Significado |
|---|---|---|
mode | moving_window | moving_window, cumulative, centered o maze |
field | item_properties.text_key | Campo del ítem que contiene el texto |
region_separator | ninguno | Separa las regiones por esta cadena (de 1 a 3 caracteres) en lugar de por espacios en blanco |
advance_key | space | Tecla que muestra la región siguiente (no la usa maze) |
question_field | ninguno | Campo del ítem con una pregunta de comprensión propia de cada ítem |
distractor_field | obligatorio para maze | Campo del ítem con un distractor por región |
maze_keys | {left: e, right: i} | Teclas para la palabra de la izquierda y la de la derecha |
on_error | stop | stop o redo, para maze |
mask_char | - | Carácter con el que la ventana móvil enmascara las letras |
Las visualizaciones de ventana móvil y acumulativa usan una fuente monoespaciada, de modo que las máscaras conservan la longitud de cada palabra y la línea no se desplaza a medida que se revelan las palabras. Las teclas de avance y de maze no pueden ser también teclas de response.
Datos de tiempos de lectura
El registro del ensayo en user_state.json lleva una lista regions con una entrada por cada región mostrada:
| Campo | Significado |
|---|---|
index | Posición de la región, desde 0 |
text | El texto de la región |
rt_ms | Tiempo desde el fotograma de inicio de la región hasta la pulsación de tecla |
correct, side, errors | Solo en maze: si se eligió la palabra correcta, qué lado se pulsó y las pulsaciones incorrectas previas (on_error: redo) |
Las exportaciones CSV y TSV escriben las regiones en regions.csv (o regions.tsv), una fila por región con las columnas de participante, ítem y condición, el resultado del ensayo y su momento de inicio. El archivo trials tiene una fila por ensayo y ninguna columna de regiones.
El servidor comprueba cada registro y añade marcas:
| Marca | Significado |
|---|---|
reading_exceeds_server_elapsed | El tiempo de lectura total es más largo que el tiempo durante el que el servidor vio el ítem |
bad_region_rt | Una región tiene un rt_ms negativo. La región se conserva tal como se envió |
completed_without_presentation | El registro dice que el ensayo terminó tras la lectura, pero el ítem no tenía regiones que leer. No cuenta como terminado |
completed_with_question | El registro dice que el ensayo terminó tras la lectura, pero el ítem tiene una pregunta que responder. No cuenta como terminado |
regions_incomplete | El registro tiene menos o más regiones que la oración. No cuenta como terminado |
maze_error | Un ensayo de maze terminó en una elección incorrecta (on_error: stop), y la última región tiene correct: false |
reloaded_mid_trial | La página se recargó durante la oración, lo que la reinicia. Las regiones proceden de la segunda lectura |
trial_duration_ms y stimulus_duration_ms se aplican a la pregunta que sigue a la lectura, no a la lectura en sí. El plazo empieza cuando aparece la pregunta, y stimulus_duration_ms oculta el texto de la pregunta, así que un ítem sin pregunta no tiene plazo. potato validate avisa cuando cualquiera de los dos se define junto con presentation.
Ejemplos
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 8000Ambos usan oraciones de vía muerta con y sin la cláusula relativa que deshace la ambigüedad. Para un diseño completo, añade una condición list con un archivo de datos por lista, de modo que cada participante vea una versión de cada ítem (Flujo del experimento). Un experimento existente de Ibex o PCIbex se importa directamente a esta estructura (Si vienes de Ibex).
Lecturas adicionales
- Ensayos cronometrados - Fijación, plazos y tiempos de reacción en los ítems de anotación
- Si vienes de Ibex - Cómo importar un experimento de Ibex o PCIbex
- Flujo del experimento - Condiciones y listas en cuadrado latino
- Experimentos conductuales en línea - Un estudio de psicolingüística en Potato de principio a fin
Para detalles de implementación, consulta la documentación fuente.