我正在尝试为短答案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”。
答案 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