Spaces:
Sleeping
Sleeping
| import gradio as gr | |
| import numpy as np | |
| # Apenas importa as bibliotecas necessárias para a interface | |
| # As importações de joblib e os/os.path foram removidas, pois não são mais necessárias | |
| # Dicionários de palavras para a lógica de classificação simples | |
| PALAVRAS_POSITIVAS = ["bom", "ótimo", "excelente", "adorei", "perfeito", "recomendo"] | |
| PALAVRAS_NEGATIVAS = ["ruim", "péssimo", "decepção", "terrível", "não gostei", "horrível"] | |
| # Removemos a variável MODEL_PATH e a tentativa de carregar o modelo. | |
| # O baseline agora é implicitamente None, mas a função abaixo lidará com a previsão. | |
| def predict_sentiment(text: str): | |
| """ | |
| Simula a previsão de sentimento baseada em palavras-chave (dummy). | |
| """ | |
| if not text or text.strip() == "": | |
| return {"predição": "n/a", "confiança": 0.0} | |
| # Prepara o texto para análise | |
| texto_lower = text.lower() | |
| # 1. Contagem de palavras positivas e negativas | |
| pontos_pos = sum(1 for palavra in PALAVRAS_POSITIVAS if palavra in texto_lower) | |
| pontos_neg = sum(1 for palavra in PALAVRAS_NEGATIVAS if palavra in texto_lower) | |
| # 2. Lógica de Decisão | |
| if pontos_pos > pontos_neg: | |
| label = "positivo" | |
| # Confiança simples, baseada na diferença de pontos | |
| conf = float(0.5 + min(0.49, (pontos_pos - pontos_neg) * 0.1)) | |
| elif pontos_neg > pontos_pos: | |
| label = "negativo" | |
| conf = float(0.5 + min(0.49, (pontos_neg - pontos_pos) * 0.1)) | |
| else: | |
| # Neutro ou palavras não encontradas | |
| label = "n/a (neutro ou ambíguo)" | |
| conf = 0.5 | |
| return {"predição": label, "confiança": round(conf, 4)} | |
| demo = gr.Interface( | |
| fn=predict_sentiment, | |
| inputs=gr.Textbox(label="Digite uma avaliação de produto"), | |
| outputs=gr.JSON(label="Resultado"), | |
| title="Análise de Sentimentos (Simulada - Sem Modelo)", | |
| description="Este aplicativo roda sem o baseline_pipe.pkl, usando uma classificação simples por palavras-chave." | |
| ) | |
| if __name__ == "__main__": | |
| demo.launch() |