Spaces:
Sleeping
Sleeping
Create app.py
Browse files
app.py
ADDED
@@ -0,0 +1,70 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
import streamlit as st
|
2 |
+
from textblob import TextBlob
|
3 |
+
import matplotlib.pyplot as plt
|
4 |
+
import seaborn as sns
|
5 |
+
|
6 |
+
# Configurações do Streamlit
|
7 |
+
st.set_page_config(page_title="Analisador de Sentimentos", layout="wide")
|
8 |
+
st.title("Analisador de Sentimentos")
|
9 |
+
st.markdown("""
|
10 |
+
Este aplicativo analisa o sentimento de um texto inserido.
|
11 |
+
Utiliza a biblioteca **TextBlob** para identificar sentimentos positivos, negativos e neutros.
|
12 |
+
""")
|
13 |
+
|
14 |
+
# Função para realizar a análise de sentimentos
|
15 |
+
def analise_sentimento(texto):
|
16 |
+
blob = TextBlob(texto)
|
17 |
+
sentimento = blob.sentiment.polarity
|
18 |
+
if sentimento > 0:
|
19 |
+
return "Positivo", sentimento
|
20 |
+
elif sentimento < 0:
|
21 |
+
return "Negativo", sentimento
|
22 |
+
else:
|
23 |
+
return "Neutro", sentimento
|
24 |
+
|
25 |
+
# Área de entrada de texto
|
26 |
+
texto = st.text_area("Digite o texto para análise", height=150)
|
27 |
+
|
28 |
+
# Botão de análise
|
29 |
+
if st.button("Analisar Sentimento"):
|
30 |
+
if texto:
|
31 |
+
sentimento, polaridade = analise_sentimento(texto)
|
32 |
+
|
33 |
+
# Exibe o sentimento e a polaridade
|
34 |
+
st.write(f"**Sentimento Detectado**: {sentimento}")
|
35 |
+
st.write(f"**Polaridade**: {polaridade:.2f}")
|
36 |
+
|
37 |
+
# Gráfico de Sentimento
|
38 |
+
fig, ax = plt.subplots(figsize=(6, 4))
|
39 |
+
sns.barplot(x=["Sentimento"], y=[polaridade], palette="coolwarm", ax=ax)
|
40 |
+
ax.set_ylim(-1, 1)
|
41 |
+
ax.set_ylabel("Polaridade")
|
42 |
+
ax.set_title("Sentimento do Texto")
|
43 |
+
st.pyplot(fig)
|
44 |
+
|
45 |
+
# Exibe um feedback mais detalhado com base na polaridade
|
46 |
+
if polaridade > 0:
|
47 |
+
st.success("O sentimento é positivo. Parece que o texto é otimista!")
|
48 |
+
elif polaridade < 0:
|
49 |
+
st.error("O sentimento é negativo. Parece que o texto tem uma conotação ruim.")
|
50 |
+
else:
|
51 |
+
st.warning("O sentimento é neutro. Não há uma opinião clara no texto.")
|
52 |
+
else:
|
53 |
+
st.warning("Por favor, insira um texto para análise.")
|
54 |
+
|
55 |
+
# Adicionar uma sessão com algumas informações adicionais
|
56 |
+
st.markdown("""
|
57 |
+
### Como funciona:
|
58 |
+
O modelo analisa a polaridade do texto inserido.
|
59 |
+
- Se a polaridade for maior que 0, o sentimento é considerado **positivo**.
|
60 |
+
- Se for menor que 0, o sentimento é **negativo**.
|
61 |
+
- Se for igual a 0, o sentimento é **neutro**.
|
62 |
+
""")
|
63 |
+
|
64 |
+
# Opção para exibir informações sobre o TextBlob
|
65 |
+
if st.checkbox("Mostrar detalhes sobre a biblioteca TextBlob"):
|
66 |
+
st.markdown("""
|
67 |
+
**TextBlob** é uma biblioteca de processamento de linguagem natural (NLP) em Python.
|
68 |
+
Ela oferece uma maneira simples de fazer tarefas como análise de sentimentos, tradução, correção ortográfica, e mais.
|
69 |
+
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.
|
70 |
+
""")
|