rouge-score


Namerouge-score JSON
Version 0.1.2 PyPI version JSON
download
home_pagehttps://github.com/google-research/google-research/tree/master/rouge
SummaryPure python implementation of ROUGE-1.5.5.
upload_time2022-07-22 22:46:22
maintainer
docs_urlNone
authorGoogle LLC
requires_python>=3.7
license
keywords
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # Python ROUGE Implementation

## Overview

This is a native python implementation of ROUGE, designed to replicate results
from the original perl package.

Maintainers may be contacted at rouge-opensource@google.com.

ROUGE was originally introduced in the paper:

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.

## ROUGE for Python

There are ROUGE implementations available for Python, however some are not
native python due to their dependency on the perl script, and others provide
differing results when compared with the original implementation. This makes it
difficult to directly compare with known results.

This package is designed to replicate perl results. It implements:

*   ROUGE-N (N-gram) scoring
*   ROUGE-L (Longest Common Subsequence) scoring
*   Text normalization
*   Bootstrap resampling for confidence interval calculation
*   Optional Porter stemming to remove plurals and word suffixes such as (ing,
    ion, ment).

Note that not all options provided by the original perl ROUGE script are
supported, but the subset of options that are implemented should replicate the
original functionality.

## Stopword removal

The original ROUGE perl script implemented optional stopword removal (using the
-s parameter). However, there were ~600 stopwords used by ROUGE, borrowed from
another now defunct package. This word list contained many words that may not be
suited to some tasks, such as day and month names and numbers. It also has no
clear license for redistribution. Since we are unable to replicate this
functionality precisely we do not include stopword removal.

## Two flavors of ROUGE-L
In the ROUGE paper, two flavors of ROUGE are described:

1. sentence-level: Compute longest common subsequence (LCS) between two pieces of
text. Newlines are ignored. This is called `rougeL` in this package.
2. summary-level: Newlines in the text are interpreted as sentence boundaries,
and the LCS is computed between each pair of reference and candidate sentences,
and something called union-LCS is computed. This is called `rougeLsum` in this
package. This is the ROUGE-L reported in *[Get To The Point: Summarization with
Pointer-Generator Networks](https://arxiv.org/abs/1704.04368)*, for example.
If your references/candidates do not have newline delimiters, you can use the
--split_summaries flag (or optional argument in RougeScorer).

## How to run

This package compares target files (containing one example per line) with
prediction files in the same format. It can be launched as follows (from
google-research/):

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

## Using pip
```
pip install -r rouge/requirements.txt
pip install rouge-score
```

Then in python:

```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.')
```

## License

Licensed under the
[Apache 2.0](https://github.com/google-research/google-research/blob/master/LICENSE)
License.

## Disclaimer

This is not an official Google product.



            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/google-research/google-research/tree/master/rouge",
    "name": "rouge-score",
    "maintainer": "",
    "docs_url": null,
    "requires_python": ">=3.7",
    "maintainer_email": "",
    "keywords": "",
    "author": "Google LLC",
    "author_email": "rouge-opensource@google.com",
    "download_url": "https://files.pythonhosted.org/packages/e2/c5/9136736c37022a6ad27fea38f3111eb8f02fe75d067f9a985cc358653102/rouge_score-0.1.2.tar.gz",
    "platform": null,
    "description": "# Python ROUGE Implementation\n\n## Overview\n\nThis is a native python implementation of ROUGE, designed to replicate results\nfrom the original perl package.\n\nMaintainers may be contacted at rouge-opensource@google.com.\n\nROUGE was originally introduced in the paper:\n\nLin, Chin-Yew. ROUGE: a Package for Automatic Evaluation of Summaries. In\nProceedings of the Workshop on Text Summarization Branches Out (WAS 2004),\nBarcelona, Spain, July 25 - 26, 2004.\n\n## ROUGE for Python\n\nThere are ROUGE implementations available for Python, however some are not\nnative python due to their dependency on the perl script, and others provide\ndiffering results when compared with the original implementation. This makes it\ndifficult to directly compare with known results.\n\nThis package is designed to replicate perl results. It implements:\n\n*   ROUGE-N (N-gram) scoring\n*   ROUGE-L (Longest Common Subsequence) scoring\n*   Text normalization\n*   Bootstrap resampling for confidence interval calculation\n*   Optional Porter stemming to remove plurals and word suffixes such as (ing,\n    ion, ment).\n\nNote that not all options provided by the original perl ROUGE script are\nsupported, but the subset of options that are implemented should replicate the\noriginal functionality.\n\n## Stopword removal\n\nThe original ROUGE perl script implemented optional stopword removal (using the\n-s parameter). However, there were ~600 stopwords used by ROUGE, borrowed from\nanother now defunct package. This word list contained many words that may not be\nsuited to some tasks, such as day and month names and numbers. It also has no\nclear license for redistribution. Since we are unable to replicate this\nfunctionality precisely we do not include stopword removal.\n\n## Two flavors of ROUGE-L\nIn the ROUGE paper, two flavors of ROUGE are described:\n\n1. sentence-level: Compute longest common subsequence (LCS) between two pieces of\ntext. Newlines are ignored. This is called `rougeL` in this package.\n2. summary-level: Newlines in the text are interpreted as sentence boundaries,\nand the LCS is computed between each pair of reference and candidate sentences,\nand something called union-LCS is computed. This is called `rougeLsum` in this\npackage. This is the ROUGE-L reported in *[Get To The Point: Summarization with\nPointer-Generator Networks](https://arxiv.org/abs/1704.04368)*, for example.\nIf your references/candidates do not have newline delimiters, you can use the\n--split_summaries flag (or optional argument in RougeScorer).\n\n## How to run\n\nThis package compares target files (containing one example per line) with\nprediction files in the same format. It can be launched as follows (from\ngoogle-research/):\n\n```shell\npython -m rouge.rouge \\\n    --target_filepattern=*.targets \\\n    --prediction_filepattern=*.decodes \\\n    --output_filename=scores.csv \\\n    --use_stemmer=true \\\n    --split_summaries=true\n```\n\n## Using pip\n```\npip install -r rouge/requirements.txt\npip install rouge-score\n```\n\nThen in python:\n\n```python\nfrom rouge_score import rouge_scorer\n\nscorer = rouge_scorer.RougeScorer(['rouge1', 'rougeL'], use_stemmer=True)\nscores = scorer.score('The quick brown fox jumps over the lazy dog',\n                      'The quick brown dog jumps on the log.')\n```\n\n## License\n\nLicensed under the\n[Apache 2.0](https://github.com/google-research/google-research/blob/master/LICENSE)\nLicense.\n\n## Disclaimer\n\nThis is not an official Google product.\n\n\n",
    "bugtrack_url": null,
    "license": "",
    "summary": "Pure python implementation of ROUGE-1.5.5.",
    "version": "0.1.2",
    "project_urls": {
        "Homepage": "https://github.com/google-research/google-research/tree/master/rouge"
    },
    "split_keywords": [],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "e2c59136736c37022a6ad27fea38f3111eb8f02fe75d067f9a985cc358653102",
                "md5": "4eec4a1febf34b4a293c78cda762489b",
                "sha256": "c7d4da2683e68c9abf0135ef915d63a46643666f848e558a1b9f7ead17ff0f04"
            },
            "downloads": -1,
            "filename": "rouge_score-0.1.2.tar.gz",
            "has_sig": false,
            "md5_digest": "4eec4a1febf34b4a293c78cda762489b",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.7",
            "size": 17400,
            "upload_time": "2022-07-22T22:46:22",
            "upload_time_iso_8601": "2022-07-22T22:46:22.909600Z",
            "url": "https://files.pythonhosted.org/packages/e2/c5/9136736c37022a6ad27fea38f3111eb8f02fe75d067f9a985cc358653102/rouge_score-0.1.2.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2022-07-22 22:46:22",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "google-research",
    "github_project": "google-research",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": false,
    "circle": true,
    "lcname": "rouge-score"
}
        
Elapsed time: 0.29087s