Check if answer as enough words
This commit is contained in:
76
app.py
76
app.py
@@ -220,7 +220,29 @@ def grade_writing_task_1():
|
||||
data = request.get_json()
|
||||
question = data.get('question')
|
||||
answer = data.get('answer')
|
||||
if has_words(answer):
|
||||
if not has_words(answer):
|
||||
return {
|
||||
'comment': "The answer does not contain any english words.",
|
||||
'overall': 0,
|
||||
'task_response': {
|
||||
'Coherence and Cohesion': 0,
|
||||
'Grammatical Range and Accuracy': 0,
|
||||
'Lexical Resource': 0,
|
||||
'Task Achievement': 0
|
||||
}
|
||||
}
|
||||
elif not has_x_words(answer, 100):
|
||||
return {
|
||||
'comment': "The answer is insufficient and too small to be graded.",
|
||||
'overall': 0,
|
||||
'task_response': {
|
||||
'Coherence and Cohesion': 0,
|
||||
'Grammatical Range and Accuracy': 0,
|
||||
'Lexical Resource': 0,
|
||||
'Task Achievement': 0
|
||||
}
|
||||
}
|
||||
else:
|
||||
message = ("Evaluate the given Writing Task 1 response based on the IELTS grading system, ensuring a "
|
||||
"strict assessment that penalizes errors. Deduct points for deviations from the task, and "
|
||||
"assign a score of 0 if the response fails to address the question. Additionally, provide an "
|
||||
@@ -236,17 +258,6 @@ def grade_writing_task_1():
|
||||
GRADING_TEMPERATURE)
|
||||
response['fixed_text'] = get_fixed_text(answer)
|
||||
return response
|
||||
else:
|
||||
return {
|
||||
'comment': "The answer does not contain any english words.",
|
||||
'overall': 0,
|
||||
'task_response': {
|
||||
'Coherence and Cohesion': 0,
|
||||
'Grammatical Range and Accuracy': 0,
|
||||
'Lexical Resource': 0,
|
||||
'Task Achievement': 0
|
||||
}
|
||||
}
|
||||
except Exception as e:
|
||||
return str(e)
|
||||
|
||||
@@ -281,7 +292,29 @@ def grade_writing_task_2():
|
||||
data = request.get_json()
|
||||
question = data.get('question')
|
||||
answer = data.get('answer')
|
||||
if has_words(answer):
|
||||
if not has_words(answer):
|
||||
return {
|
||||
'comment': "The answer does not contain any english words.",
|
||||
'overall': 0,
|
||||
'task_response': {
|
||||
'Coherence and Cohesion': 0,
|
||||
'Grammatical Range and Accuracy': 0,
|
||||
'Lexical Resource': 0,
|
||||
'Task Achievement': 0
|
||||
}
|
||||
}
|
||||
elif not has_x_words(answer, 180):
|
||||
return {
|
||||
'comment': "The answer is insufficient and too small to be graded.",
|
||||
'overall': 0,
|
||||
'task_response': {
|
||||
'Coherence and Cohesion': 0,
|
||||
'Grammatical Range and Accuracy': 0,
|
||||
'Lexical Resource': 0,
|
||||
'Task Achievement': 0
|
||||
}
|
||||
}
|
||||
else:
|
||||
message = ("Evaluate the given Writing Task 2 response based on the IELTS grading system, ensuring a "
|
||||
"strict assessment that penalizes errors. Deduct points for deviations from the task, and "
|
||||
"assign a score of 0 if the response fails to address the question. Additionally, provide an "
|
||||
@@ -297,17 +330,6 @@ def grade_writing_task_2():
|
||||
GEN_QUESTION_TEMPERATURE)
|
||||
response['fixed_text'] = get_fixed_text(answer)
|
||||
return response
|
||||
else:
|
||||
return {
|
||||
'comment': "The answer does not contain any english words.",
|
||||
'overall': 0,
|
||||
'task_response': {
|
||||
'Coherence and Cohesion': 0,
|
||||
'Grammatical Range and Accuracy': 0,
|
||||
'Lexical Resource': 0,
|
||||
'Task Achievement': 0
|
||||
}
|
||||
}
|
||||
except Exception as e:
|
||||
return str(e)
|
||||
|
||||
@@ -368,7 +390,7 @@ def grade_speaking_task_1():
|
||||
|
||||
download_firebase_file(FIREBASE_BUCKET, answer_firebase_path, sound_file_name)
|
||||
answer = speech_to_text(sound_file_name)
|
||||
if has_50_words(answer):
|
||||
if has_x_words(answer, 20):
|
||||
message = ("Evaluate the given Speaking Part 1 response based on the IELTS grading system, ensuring a "
|
||||
"strict assessment that penalizes errors. Deduct points for deviations from the task, and "
|
||||
"assign a score of 0 if the response fails to address the question. Additionally, provide "
|
||||
@@ -447,7 +469,7 @@ def grade_speaking_task_2():
|
||||
|
||||
download_firebase_file(FIREBASE_BUCKET, answer_firebase_path, sound_file_name)
|
||||
answer = speech_to_text(sound_file_name)
|
||||
if has_50_words(answer):
|
||||
if has_x_words(answer, 20):
|
||||
message = ("Evaluate the given Speaking Part 2 response based on the IELTS grading system, ensuring a "
|
||||
"strict assessment that penalizes errors. Deduct points for deviations from the task, and "
|
||||
"assign a score of 0 if the response fails to address the question. Additionally, provide "
|
||||
@@ -559,7 +581,7 @@ def grade_speaking_task_3():
|
||||
text_answers.append(answer_text)
|
||||
item["answer"] = answer_text
|
||||
os.remove(sound_file_name)
|
||||
if not has_50_words(answer_text):
|
||||
if not has_x_words(answer_text, 20):
|
||||
return {
|
||||
"comment": "The audio recorded does not contain enough english words to be graded.",
|
||||
"overall": 0,
|
||||
|
||||
Reference in New Issue
Block a user