Spaces:
Running
Running
import evaluate | |
# Use a pipeline as a high-level helper | |
from transformers import pipeline | |
from embed_score import Embed_Eval | |
class Evaluator: | |
def __init__(self): | |
self.gpt_score = Embed_Eval(model="gpt") | |
self.pubmedbert_score = Embed_Eval(model="pubmedbert") | |
self.rouge = evaluate.load("rouge") | |
self.bertscore = evaluate.load("bertscore") | |
self.bleu = evaluate.load("bleu") | |
self.meteor = evaluate.load("meteor") | |
self.mauve = evaluate.load("mauve") | |
self.biomedBERT = pipeline("fill-mask", model="microsoft/BiomedNLP-BiomedBERT-base-uncased-abstract-fulltext") | |
def eval(self, pred, ref): | |
results = {} | |
results["gpt_score"] = self.gpt_score.compute(predictions=pred, references=ref) | |
results["pubmedbert_score"] = self.pubmedbert_score.compute(predictions=pred, references=ref) | |
results["rouge"] = self.rouge.compute(predictions=pred, references=ref) | |
results["bert_score"] = self.bertscore.compute(predictions=pred, references=ref, model_type="distilbert-base-uncased") | |
results["bleu"] = self.bleu.compute(predictions=pred, references=ref) # precisions are bleu-1 to bleu-4, n-grams | |
results["meteor"] = self.meteor.compute(predictions=pred, references=ref) | |
results["mauve"] = self.mauve.compute(predictions=pred, references=ref) | |
return results | |
if __name__ == "__main__": | |
evaluator = Evaluator() | |
print(evaluator.eval(["hello there general kenobi", "foo bar foobar"], ["hello there general kenobi", "foo bar foobar"])) | |