-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmetrics.py
31 lines (26 loc) · 1.24 KB
/
metrics.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
def evaluate_summary_advanced(generated, reference, expected_keywords):
# Keyword check (from before)
missing_keywords = [kw for kw in expected_keywords if kw.lower() not in generated.lower()]
keyword_passed = len(missing_keywords) == 0
# Semantic similarity
sim_score = semantic_similarity(generated, reference)
# Readability
reading_ease, smog = readability_metrics(generated)
results = {
"keyword_passed": keyword_passed,
"missing_keywords": missing_keywords,
"semantic_similarity": sim_score,
"flesch_reading_ease": reading_ease,
"smog_index": smog,
}
return results
# Example advanced evaluation
reference_summary = (
"Climate change is a major challenge marked by rising temperatures and extreme weather. "
"Human actions like deforestation and pollution worsen the problem, and scientists urge immediate action to cut emissions."
)
expected_keywords = ["climate change", "global temperatures", "greenhouse gas emissions", "ecosystem", "extreme weather"]
advanced_results = evaluate_summary_advanced(generated_summary, reference_summary, expected_keywords)
print("Advanced Evaluation Results:")
for k, v in advanced_results.items():
print(f"{k}: {v}")