breadlicker45's picture
Update app.py
09e7c03 verified
raw
history blame
1.69 kB
import gradio as gr
from transformers import pipeline
# Define model names
models = {
"ModernBERT Base (gender)": "breadlicker45/ModernBERT-base-gender",
"ModernBERT Large (gender)": "breadlicker45/ModernBERT-large-gender"
}
# Function to load the selected model and classify text
def classify_text(model_name, text):
classifier = pipeline("text-classification", model=models[model_name], top_k=None)
predictions = classifier(text)
# Map the numerical labels to human-readable labels
label_mapping = {"0": "Male", "1": "Female"}
# Construct the output dictionary with human-readable labels
output_predictions = {}
for pred in predictions[0]:
# Ensure the label is treated as a string for dictionary lookup
numerical_label_str = str(pred["label"])
human_readable_label = label_mapping.get(numerical_label_str, numerical_label_str) # Use fallback if label not in mapping
output_predictions[human_readable_label] = pred["score"]
return output_predictions
# Create the Gradio interface
interface = gr.Interface(
fn=classify_text,
inputs=[
gr.Dropdown(
list(models.keys()),
label="Select Model",
value="ModernBERT Large (gender)"
),
gr.Textbox(
lines=2,
placeholder="Enter text to analyze emotions...",
value="I am thrilled to be a part of this amazing journey!"
)
],
outputs=gr.Label(num_top_classes=5),
title="ModernBERT gender Classifier",
description="Select a model and enter a sentence to see its associated gender and confidence scores.",
)
# Launch the app
interface.launch()