From d4e0a989a50f61701e0d9d53f8c9bb6e3bcfb023 Mon Sep 17 00:00:00 2001 From: IslamHisham Date: Tue, 16 Jun 2026 14:03:24 -0400 Subject: [PATCH] Implementation of a simple claim reliability scoring function This function calculates the claim reliability scoring based on atomic verdicts, returning a float value. --- .../implementations/claim_reliabity_scoring | 22 +++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 app/services/implementations/claim_reliabity_scoring diff --git a/app/services/implementations/claim_reliabity_scoring b/app/services/implementations/claim_reliabity_scoring new file mode 100644 index 0000000..df69051 --- /dev/null +++ b/app/services/implementations/claim_reliabity_scoring @@ -0,0 +1,22 @@ +def claim_reliabity_scoring(atomic_verdicts:list[str]) -> float: + """ + This function calculates the claim reliability scoring based on the atomic verdicts. + The scoring is calculated as the ratio of true verdicts to the total number of verdicts. + + :param atomic_verdicts: A list of values representing the atomic verdicts. + :return: A float value representing the claim reliability scoring. + """ + if not atomic_verdicts or len(atomic_verdicts) == 0: + raise ValueError("Atomic verdicts list is empty") + score=0.0 + for verdict in atomic_verdicts: + if verdict.lower() == "true": + score += 1.0 + elif verdict.lower() == "false": + score += -1.0 + elif verdict.lower() == "unverifiable": + score += 0.0 + else: + raise ValueError(f"Invalid verdict value: {verdict}. Expected 'true', 'false', or 'unverifiable'.") + + return score / len(atomic_verdicts)