跳转到主要内容

ROUGE-1.5.5的纯Python实现。

项目描述

Python ROUGE实现

概述

这是一个ROUGE的本地Python实现,旨在复制原始perl包的结果。

维护者可以通过rouge-opensource@google.com联系。

ROUGE最初在以下论文中介绍:

Lin, Chin-Yew. ROUGE: a Package for Automatic Evaluation of Summaries. In Proceedings of the Workshop on Text Summarization Branches Out (WAS 2004), Barcelona, Spain, July 25 - 26, 2004.

Python ROUGE

目前已有适用于Python的ROUGE实现,但其中一些由于依赖于perl脚本而并非原生Python,还有一些与原始实现相比提供不同的结果,这使得直接比较已知结果变得困难。

本软件包旨在复制perl的结果。它实现了

  • ROUGE-N(N-gram)评分
  • ROUGE-L(最长公共子序列)评分
  • 文本归一化
  • 用于置信区间计算的自助重采样
  • 可选的Porter词干提取,用于去除复数和词缀(如ing, ion, ment)。

请注意,原始perl ROUGE脚本提供的所有选项并不都得到支持,但已实现的选项子集应能复制原始功能。

停用词去除

原始ROUGE perl脚本实现了可选的停用词去除(使用-s参数)。然而,ROUGE使用了约600个停用词,这些词来自另一个现已停用的包。这个单词列表包含许多可能不适合某些任务的字词,例如星期和月份的名称以及数字。它也没有明确的重新分发许可。由于我们无法精确地复制此功能,因此不包括停用词去除。

两种ROUGE-L版本

在ROUGE论文中,描述了两种ROUGE版本

  1. 句子级别:计算两段文本之间的最长公共子序列(LCS)。忽略换行符。在这个包中称为rougeL
  2. 摘要级别:将文本中的换行符解释为句子边界,计算每对参考和候选句子之间的LCS,并计算某种称为union-LCS的东西。在这个包中称为rougeLsum。这是在Get To The Point: Summarization with Pointer-Generator Networks中报告的ROUGE-L,例如。如果你的参考/候选没有换行符分隔符,可以使用--split_summaries标志(或在RougeScorer中的可选参数)。

如何运行

此包将目标文件(每行包含一个示例)与相同格式的预测文件进行比较。可以从google-research/启动如下:

python -m rouge.rouge \
    --target_filepattern=*.targets \
    --prediction_filepattern=*.decodes \
    --output_filename=scores.csv \
    --use_stemmer=true \
    --split_summaries=true

使用pip

pip install -r rouge/requirements.txt
pip install rouge-score

然后在python

from rouge_score import rouge_scorer

scorer = rouge_scorer.RougeScorer(['rouge1', 'rougeL'], use_stemmer=True)
scores = scorer.score('The quick brown fox jumps over the lazy dog',
                      'The quick brown dog jumps on the log.')

许可证

根据Apache 2.0许可证授权。

免责声明

这不是一个官方的Google产品。

项目详情


下载文件

下载适用于您平台的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。

源分布

rouge_score-0.1.2.tar.gz (17.4 kB 查看哈希)

上传时间

由以下机构支持

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误记录 StatusPage StatusPage 状态页面