Problems with string functions


Author
Message
Clusi
Clusi
Associate Member (140 reputation)Associate Member (140 reputation)Associate Member (140 reputation)Associate Member (140 reputation)Associate Member (140 reputation)Associate Member (140 reputation)Associate Member (140 reputation)Associate Member (140 reputation)Associate Member (140 reputation)
Group: Forum Members
Posts: 8, Visits: 19
Hello everyone,
I am computing a learning task in which participants have to recall target words that were previously paired with cue words. As the later tasks depend on the learning task, I want to make sure that participants recalled at least 50% "correct" before continuing the study. This all happens online, so I need to automatize this process. The /iscorrectresponse element works fine, but I think it is too restrictive given the time pressured responses. --> i want to allow for spelling mistakes. Thus, I essentially would like to combine multiple string functions (e.g., correct length +- 1 letter, contains the start, and/or contains the end letters).

However, I am struggling with the correct coding of the expressions attributes. I have tried to put this in any imaginable format but the output just doesn't fit what I want it to look like. So, the rows marked in bold are what I currently came up with, but they don't work properly.

<item real_response_word>
/1 = "HOUR"
/2 = "NECKLACE"
/3 = "COTTON"
/4 = "BOURBON"
/5 = "CIGAR"
</item>

<item real_cue_word>
/1 = "ERRAND"
/2 = "CLUSTER"
/3 = "SNAG"
/4 = "RELIEF"
/5 = "VICE"
</item>

<item shorter_response_word>
/1 = "HOU"
/2 = "NECK"
/3 = "COT"
/4 = "BOUR"
/5 = "CIG"
</item>

<text shorter_response_word>
/ items = shorter_response_word
/ fontstyle = ("Arial", 8%)
/ position = (50%, 50%)
/ color = blue
/ select = text.cue_word_testfeedback.currentitemnumber
</text>


<text type_response_word>
/items = ("Type in the RESPONSE word")
/position = (50%, 70%)
/ fontstyle = ("Arial", 5%)
</text>

<text focuspoint>
/items = ("+")
/position = (50%, 50%)
/ fontstyle = ("Arial", 8%)
</text>


<text cue_word_testfeedback>
/ items = real_cue_word
/ fontstyle = ("Arial", 8%)
/ position = (50%, 50%)
/ select = noreplacenorepeat
</text>

<text response_word_testfeedback>
/ items = real_response_word
/ fontstyle = ("Arial", 8%)
/ position = (50%, 50%)
/ color = blue
/ select = text.cue_word_testfeedback.currentitemnumber
</text>

<openended testfeedback_phase>
/ stimulustimes = [0= text.focuspoint; 200=cue_word_testfeedback; 200=text.type_response_word]
/ response = correct
/ iscorrectresponse = [
  toupper(openended.testfeedback_phase.response) == item.real_response_word.item(text.cue_word_testfeedback.currentindex);
]

/ position = (50,90)
/ recorddata = true
/ timeout = 5400
/ ontrialend = [values.trial_number = values.trial_number+1]
/ ontrialend = [if(openended.testfeedback_phase.correct) values.trial_correct = values.trial_correct+1]

/ ontrialend = [if (0 <= expressions.length_personal_response - expressions.length_correct_response <2 || 0 <= expressions.length_correct_response - expressions.length_personal_response <2 ) values.correct_length = values.correct_length+1]
</openended>

<expressions>
/length_personal_response = length(openended.testfeedback_phase.response)
/length_correct_response = length(item.real_response_word.item(text.cue_word_testfeedback.currentindex))

</expressions>

<values>
/trial_correct = 0
/trial_number = 0
/correct_length = 0
</values>

<summarydata>
/ columns = (values.trial_correct, values.trial_number, values.correct_length)
</summarydata>

feedback
<trial testfeedback_phase_feedback_cycle1>
/stimulustimes = [200=response_word_testfeedback]
/timeout = 2200
/ posttrialpause = 300
</trial>

<block testfeedback_phase>
/ trials = [1-5= sequence(openended.testfeedback_phase, trial.testfeedback_phase_feedback_cycle1)]
</block>

<expt 01testfeedback>
/ blocks = [1=block.testfeedback_phase]
/ stop = [if (values.trial_number == 4 && values.trial_correct<=2)]
</expt>

Thank you all for your help :)

Kind regards,

Clusi

GO

Merge Selected

Merge into selected topic...



Merge into merge target...



Merge into a specific topic ID...




Threaded View
Threaded View
Clusi - 5 Years Ago
Clusi - 5 Years Ago
Dave - 5 Years Ago
Clusi - 5 Years Ago
Clusi - 5 Years Ago
Clusi - 5 Years Ago
                         That's right. The reason for using abs(), i.e. returning the absolute...
Dave - 5 Years Ago
                             alright makes sense. And if I want to add the "contains" function, is...
Clusi - 5 Years Ago
                                 It's case-sensitive, so you'll probably want to go for...
Dave - 5 Years Ago

Reading This Topic

Explore
Messages
Mentions
Search