Mundo em Python

Simulador de Sentimentos

from tkinter import *

positivas = [
"bom", "ótimo", "maravilhoso", "feliz", "excelente", "adoro", "gosto",
"alegre", "satisfeito", "incrível", "fantástico", "positivo", "animado",
"perfeito", "legal", "agradável", "divertido", "esperança", "grato",
"abençoado", "amável", "carinhoso", "gentil", "inteligente", "sucesso",
"vitória", "conquista", "amor", "paz", "tranquilo", "orgulhoso",
"realizado", "respeito", "felicidade", "sortudo", "forte", "motivado"
] negativas = [
"ruim", "péssimo", "horrível", "triste", "odeio", "raiva", "chato",
"mau", "irritado", "cansado", "negativo", "fracasso", "insucesso",
"nervoso", "raivoso", "desastre", "infeliz", "decepcionado", "medo",
"ansioso", "preocupado", "inseguro", "doente", "sofrimento", "dor",
"depressivo", "mentira", "covarde", "problema", "culpa", "erro",
"desanimado", "horrendo", "repugnante", "detesto", "lixo", "morte"
] negacoes = ["não", "nunca", "jamais", "sem", "nem"] # --- Janela principal ---
root = Tk()
root.geometry("700x400")
root.resizable(0, 0)
root.config(bg="#103030")
root.title("Simulador de Sentimentos") # --- Título ---
titulo = Label(
text="Simulador de Sentimentos",
font=("Arial", 28, "bold"),
bg="#103030",
fg="#49e3e3"
)
titulo.place(relx=0.15, rely=0.05) texto_sub1 = Label(
text="Texto:",
font=("Arial", 18, "bold"),
bg="#103030",
fg="#49e3e3"
)
texto_sub1.place(relx=0.2, rely=0.32) Texto = StringVar()
Texto_entrada = Entry(
textvariable=Texto,
font=("Arial", 12, "bold"),
bg="white",
fg="blue",
justify='center'
)
Texto_entrada.place(relx=0.45, rely=0.33, relwidth=0.35) # --- Label do resultado ---
resultado_texto = Label(
text="",
font=("Arial", 12, "bold"),
bg="#cfe2f3"
)
resultado_texto.place(relx=0.05, rely=0.7, relwidth=0.9, relheight=0.2) def limpar():
Texto_entrada.delete(0, END)
resultado_texto.config(text="") def app():
texto = Texto.get().lower()
palavras = texto.split() pontos = 0
negacao_contador = 0

for palavra in palavras:
if palavra in negacoes:
negacao_contador = 3 # Negação afeta próximas 3 palavras
continue

if palavra in positivas:
if negacao_contador > 0:
pontos -= 1
else:
pontos += 1
elif palavra in negativas:
if negacao_contador > 0:
pontos += 1
else:
pontos -= 1

if negacao_contador > 0:
negacao_contador -= 1

if pontos > 0:
sentimento = "Positivo "
elif pontos < 0:
sentimento = "Negativo "
else:
sentimento = "Neutro "

resultado_texto.config(text=f"Sentimento detectado: {sentimento}\nPontuação: {pontos}", bg="#cfe2f3") but1 = Button(
text="Mostrar",
bd=2,
bg='#107db2',
fg='white',
font=('verdana', 12, 'bold'),
command=app
)
but1.place(relx=0.1, rely=0.5, relwidth=0.25, relheight=0.1) but_limpar = Button(
text="Limpar",
bd=2,
bg='#107db2',
fg='white',
font=('verdana', 12, 'bold'),
command=limpar
)
but_limpar.place(relx=0.4, rely=0.5, relwidth=0.25, relheight=0.1) but_sair = Button(
text="Sair",
bd=2,
bg='#107db2',
fg='white',
font=('verdana', 12, 'bold'),
command=root.destroy
)
but_sair.place(relx=0.7, rely=0.5, relwidth=0.25, relheight=0.1) root.mainloop()
0