Spaces:
Sleeping
Sleeping
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. | |
""") | |