Spaces:
Sleeping
Sleeping
| from typing import List, Set | |
| def calculate_recall(retrieved_ids: List[str], gold_ids: List[str]) -> float: | |
| if not gold_ids: | |
| return 0.0 | |
| hits = sum(1 for rid in retrieved_ids if any(gid in rid for gid in gold_ids)) | |
| # Note: simple substring match for ID since chunk IDs might have suffix | |
| return hits / len(gold_ids) | |
| def calculate_mrr(retrieved_ids: List[str], gold_ids: List[str]) -> float: | |
| if not gold_ids: | |
| return 0.0 | |
| for i, rid in enumerate(retrieved_ids): | |
| if any(gid in rid for gid in gold_ids): | |
| return 1.0 / (i + 1) | |
| return 0.0 | |
| def exact_match(prediction: str, expected: str) -> bool: | |
| return prediction.strip().lower() == expected.strip().lower() | |