File size: 2,197 Bytes
fa9917c
c7baec5
fa9917c
 
df18eaf
 
 
 
 
 
17ee3d5
 
 
 
 
 
 
 
 
b4b2d15
 
 
 
 
 
 
17ee3d5
 
 
 
 
 
 
 
 
 
c85af71
 
 
45d0f71
816ad81
e31ea1f
77e17ee
918502d
2d548f2
 
72ea02e
dcee1e9
45d0f71
 
5d127b3
17ee3d5
45d0f71
 
 
 
 
 
 
 
5d127b3
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
import gradio as gr
import torch
from transformers import pipeline

app_title = "Portuguese Hate Speech Detection"

app_description = """
This app detects hate speech on Portuguese text using multiple models. You can either introduce your own sentences by filling in "Text" or click on one of the examples provided below.
"""

app_examples = [
    ["As pessoas tem que perceber que ser 'panasca' não é deixar de ser homem, é deixar de ser humano 😂😂"],
    ["Isso pulhiticos merdosos, continuem a importar lixo, até Portugal deixar de ser Portugal."],
    ["Vai pá puta que te pariu seu paneleiro do caralho, virgem ofendida"],
    ["Vamo-nos unir para criar um mundo mais inclusivo e tolerante."],
    ["Eu admiro muito a coragem e a determinação da minha colega de trabalho."],
    ["O tempo está ensolarado hoje, perfeito para um passeio no parque."]
]

model_list = [
    "knowhate/HateBERTimbau",
    "knowhate/HateBERTimbau-youtube",
    "knowhate/HateBERTimbau-twitter",
    "knowhate/HateBERTimbau-yt-tt",
]

user_friendly_name = {
    "knowhate/HateBERTimbau": "HateBERTimbau (Original)",
    "knowhate/HateBERTimbau-youtube": "HateBERTimbau (YouTube)",
    "knowhate/HateBERTimbau-twitter": "HateBERTimbau (Twitter)",
    "knowhate/HateBERTimbau-yt-tt": "HateBERTimbau (YouTube + Twitter)",
}

reverse_user_friendly_name = { v:k for k,v in user_friendly_name.items() }
user_friendly_name_list = list(user_friendly_name.values())

#pipe = pipeline("text-classification", model="knowhate/HateBERTimbau")
#demo = gr.Interface.from_pipeline(pipe)
#demo.launch()

def predict(text, chosen_model):    
    
    # Initialize the pipeline with the chosen model
    model_pipeline = pipeline("text-classification", model=chosen_model)
    result = model_pipeline(text)
    label = result[0]['label']
    
    return label

inputs = [
    gr.Textbox(label="Text", value= app_examples[0][0]),
    gr.Dropdown(label="Model", choices=user_friendly_name_list, value=user_friendly_name_list[2])
]

outputs = [
 gr.Label(label="Result"),
]


gr.Interface(fn=predict, inputs=inputs, outputs=outputs, title=app_title, 
             description=app_description, examples=app_examples).launch()