Search
Close this search box.
Streamlit App para Análise de Sentimentos
aprendiz_artificial

Posts Relacionados:

Explore o poder da análise de sentimentos criando um aplicativo Streamlit de ponta alimentado pela super biblioteca de IA Hugging Face Transformers!

Receba nossa newsletter

A análise de sentimentos é uma técnica de processamento de linguagem natural que envolve a determinação do sentimento ou emoção expressa em um trecho de texto. Seu objetivo é entender se o tom geral de um texto é positivo, negativo ou neutro. Neste post, exploraremos o poder da análise de sentimentos criando um aplicativo Streamlit de ponta alimentado pela super biblioteca de deep learning Hugging Face Transformers!

Streamlit é a biblioteca Python ideal para converter modelos complexos de machine learning, redes neurais e outros algoritmos de inteligência artificial (IA) em aplicativos compartilháveis da web. Evidentemente, Streamlit é facilmente integrada com outras bibliotecas Python, incluindo as principais bibliotecas para IA. Entre as várias bibliotecas de IA, a Hugging Face Transformers é uma das mais poderosas. Ela conta com inúmeros modelos pré-treinados que podem ser usados em diversas aplicações. Portanto, neste post, combinaremos um dos modelos da Hugging Face Transformers com Streamlit para criar um aplicativo de análise de sentimentos simples, mas turbinado.

Bibliotecas

Vamos usar: Streamlit e Hugging Face Transformers. A Hugging Face Transformers precisa também de PyTorch ou TersorFlow para rodar. Nossa opção é pelo PyTorch, mas instale a biblioteca de deep learning que preferir.

Após as instalações, num arquivo Python – que pode se chamar app.py – importe os pacotes necessários.

				
					import streamlit as st
from transformers import pipeline

				
			

O aplicativo

Nosso aplicativo será minimalista. Primeiro, vamos criar um título para nosso app.

				
					st.title("Um App Simples de Análise de Sentimentos com Hugging Face Transformers") 
				
			

Depois, criamos uma área de texto onde os usuários poderão inserir sentenças para serem analisadas.

				
					text = st.text_area("Por favor, escreva sua sentença.")

				
			

Em seguida, incluímos um botão que, quando for clicado, executará a análise de sentimentos.

				
					
if st.button("Análise de Sentimentos"):
    pass
				
			

Antes de executar a análise de sentimentos, é importante testar se nosso app está funcionando corretamente. Salve o arquivo e o execute com o comando: streamlit run app.py. Se seu código não se chama app.py, substitua o nome no comando. Abaixo mostramos nosso resultado.

Hugging Face Transformers para análise de sentimentos

Hugging Face Transformers é uma das bibliotecas mais legais de IA. Ela disponibiliza uma quantidade enorme de modelos pré-treinados que podem ser usados para várias finalidades.

Como já mencionamos antes, para usar um modelo pré-treinado da Hugging Face, é preciso importar a função pipeline e selecionar o nome do modelo que queremos. O nome é obtido na própria página da Hugging Face com o uso de filtros. Os filtros que utilizamos para selecionar o nosso modelo foram dois. Nós buscamos modelos em português que pudessem ser usados para análise de sentimentos.

O modelo que utilizaremos é uma versão destilada do BERT, como já explicamos anteriormente. Como esse é um modelo destilado, ele é super rápido e leve. Ele precisa ser importado antes da definição do nosso botão como mostrado abaixo.

				
					
model = pipeline(model="lxyuan/distilbert-base-multilingual-cased-sentiments-student", top_k=None)
if st.button("Análise de Sentimentos"):
    pass
				
			

Abaixo do botão, a primeira ação será testar o tamanho da sentença para evitar cliques acidentais. Portanto, apague a palavra pass escrita anteriormente e modifique o código como mostrado abaixo.

				
					
if st.button("Análise de Sentimentos"): 
    if len(text) <= 1:
        result = "Por favor, forneça uma sentença."
    st.write(result)
				
			

No caso da sentença ter tamanho maior do que 1, a análise será executada como definido no código abaixo (linha 5).

				
					
if st.button("Análise de Sentimentos"): 
    if len(text) <= 1:
        result = "Por favor, forneça uma sentença."
    else:
        res = model(text)
        result = res
    st.write(result)
				
			

Melhorando a apresentação dos resultados

O código definido acima realiza a análise de sentimentos, mas seu resultado não é intuitivo para um usuário sem familiaridade com modelos de IA. Abaixo mostramos um exemplo de um resultado obtido.

Para tornar os resultados mais amigáveis, iremos calcular uma porcentagem para cada sentimento retornado (positivo, negativo e neutro). Veja no código abaixo, na linha 6, como isso pode ser feito. Além desse cálculo, também substituiremos os nomes dos sentimentos em inglês pelos seus significados em português.

				
					
if st.button("Análise de Sentimentos"): 
    if len(text) <= 1:
        result = "Por favor, forneça uma sentença."
    else:
        res = model(text)
        result = f"A sentença é {round(res[0][0]['score']*100, 2)}% {res[0][0]['label']}, {round(res[0][1]['score']*100, 2)}% {res[0][1]['label']} e {round(res[0][2]['score']*100, 2)}% {res[0][2]['label']}."
        result = result.replace("positive", "positiva")
        result = result.replace("negative", "negativa")
        result = result.replace("neutral", "neutra")
    st.write(result)
				
			

Pronto, nosso aplicativo está concluído! Veja abaixo um exemplo.

Conclusão

Neste post, fizemos um aplicativo super rápido e simples usando duas bibliotecas Python excelentes: Streamlit e Hugging Face Transformers. A Hugging Face Transformers tem inúmeros outros modelos que podem ser usados em aplicativos com várias outras finalidades. Para quem quer refinar o aplicativo que construímos, uma possibilidade é combinar vários modelos para fazer análises diferentes e mais sofisticadas.

Imagem com IA Generativa – Dia 102

IA generativa img102

Arte com IA generativa: imagem do dia

Todos os dias, postamos um exemplo de imagem artística gerada com inteligência artificial.

Tutoriais

Postagens Mais Recentes

Outras Postagens Que Podem Interessar

Veja
Mais

Fique em contato

Se inscreva para receber nossa newsletter com novidades.

aprendiz artificial