胭脂得分附加列表



我有一个文本摘要项目。在这个项目中,我确保数百篇文本按顺序进行总结。我还得到了这些摘要的Rouge分数。然而,在我能够统计数据之前,我必须将Rouge的得分保持在名单上。我不知道该怎么做。你能帮我吗?

from rouge_score import rouge_scorer
scorer = rouge_scorer.RougeScorer(['rouge1'])
scorer.score(hyp,ref)
scores.append(scorer.score(hyp,ref))

样本结果:

[{'rouge1': Score(precision=0.46017699115044247, recall=0.45217391304347826, 
fmeasure=0.45614035087719296)},
{'rouge1': Score(precision=0.1693121693121693, recall=0.2831858407079646, 
fmeasure=0.21192052980132448)}]

当然,我无法直接访问结果。

如果要直接访问Score对象,则应该定义字典的键('rouge1'(
因此scores.append(scorer.score(hyp,ref))将更改为scores.append(scorer.score(hyp,ref)['rouge1'])

以下代码是计算每个文档的ROUGE度量并在单个字典中单独记住结果的更通用版本:

# importing the native rouge library
from rouge_score import rouge_scorer
# a list of the hypothesis documents
hyp = ['This is the first sample', 'This is another example']
# a list of the references documents
ref = ['This is the first sentence', 'It is one more sentence']
# make a RougeScorer object with rouge_types=['rouge1']
scorer = rouge_scorer.RougeScorer(['rouge1'])
# a dictionary that will contain the results
results = {'precision': [], 'recall': [], 'fmeasure': []}
# for each of the hypothesis and reference documents pair
for (h, r) in zip(hyp, ref):
# computing the ROUGE
score = scorer.score(h, r)
# separating the measurements
precision, recall, fmeasure = score['rouge1']
# add them to the proper list in the dictionary
results['precision'].append(precision)
results['recall'].append(recall)
results['fmeasure'].append(fmeasure)

输出如下:

{'fmeasure': [0.8000000000000002, 0.22222222222222224],
'precision': [0.8, 0.2],
'recall': [0.8, 0.25]}

此外,我将建议使用rouge库,这是rouge论文的另一个实现。结果可能略有不同,但它将引入一些有用的功能,包括通过传入整个文本文档来计算胭脂度量的可能性,以及计算所有文档的平均结果的可能性。

您只能为统计数据保留F1(fmeasure(分数。

scores = []
for (hyp, ref) in zip(hyps, refs):
scores.append(scorer.score(hyp,ref).fmeasure)

相关内容

  • 没有找到相关文章

最新更新