|
|
import streamlit as st |
|
|
from transformers import pipeline |
|
|
|
|
|
|
|
|
model_name = "devaprobs/amharic-hate-speech-detection" |
|
|
classifier = pipeline("text-classification", model=model_name) |
|
|
|
|
|
|
|
|
st.set_page_config(page_title="Amharic Hate Speech Detector", page_icon="π΅οΈββοΈ", layout="centered") |
|
|
st.markdown("<style> body { background-color: #f0f2f6; } </style>", unsafe_allow_html=True) |
|
|
|
|
|
|
|
|
st.markdown( |
|
|
""" |
|
|
<div style="text-align:center"> |
|
|
<h1 style="color:#1F618D;">Amharic Hate Speech Detector π΅οΈββοΈ</h1> |
|
|
<p style="font-size:20px; color:#555;">Type an Amharic sentence and let our model analyze it!</p> |
|
|
</div> |
|
|
""", |
|
|
unsafe_allow_html=True |
|
|
) |
|
|
|
|
|
|
|
|
user_input = st.text_area("Enter Amharic text here:", height=150, placeholder="αα³α: α₯ααα° α₯αα°ααα α αααα...") |
|
|
|
|
|
|
|
|
if st.button("Analyze Text π"): |
|
|
if user_input: |
|
|
|
|
|
result = classifier(user_input) |
|
|
label = result[0]['label'] |
|
|
score = result[0]['score'] |
|
|
|
|
|
|
|
|
if label == "LABEL_0": |
|
|
prediction = "Normal Text π’" |
|
|
color = "#28a745" |
|
|
else: |
|
|
prediction = "Hate Speech π΄" |
|
|
color = "#dc3545" |
|
|
|
|
|
|
|
|
st.markdown(f"<h2 style='text-align: center; color: {color};'>{prediction}</h2>", unsafe_allow_html=True) |
|
|
st.write(f"Confidence: {score * 100:.2f}%") |
|
|
else: |
|
|
st.warning("Please enter some text to analyze.") |
|
|
|