from transformers import pipeline import numpy as np def analyze_entailment(original_sentence, paraphrased_sentences, threshold): # Load the entailment model using pipeline entailment_pipe = pipeline("text-classification", model="ynie/roberta-large-snli_mnli_fever_anli_R1_R2_R3-nli") # Function to perform entailment def check_entailment(premise, hypothesis): results = entailment_pipe(f"{premise} [SEP] {hypothesis}", return_all_scores=True) return results[0] all_sentences = {} selected_sentences = {} discarded_sentences = {} # Check entailment for each paraphrased sentence for paraphrased_sentence in paraphrased_sentences: entailment_results = check_entailment(original_sentence, paraphrased_sentence) entailment_score = next(result['score'] for result in entailment_results if result['label'] == 'entailment') all_sentences[paraphrased_sentence] = entailment_score if entailment_score >= threshold: selected_sentences[paraphrased_sentence] = entailment_score else: discarded_sentences[paraphrased_sentence] = entailment_score return all_sentences, selected_sentences, discarded_sentences # print(analyze_entailment("I love you", [""], 0.7))