Spaces:
Runtime error
Runtime error
File size: 2,803 Bytes
fa9917c c7baec5 fa9917c 2c156ec df18eaf c500f94 fc46774 c500f94 fc46774 df18eaf 17ee3d5 7b4da08 7fcd0f7 d91019d 519530c d91019d 3c86f17 17ee3d5 b4b2d15 816ad81 e31ea1f 77e17ee 918502d 2d548f2 8dd71ab 72ea02e 69eadf1 ad0006b 45d0f71 7c47179 be4ba0f 45d0f71 ef34b99 45d0f71 5bd7d2c |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 |
import gradio as gr
import torch
from transformers import pipeline
app_title = "Portuguese Hate Speech Detection (NFAA)"
app_description = """
This app is the culmination of the kNOwHATE consortium project, which aimed to tackle Online Hate Speech in the Portuguese comunity. It serves as an user-friendly interface to classify text and identify instances of Hate Speech.
This app leverages state-of-the-art Natural Language Processing models developed in the scope of this project to classify harmful text.
Select a model from the dropdown menu and input your text to see the classification results. Explore the examples of Hate Speech and Non-Hate Speech offered, and join us in fostering a safer and more respectful online community.
For more information about the kNOwHATE project and its initiatives, visit our website [here](https://knowhate.eu) and to explore and use these models visit our Hugging Face page [here](https://huggingface.co/knowhate).
"""
app_examples = [
["As pessoas tem que perceber que ser 'panasca' não é deixar de ser homem, é deixar de ser humano 😂😂", "knowhate/HateBERTimbau-youtube"],
["Vamo-nos unir para criar um mundo mais inclusivo e tolerante.", "knowhate/HateBERTimbau-twitter"],
["Isso pulhiticos merdosos, continuem a importar lixo, até Portugal deixar de ser Portugal.", "knowhate/HateBERTimbau-yt-tt"],
["Eu admiro muito a coragem e a determinação da minha colega de trabalho.", "knowhate/HateBERTimbau-twitter"],
["Vai pá puta que te pariu seu paneleiro do caralho, virgem ofendida", "knowhate/HateBERTimbau-youtube"],
["O tempo está ensolarado hoje, perfeito para um passeio no parque.", "knowhate/HateBERTimbau-yt-tt"]
]
model_list = [
"knowhate/HateBERTimbau-youtube",
"knowhate/HateBERTimbau-twitter",
"knowhate/HateBERTimbau-yt-tt",
]
def predict(text, chosen_model):
# Initialize the pipeline with the chosen model
model_pipeline = pipeline("text-classification", model=chosen_model)
result = model_pipeline(text)
predicted_label = result[0]['label']
predicted_score = result[0]['score']
non_predicted_label = "Hate Speech" if predicted_label == "Non Hate Speech" else "Non Hate Speech"
non_predicted_score = 1 - predicted_score
scores_dict = {
predicted_label: predicted_score,
non_predicted_label: non_predicted_score
}
return scores_dict
inputs = [
gr.Textbox(label="Text", value= app_examples[0][0]),
gr.Dropdown(label="Model", choices=model_list, value=model_list[2])
]
outputs = [
gr.Label(label="Result"),
]
gr.Interface(fn=predict, inputs=inputs, outputs=outputs, title=app_title,
description=app_description, examples=app_examples, theme=gr.themes.Base(primary_hue="red")).launch() |