ymcui / cmrc2018

A Span-Extraction Dataset for Chinese Machine Reading Comprehension (CMRC 2018)
https://ymcui.github.io/cmrc2018/
Creative Commons Attribution Share Alike 4.0 International
411 stars 87 forks source link

您好,calc_f1_score函数为什么返回的是max(f1_scores)呢?这部分可以解释一下吗,返回最大的,不是就是1了吗?这里没看明白 #13

Open dolphin-Jia opened 2 years ago

dolphin-Jia commented 2 years ago

def calc_f1_score(answers, prediction): f1_scores = [] for ans in answers: ans_segs = mixed_segmentation(ans, rm_punc=True) prediction_segs = mixed_segmentation(prediction, rm_punc=True) lcs, lcs_len = find_lcs(ans_segs, prediction_segs) if ans == "" and prediction == "" : f1_scores.append(1)
else: if lcs_len == 0: f1_scores.append(0) continue precision = 1.0lcs_len/len(prediction_segs) recall = 1.0lcs_len/len(ans_segs) f1 = (2precisionrecall)/(precision+recall) f1_scores.append(f1) return max(f1_scores)

ymcui commented 2 years ago

为什么是1呢?