1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| import numpy as np from rouge_chinese import Rouge
rouge = Rouge() def compute_metric(evalPred): predictions, labels = evalPred decode_preds = tokenzier.batch_decode(predictions, skip_special_tokens=True) labels = np.where(labels != -100, labels, tokenzier.pad_token_id) decode_labels = tokenzier.batch_decode(labels, skip_special_tokens=True) decode_preds = [" ".join(p) for p in decode_preds] decode_labels = [" ".join(l) for l in decode_labels] scores = rouge.get_scores(decode_preds, decode_labels, avg=True) return { "rouge-1": scores["rouge-1"]["f"], "rouge-2": scores["rouge-2"]["f"], "rouge-l": scores["rouge-l"]["f"], }
|