(rec: dict)
| 47 | # Process a single JSON record |
| 48 | # --------------------------------------------------------------------------- # |
| 49 | def process_record(rec: dict): |
| 50 | prefix = rec["prefix"] |
| 51 | gen_full = rec["full_text"] |
| 52 | ref_full = rec["original_text"] |
| 53 | |
| 54 | # Assert that both texts start with the prefix, then strip it |
| 55 | assert gen_full.startswith(prefix), "full_text does not start with its prefix" |
| 56 | assert ref_full.startswith(prefix), "original_text does not start with its prefix" |
| 57 | |
| 58 | gen_full = gen_full[len(prefix) :] |
| 59 | ref_full = ref_full[len(prefix) :] |
| 60 | |
| 61 | # First sentence only |
| 62 | gen_sents = sent_tokenize(gen_full, language="english") if gen_full else [] |
| 63 | ref_sents = sent_tokenize(ref_full, language="english") if ref_full else [] |
| 64 | gen_sent = gen_sents[0] if gen_sents else "" |
| 65 | ref_sent = ref_sents[0] if ref_sents else "" |
| 66 | |
| 67 | bleu, rouge_l = evaluate_text(gen_sent, ref_sent) |
| 68 | meteor = evaluate_meteor(gen_sent, ref_sent) |
| 69 | return bleu, rouge_l, meteor |
| 70 |
no test coverage detected