首页 > 解决方案 > 在任务中实施 12 条中的 8 条中止规则

问题描述

我希望有人可以提供帮助,我正在实施一项评估任务(使用Gorilla在线平台测试儿童的数学技能)。我们的任务有一个不寻常的停止(退出)规则,即在最后 12 个响应中有 8 个错误答案时退出,并且需要在应用程序脚本工具中使用来自 Gorilla API 的 Python 功能的定制脚本。

我对编程相当陌生,尤其是 Python。我希望有人可以帮助我可视化代码以使其正常工作。我目前已将其设置为在 12 个连续错误后退出:

if(correct){
            currentConsecutiveIncorrect = 0;
            gorilla.store(_noCurrentConsecutiveIncorrectTrials, currentConsecutiveIncorrect, true);
        } else {
            currentConsecutiveIncorrect++;
            gorilla.store(_noCurrentConsecutiveIncorrectTrials, currentConsecutiveIncorrect, true);
            
            // If we are at or have exceeded our max number of consecutive incorrect trials, we need to end the task
            if(currentConsecutiveIncorrect >= _maxConsecutiveIncorrectTrials){
                gorilla.finish();
            }
        }

虽然这很有效,但它增加了退出前所需的响应数量,而且我担心参与者疲劳,因为有超过一百个任务项目。

如果要问的不是太多,如果有人可以解释如何以编程方式实现这一点,那将非常有帮助 - 而不是代码或如何在 Gorilla 中实现它(我想将其作为我学习的一部分)。目前我只是看不出如何在理论上实现它。

谢谢

标签: python

解决方案


如果我正确理解你的问题是什么,我会说这是一个逻辑问题。

如果最后 12 个问题中有 8 个错误,你退出对吗?

让我们举个例子,如果有人犯了 7 个错误然后得到了一个好的答案,我相信你的代码会重置计数错误。所以 9 可能是错误的,但不会发生退出。

if(correct){
            currentConsecutiveIncorrect = 0;
...

所以我的猜测是你应该存储每个答案,直到你得到 12 个答案。显然每次都检查错误的答案。

这会给出这样的结果(0 是好的,1 是错误的)

[0, 0, 1, 1, 0, 1, 0, 1, 1, 0, 0, 0]

然后,如果仍然没有 8 个错误,则删除数组的第一个值,将答案附加到列表的末尾,然后计算列表中有多少错误。


推荐阅读