File size: 2,801 Bytes
b5e1606
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
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.
    """)