Anderson432 commited on
Commit
188d646
·
verified ·
1 Parent(s): 02ea540

Create app.py

Browse files
Files changed (1) hide show
  1. app.py +44 -0
app.py ADDED
@@ -0,0 +1,44 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ from transformers import pipeline
2
+
3
+ # Pipeline do modelo BART
4
+ classifier = pipeline("zero-shot-classification", model="facebook/bart-large-mnli")
5
+
6
+ # Dicionário com descrições das categorias como chave e descrições como valor.
7
+ # Traz a vantagem de conter mais contexto semântico para o modelo.
8
+ # Pode melhorar a discriminação entre categorias próximas (ex: política vs. economia).
9
+
10
+ categorias_descritas = {
11
+ "esporte": "notícias relacionadas a competições esportivas, atletas ou eventos esportivos",
12
+ "política": "notícias sobre decisões governamentais, eleições, partidos ou políticas públicas",
13
+ "tecnologia": "notícias sobre inovações, ciência da computação, internet e dispositivos eletrônicos",
14
+ "entretenimento": "notícias sobre filmes, música, celebridades e cultura pop", # nova categoria
15
+ "meio ambiente": "notícias sobre mudanças climáticas, preservação ambiental e ecologia",
16
+ "saúde": "notícias sobre medicina, doenças, vacinas e cuidados com a saúde"
17
+ }
18
+
19
+ # Lista de descrições para o modelo
20
+ descricoes = list(categorias_descritas.values())
21
+
22
+ # Função de predição
23
+ def classificar_artigo(texto):
24
+ resultado = classifier(texto, candidate_labels=descricoes)
25
+
26
+ # Converte a descrição de volta para o nome da categoria original
27
+ saida = {}
28
+ for desc, score in zip(resultado["labels"], resultado["scores"]):
29
+ for categoria, descricao in categorias_descritas.items():
30
+ if desc == descricao:
31
+ saida[categoria] = f"{score:.4f}"
32
+ break
33
+ return saida
34
+
35
+ # Interface Gradio
36
+ interface = gr.Interface(
37
+ fn=classificar_artigo,
38
+ inputs=gr.Textbox(lines=10, label="Digite o conteúdo do artigo"),
39
+ outputs=gr.Label(label="Classificação Zero-Shot"),
40
+ title="Classificação Zero-Shot de notícias",
41
+ description="Este modelo classifica notícias com base em descrições detalhadas das categorias."
42
+ )
43
+
44
+ interface.launch()