-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathgen_eval.py
More file actions
55 lines (44 loc) · 1.59 KB
/
gen_eval.py
File metadata and controls
55 lines (44 loc) · 1.59 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
import argparse
import pandas as pd
import evaluate
# Load evaluation metrics
rouge = evaluate.load("rouge")
bleu = evaluate.load("bleu")
meteor = evaluate.load("meteor")
def evaluate_metrics(csv_file, gen_summary_column, ref_summary_column):
# Load data from CSV file
data = pd.read_csv(csv_file)
# Compute ROUGE scores
rouge_scores = rouge.compute(
predictions=data[gen_summary_column],
references=data[ref_summary_column],
rouge_types=["rouge1", "rouge2", "rougeL"]
)
# Compute BLEU score
bleu_scores = bleu.compute(
predictions=data[gen_summary_column],
references=data[ref_summary_column],
)["bleu"]
# Compute METEOR score
meteor_scores = meteor.compute(
predictions=data[gen_summary_column],
references=data[ref_summary_column],
)
# Return all scores
return dict(rouge_scores, **{"bleu": bleu_scores}, **meteor_scores)
def main():
# Parse command line arguments
parser = argparse.ArgumentParser(description="Evaluate summary metrics")
parser.add_argument("csv_file", help="CSV file containing data")
parser.add_argument("--gen_summary_column", default="Generated Summary", help="Generated summary column name")
parser.add_argument("--ref_summary_column", default="Reference Summary", help="Reference summary column name")
args = parser.parse_args()
# Evaluate metrics and print results
metrics = evaluate_metrics(
args.csv_file,
args.gen_summary_column,
args.ref_summary_column
)
print("Metrics:", metrics)
if __name__ == "__main__":
main()