Python 使用/解释没有金色文本的胭脂评分
我正在考虑使用胭脂评分来评估机器摘要。 然而,我没有黄金文本作为我的总结,我担心我没有办法创建它们 我只是想在创建的摘要和原始文本上使用胭脂,并计算胭脂分数的均值和方差。请注意,我发送机器摘要和原始文本,计算每个胭脂分数,然后计算其均值和方差,并用以下代码打印结果:Python 使用/解释没有金色文本的胭脂评分,python,nlp,text-processing,summarization,rouge,Python,Nlp,Text Processing,Summarization,Rouge,我正在考虑使用胭脂评分来评估机器摘要。 然而,我没有黄金文本作为我的总结,我担心我没有办法创建它们 我只是想在创建的摘要和原始文本上使用胭脂,并计算胭脂分数的均值和方差。请注意,我发送机器摘要和原始文本,计算每个胭脂分数,然后计算其均值和方差,并用以下代码打印结果: from rouge import Rouge rouge_score = Rouge() def cal_rouge(machine_summaries, original_texts): scores = {}
from rouge import Rouge
rouge_score = Rouge()
def cal_rouge(machine_summaries, original_texts):
scores = {}
scores["f1"] = []
scores["p"] = []
scores["r"] = []
for i in range(len(original_texts)):
score = rouge_score.get_scores(machine_summaries[i], original_texts[i])
scores["f1"].append(score[0]["rouge-1"]["f"])
scores["p"].append(score[0]["rouge-1"]["p"])
scores["r"].append(score[0]["rouge-1"]["r"])
scores_mean = {}
scores_mean["f1"] = np.mean(scores["f1"])
scores_mean["p"] = np.mean(scores["p"])
scores_mean["r"] = np.mean(scores["r"])
scores_var = {}
scores_var["f1"] = np.var(scores["f1"])
scores_var["p"] = np.var(scores["p"])
scores_var["r"] = np.var(scores["r"])
return scores_mean, scores_var, np.array(scores)
这使我得到以下结果示例:
#Mean: {'f1': 0.2522413129042896, 'p': 0.7467766694578116, 'r': 0.15471170656289543}
#Variance: {'f1': 0.0065774107537912635, 'p': 0.003972151259434706, 'r': 0.0035067344794450965}
或其他:
#Mean: {'f1': 0.6725674074479152, 'p': 0.9175048965779135, 'r': 0.5373725357457687}
#Variance: {'f1': 0.002412885989526224, 'p': 0.006999761843180578, 'r': 0.004363124116897011}
因为我已经读过了,这个流氓通常被用在人工编写的摘要上(我用原始文本替换),用来比较机器编写的摘要中有多少n克的人工摘要,感觉好像我现在没有这样做。这是一种可能的方法,我在这里做的事情还是胡说八道?我收到的分数是否可用于解释总结是否良好(当然,这样就无法将其与其他胭脂分数进行比较,但这对我的情况很好)+1如果您提供了一个更好的解决方案,那么如何对机器摘要进行评估(除了已经使用此方法的Bert分数)
多谢各位