Spaces:
Sleeping
Sleeping
| from transformers import pipeline | |
| # Pipeline do modelo BART | |
| classifier = pipeline("zero-shot-classification", model="facebook/bart-large-mnli") | |
| # Dicionário com descrições das categorias como chave e descrições como valor. | |
| # Traz a vantagem de conter mais contexto semântico para o modelo. | |
| # Pode melhorar a discriminação entre categorias próximas (ex: política vs. economia). | |
| categorias_descritas = { | |
| "esporte": "notícias relacionadas a competições esportivas, atletas ou eventos esportivos", | |
| "política": "notícias sobre decisões governamentais, eleições, partidos ou políticas públicas", | |
| "tecnologia": "notícias sobre inovações, ciência da computação, internet e dispositivos eletrônicos", | |
| "entretenimento": "notícias sobre filmes, música, celebridades e cultura pop", # nova categoria | |
| "meio ambiente": "notícias sobre mudanças climáticas, preservação ambiental e ecologia", | |
| "saúde": "notícias sobre medicina, doenças, vacinas e cuidados com a saúde" | |
| } | |
| # Lista de descrições para o modelo | |
| descricoes = list(categorias_descritas.values()) | |
| # Função de predição | |
| def classificar_artigo(texto): | |
| resultado = classifier(texto, candidate_labels=descricoes) | |
| # Converte a descrição de volta para o nome da categoria original | |
| saida = {} | |
| for desc, score in zip(resultado["labels"], resultado["scores"]): | |
| for categoria, descricao in categorias_descritas.items(): | |
| if desc == descricao: | |
| saida[categoria] = f"{score:.4f}" | |
| break | |
| return saida | |
| # Interface Gradio | |
| import gradio as gr | |
| interface = gr.Interface( | |
| fn=classificar_artigo, | |
| inputs=gr.Textbox(lines=10, label="Digite o conteúdo do artigo"), | |
| outputs=gr.Label(label="Classificação Zero-Shot"), | |
| title="Classificação Zero-Shot de notícias", | |
| description="Este modelo classifica notícias com base em descrições detalhadas das categorias." | |
| ) | |
| interface.launch() |