DHEIVER's picture
Create app.py
b5e1606 verified
import streamlit as st
from textblob import TextBlob
import matplotlib.pyplot as plt
import seaborn as sns
# Configurações do Streamlit
st.set_page_config(page_title="Analisador de Sentimentos", layout="wide")
st.title("Analisador de Sentimentos")
st.markdown("""
Este aplicativo analisa o sentimento de um texto inserido.
Utiliza a biblioteca **TextBlob** para identificar sentimentos positivos, negativos e neutros.
""")
# Função para realizar a análise de sentimentos
def analise_sentimento(texto):
blob = TextBlob(texto)
sentimento = blob.sentiment.polarity
if sentimento > 0:
return "Positivo", sentimento
elif sentimento < 0:
return "Negativo", sentimento
else:
return "Neutro", sentimento
# Área de entrada de texto
texto = st.text_area("Digite o texto para análise", height=150)
# Botão de análise
if st.button("Analisar Sentimento"):
if texto:
sentimento, polaridade = analise_sentimento(texto)
# Exibe o sentimento e a polaridade
st.write(f"**Sentimento Detectado**: {sentimento}")
st.write(f"**Polaridade**: {polaridade:.2f}")
# Gráfico de Sentimento
fig, ax = plt.subplots(figsize=(6, 4))
sns.barplot(x=["Sentimento"], y=[polaridade], palette="coolwarm", ax=ax)
ax.set_ylim(-1, 1)
ax.set_ylabel("Polaridade")
ax.set_title("Sentimento do Texto")
st.pyplot(fig)
# Exibe um feedback mais detalhado com base na polaridade
if polaridade > 0:
st.success("O sentimento é positivo. Parece que o texto é otimista!")
elif polaridade < 0:
st.error("O sentimento é negativo. Parece que o texto tem uma conotação ruim.")
else:
st.warning("O sentimento é neutro. Não há uma opinião clara no texto.")
else:
st.warning("Por favor, insira um texto para análise.")
# Adicionar uma sessão com algumas informações adicionais
st.markdown("""
### Como funciona:
O modelo analisa a polaridade do texto inserido.
- Se a polaridade for maior que 0, o sentimento é considerado **positivo**.
- Se for menor que 0, o sentimento é **negativo**.
- Se for igual a 0, o sentimento é **neutro**.
""")
# Opção para exibir informações sobre o TextBlob
if st.checkbox("Mostrar detalhes sobre a biblioteca TextBlob"):
st.markdown("""
**TextBlob** é uma biblioteca de processamento de linguagem natural (NLP) em Python.
Ela oferece uma maneira simples de fazer tarefas como análise de sentimentos, tradução, correção ortográfica, e mais.
A análise de sentimentos feita pelo TextBlob é baseada na polaridade do texto, onde valores positivos indicam sentimentos bons e valores negativos indicam sentimentos ruins.
""")