是否有Python函数为考试题答案(如果包含某些单词)分配标记?

时间:2019-08-07 18:27:22

标签: python-3.x

我正在尝试为短答案GCSE问题编写一个自动评分系统,并编写了代码来识别正确的答案(如果它包含某些关键字)。我可以打印这些“正确”的答案,但是我想在数据框的新列中为其分配一个标记。我对python和一般编程非常陌生,希望能对您有所帮助。

我已经尝试过以下方法:

if check(sentence, words) true 
    then df['CompMark'] = 1

我编写的标识正确答案的代码是:

# Check if given words appear together in a list of sentence 
def check(sentence, words): 
    res = [] 
    for substring in sentence: 
        k = [ w for w in words if w in substring ] 
        if (len(k) == len(words) ): 
            res.append(substring) 
    return res

# Driver code 
sentence = df['text'] 
words = ['no','north','east'] 
print(check(sentence, words)) 

我希望为包含关键字的每一行在新列“ CompMark”中添加“ 1”。

1 个答案:

答案 0 :(得分:0)

您问题的至少一部分原因是,在python中的if块之后,应该有一个缩进,

    res = [] 
    for substring in sentence: 
        k = [ w for w in words if w in substring ] 
        if (len(k) == len(words) ): 
             res.append(substring) 
    return res