Skip to content

Commit

Permalink
add slide_speech_threshold in ComparisonSpeechSlidesCriterion's param…
Browse files Browse the repository at this point in the history
…eters
  • Loading branch information
HadronCollider committed Jul 23, 2024
1 parent 36177ac commit a1706b0
Showing 1 changed file with 6 additions and 4 deletions.
10 changes: 6 additions & 4 deletions app/criteria/comparison_speech_slides/criterion.py
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,8 @@ def __init__(self, parameters, dependent_criteria, name=''):
dependent_criteria=dependent_criteria,
)
self.evaluator = SlidesSimilarityEvaluator()
if 'slide_speech_threshold' not in self.parameters:
self.parameters['slide_speech_threshold'] = 0.125

@property
def description(self):
Expand All @@ -33,8 +35,8 @@ def description(self):
"Описание": t(
"Проверяет, что текст слайда соответствует словам, которые произносит студент во время демонстрации "
"этого слайда"),
"Оценка": t("1, если среднее значение соответствия речи содержимому слайдов равно или превосходит 0.125, "
"иначе 8 * r, где r - среднее значение соответствия речи демонстрируемым слайдам")
"Оценка": t("1, если среднее значение соответствия речи содержимому слайдов равно или превосходит заданного порога (от 0 до 1), "
"иначе r / значение порога, где r - среднее значение соответствия речи демонстрируемым слайдам")
}

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

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

score = 8 * (sum(list(results.values())) / len(list(results.values())))
score = (sum(list(results.values())) / len(list(results.values()))) / self.parameters['slide_speech_threshold']

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

0 comments on commit a1706b0

Please sign in to comment.