Skip to content

Commit a1706b0

Browse files
add slide_speech_threshold in ComparisonSpeechSlidesCriterion's parameters
1 parent 36177ac commit a1706b0

File tree

1 file changed

+6
-4
lines changed

1 file changed

+6
-4
lines changed

app/criteria/comparison_speech_slides/criterion.py

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,8 @@ def __init__(self, parameters, dependent_criteria, name=''):
2525
dependent_criteria=dependent_criteria,
2626
)
2727
self.evaluator = SlidesSimilarityEvaluator()
28+
if 'slide_speech_threshold' not in self.parameters:
29+
self.parameters['slide_speech_threshold'] = 0.125
2830

2931
@property
3032
def description(self):
@@ -33,8 +35,8 @@ def description(self):
3335
"Описание": t(
3436
"Проверяет, что текст слайда соответствует словам, которые произносит студент во время демонстрации "
3537
"этого слайда"),
36-
"Оценка": t("1, если среднее значение соответствия речи содержимому слайдов равно или превосходит 0.125, "
37-
"иначе 8 * r, где r - среднее значение соответствия речи демонстрируемым слайдам")
38+
"Оценка": t("1, если среднее значение соответствия речи содержимому слайдов равно или превосходит заданного порога (от 0 до 1), "
39+
"иначе r / значение порога, где r - среднее значение соответствия речи демонстрируемым слайдам")
3840
}
3941

4042
def skip_slide(self, current_slide_text: str) -> bool:
@@ -81,8 +83,8 @@ def apply(self, audio: Audio, presentation: Presentation, training_id: ObjectId,
8183

8284
results = dict(sorted(results.items()))
8385

84-
score = 8 * (sum(list(results.values())) / len(list(results.values())))
86+
score = (sum(list(results.values())) / len(list(results.values()))) / self.parameters['slide_speech_threshold']
8587

8688
return CriterionResult(1 if score >= 1 else score, "Отлично" if score >= 1 else "Следует уделить внимание "
8789
"соотвествию речи на слайдах "
88-
"{}".format(",\n".join([f"№{n} - {results[n]}" for n in dict(filter(lambda item: item[1] < 0.125, results.items()))])))
90+
"{}".format(",\n".join([f"№{n} - {results[n]}" for n in dict(filter(lambda item: item[1] < self.parameters['slide_speech_threshold'], results.items()))])))

0 commit comments

Comments
 (0)