from transformers import pipeline zeroshot_classifier = pipeline("zero-shot-classification", model="MoritzLaurer/deberta-v3-large-zeroshot-v1.1-all-33") def english_information_extraction(text: str): hypothesis_template_domain = "This text is about {}" domain_classes = ["women" , "muslims" , "tamil" , "sinhala" , "other"] domains_output= zeroshot_classifier(text, domain_classes , hypothesis_template=hypothesis_template_domain, multi_label=False) sentiment_discrimination_prompt = f"the content of this text about {domains_output['labels'][0]} " hypothesis_template_sentiment = "is {} sentiment" hypothesis_template_sentiment = sentiment_discrimination_prompt + hypothesis_template_sentiment sentiment_classes = ["positive" ,"neutral", "negative"] sentiment_output= zeroshot_classifier(text, sentiment_classes , hypothesis_template=hypothesis_template_sentiment, multi_label=False) hypothesis_template_discrimination = "is {}" hypothesis_template_discrimination = sentiment_discrimination_prompt + hypothesis_template_discrimination discrimination_classes = ["hateful" , "not hateful"] discrimination_output= zeroshot_classifier(text, discrimination_classes , hypothesis_template=hypothesis_template_discrimination, multi_label=False) domain_label , domain_score = domains_output["labels"][0] , domains_output["scores"][0] sentiment_label , sentiment_score = sentiment_output["labels"][0] , sentiment_output["scores"][0] discrimination_label , discrimination_score = discrimination_output["labels"][0] , discrimination_output["scores"][0] return {"domain_label" : domain_label, "domain_score" : domain_score, "sentiment_label" : sentiment_label, "sentiment_score" : sentiment_score, "discrimination_label" : discrimination_label, "discrimination_score": discrimination_score}