完整的 Python ROUGE 分数实现(不是包装器)
项目描述
胭脂
用于 ROUGE 指标的完整 Python 库(论文)。
免责声明
此实现独立于“官方”ROUGE 脚本(又名。ROUGE-155)。
结果可能略有不同,请参阅#2 中的讨论。
快速开始
克隆和安装
git clone https://github.com/pltrdy/rouge
cd rouge
python setup.py install
# or
pip install -U .
或从点子:
pip install rouge
从外壳使用它(JSON 输出)
$rouge -h
usage: rouge [-h] [-f] [-a] hypothesis reference
Rouge Metric Calculator
positional arguments:
hypothesis Text of file path
reference Text or file path
optional arguments:
-h, --help show this help message and exit
-f, --file File mode
-a, --avg Average mode
例如
# Single Sentence
rouge "transcript is a written version of each day 's cnn student" \
"this page includes the show transcript use the transcript to help students with"
# Scoring using two files (line by line)
rouge -f ./tests/hyp.txt ./ref.txt
# Avg scoring - 2 files
rouge -f ./tests/hyp.txt ./ref.txt --avg
作为图书馆
给1句
from rouge import Rouge
hypothesis = "the #### transcript is a written version of each day 's cnn student news program use this transcript to he lp students with reading comprehension and vocabulary use the weekly newsquiz to test your knowledge of storie s you saw on cnn student news"
reference = "this page includes the show transcript use the transcript to help students with reading comprehension and vocabulary at the bottom of the page , comment for a chance to be mentioned on cnn student news . you must be a teac her or a student age # # or older to request a mention on the cnn student news roll call . the weekly newsquiz tests students ' knowledge of even ts in the news"
rouge = Rouge()
scores = rouge.get_scores(hypothesis, reference)
输出:
[
{
"rouge-1": {
"f": 0.4786324739396596,
"p": 0.6363636363636364,
"r": 0.3835616438356164
},
"rouge-2": {
"f": 0.2608695605353498,
"p": 0.3488372093023256,
"r": 0.20833333333333334
},
"rouge-l": {
"f": 0.44705881864636676,
"p": 0.5277777777777778,
"r": 0.3877551020408163
}
}
]
注意:“f”代表f1_score,“p”代表精度,“r”代表召回。
给多个句子打分
import json
from rouge import Rouge
# Load some sentences
with open('./tests/data.json') as f:
data = json.load(f)
hyps, refs = map(list, zip(*[[d['hyp'], d['ref']] for d in data]))
rouge = Rouge()
scores = rouge.get_scores(hyps, refs)
# or
scores = rouge.get_scores(hyps, refs, avg=True)
输出(avg=False):字典列表n:
{"rouge-1": {"f": _, "p": _, "r": _}, "rouge-2" : { .. }, "rouge-l": { ... }}
输出(avg=True):具有平均值的单个字典:
{"rouge-1": {"f": _, "p": _, "r": _}, "rouge-2" : { .. }, "rouge-l": { ... }}
对两个文件进行评分(逐行)
给定两个具有相同行数 ( ) 的文件hyp_path,计算每一行的得分,或整个文件的平均值。ref_pathn
from rouge import FilesRouge
files_rouge = FilesRouge()
scores = files_rouge.get_scores(hyp_path, ref_path)
# or
scores = files_rouge.get_scores(hyp_path, ref_path, avg=True)
项目详情
下载文件
下载适用于您平台的文件。如果您不确定要选择哪个,请了解有关安装包的更多信息。
源分布
rouge-1.0.1.tar.gz
(14.3 kB
查看哈希)
内置分布
rouge-1.0.1-py3-none-any.whl
(13.7 kB
查看哈希)