赞
踩
引用:Rouge(Recall-Oriented Understudy for Gisting Evaluation),是评估自动文摘以及机器翻译的一组指标。它通过将自动生成的摘要或翻译与一组参考摘要(通常是人工生成的)进行比较计算,得出相应的分值,以衡量自动生成的摘要或翻译与参考摘要之间的“相似度”。
ROUGE准则由一系列的评价方法组成,包括ROUGE-N(N=1、2、3、4,分别代表基于1元词到4元词的模型),ROUGE-L,ROUGE-S, ROUGE-W,ROUGE-SU等。在自动文摘相关研究中,一般根据自己的具体研究内容选择合适的ROUGE方法。
不难看出,ROUGE公式是由召回率的计算公式演变而来的,分子可以看作系统生成摘要与标准摘要相匹配的N-gram个数,分母可以看作标准摘要中所有的N-gram个数。
- import jieba
- #使用jieba进行分词
- def Rouge_1(model, reference):#terms_reference为参考摘要,terms_model为候选摘要 ***one-gram*** 一元模型
- terms_reference= jieba.cut(reference)#默认精准模式
- terms_model= jieba.cut(model)
- grams_reference = list(terms_reference)
- grams_model = list(terms_model)
- temp = 0
- ngram_all = len(grams_reference)
- for x in grams_reference:
- if x in grams_model: temp=temp+1
- rouge_1=temp/ngram_all
- return rouge_1
-
- def Rouge_2(model, reference):#terms_reference为参考摘要,terms_model为候选摘要 ***Bi-gram*** 2元模型
- terms_reference = jieba.cut(reference)
- terms_model = jieba.cut(model)
- grams_reference = list(terms_reference)
- grams_model = list(terms_model)
- gram_2_model=[]
- gram_2_reference=[]
- temp = 0
- ngram_all = len(grams_reference)-1
- for x in range(len(grams_model)-1):
- gram_2_model.append(grams_model[x] + grams_model[x+1])
- for x in range(len(grams_reference)-1):
- gram_2_reference.append(grams_reference[x] + grams_reference[x + 1])
- for x in gram_2_model:
- if x in gram_2_reference:temp=temp+1
- rouge_2=temp/ngram_all
- return rouge_2
-
- def Rouge(model, reference):
- print("rouge_1="+str(Rouge_1(model, reference)))
- print("rouge_2="+str(Rouge_2(model, reference)))
-
-
- #Rouge("我的世界是光明的","光明给我的世界以力量")
以上。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。