|
import gradio as gr |
|
from transformers import pipeline |
|
|
|
|
|
classifier = pipeline("zero-shot-classification", |
|
model="facebook/bart-large-mnli") |
|
|
|
def classify_text(text, labels): |
|
candidate_labels = [label.strip() for label in labels.split(",")] |
|
result = classifier(text, candidate_labels) |
|
return {label: float(f"{score:.3f}") for label, score in zip(result["labels"], result["scores"])} |
|
|
|
demo = gr.Interface( |
|
fn=classify_text, |
|
inputs=[ |
|
gr.Textbox(lines=3, placeholder="Enter the text to classify...", label="Input Text"), |
|
gr.Textbox(lines=1, placeholder="Enter comma-separated labels (e.g., finance, tech, sports)", label="Candidate Labels") |
|
], |
|
outputs="label", |
|
title="Zero-Shot Text Classification with BART & XLM-RoBERTa", |
|
description="Classify text into categories without training data using transformer-based models. Based on the article from C# Corner." |
|
) |
|
|
|
demo.launch() |
|
|