pyrouge和rouge,文本摘要评测方法库

rouge是自动文本摘要算法的评估指标:
https://blog.csdn.net/qq_25222361/article/details/78694617

Rouge-1、Rouge-2、Rouge-L分别是:生成的摘要的1gram-2gram在真实摘要的1gram-2gram的准确率召回率和f1值,还有最长公共子序列在预测摘要中所占比例是准确率,在真实摘要中所占比例是召回率,然后可以计算出f1值。


pyrouge是现成的计算库,https://github.com/andersjo/pyrouge,安装方法 https://blog.csdn.net/qq_32458499/article/details/80282049(安装过程简直吐血,依赖perl语言的包,首先安装perl再安装各种依赖包,依赖包安装过程又发现要安装其他依赖包,一直安,各种错,最后依旧没安装成功)网上关于这个的介绍很多
关键点是:安装好perl,以及perl安装包的CPAN
能计算rouge 1/2/3/4/5/L


rouge这个库同样可以计算评价指标但只能计算rouge1/2/L,且十分方便 https://github.com/pltrdy/rouge https://pypi.org/project/rouge/0.2.1/

只需要pip install rouge, 然后代码里这样调用就行了

from rouge import Rouge

a = ["i am a student from xx school"]  # 预测摘要 (可以是列表也可以是句子)
b = ["i am a student from school on china"] #真实摘要

rouge = Rouge()
rouge_score = rouge.get_scores(a, b)
print(rouge_score[0]["rouge-1"])
print(rouge_score[0]["rouge-2"])
print(rouge_score[0]["rouge-l"])

结果
{'f': 0.7999999950222222, 'p': 0.8571428571428571, 'r': 0.75}
{'f': 0.6153846104142012, 'p': 0.6666666666666666, 'r': 0.5714285714285714}
{'f': 0.7929824561399953, 'p': 0.8571428571428571, 'r': 0.75}

tips: 对于英文,直接把句子输入即可,中文的话, 没有空格无法识别词,所以得分词之后再计算rouge值。如果需要以字为单位也得每个字加个空格。

推荐阅读更多精彩内容

  • pdf下载地址:Java面试宝典 第一章内容介绍 20 第二章JavaSE基础 21 一、Java面向对象 21 ...
    王震阳阅读 83,443评论 26 524
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 131,965评论 20 560
  • 运行结果
    ssttIsme阅读 908评论 0 0
  • 没有按照老师的要求写价值账户,但是每天记笔记,却已经让我对生活信心满满。感谢进入我生活的这些好东西! 昨天准备完成...
    冠世墨玉yanzi阅读 25评论 0 0
  • 输出和输入同样重要。输出让已有的更加明晰,也可以倒逼输入。而且,输出(分享)型人格可以发光。 于是...
    J_4bb8阅读 10评论 0 0