DHEIVER commited on
Commit
b5e1606
·
verified ·
1 Parent(s): 0f44127

Create app.py

Browse files
Files changed (1) hide show
  1. app.py +70 -0
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
+ """)