| 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} | |