|
|
import gradio as gr |
|
|
from transformers import pipeline |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
MODEL_REPO = "MakD1227/afriberta-hsd-full" |
|
|
|
|
|
classifier = pipeline( |
|
|
"text-classification", |
|
|
model=MODEL_REPO, |
|
|
tokenizer=MODEL_REPO |
|
|
) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def predict_speech(text): |
|
|
results = classifier(text) |
|
|
|
|
|
label_map = { |
|
|
"LABEL_0": "Free (Neutral)", |
|
|
"LABEL_1": "Offensive", |
|
|
"LABEL_2": "Hate" |
|
|
} |
|
|
|
|
|
label = results[0]["label"] |
|
|
score = results[0]["score"] |
|
|
|
|
|
return label_map.get(label, label), f"{score * 100:.2f}%" |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
demo = gr.Interface( |
|
|
fn=predict_speech, |
|
|
inputs=gr.Textbox( |
|
|
lines=2, |
|
|
label="Input Text", |
|
|
placeholder="Enter Amharic or Afan Oromo text..." |
|
|
), |
|
|
outputs=[ |
|
|
gr.Label(label="Classification"), |
|
|
gr.Text(label="Confidence") |
|
|
], |
|
|
title="Amharic & Afan Oromo Hate Speech Detector", |
|
|
description="Classify text into Free, Offensive, or Hate Speech", |
|
|
article=""" |
|
|
<p style='text-align:center;'>© 2025 Mequanent Degu Belete</p> |
|
|
<p style='text-align:center;'>mekuanentde@gmail.com</p> |
|
|
<p style='text-align:center;'>SNHCC, Academia Sinica, Taiwan</p> |
|
|
""", |
|
|
examples=[ |
|
|
["ኢትዮጵያ ለዘላለም ትኑር"], |
|
|
["haatee sali shamtuu situ nuu beekaa waa ee baalee"] |
|
|
] |
|
|
) |
|
|
|
|
|
if __name__ == "__main__": |
|
|
demo.launch() |
|
|
|