Reconhecimento de Emoções em Relatórios Financeiros usando Sentence-BERT (Pesquisa)

Descrição do post.

7/8/20266 min read

Reconhecimento de Emoções em Relatórios Financeiros usando Sentence-BERT (Pesquisa)

Python | Processamento de Linguagem Natural (NLP) | Pesquisa Acadêmica

Introdução

Esse tipo de análise pode contribuir para estudos sobre transparência corporativa, gerenciamento de impressão e comunicação financeira.

Este projeto usa técnicas de Processamento de Linguagem Natural (NLP) para investigar como empresas brasileiras alteram a linguagem de seus relatórios financeiros após a divulgação de más notícias. O objetivo foi identificar a emoção predominante em notas explicativas de 50 empresas de capital aberto.

Para isso, foi aplicada uma abordagem lexical em que o reconhecimento das emoções é feito a partir de uma lista de palavras-chaves associadas a cada emoção. Os textos foram representados por meio de embeddings gerados pela arquitetura Sentence-BERT e a emoção predominante foi determinada a partir da similaridade cosseno entre os vetores.

Por que utilizar o Sentence-BERT?

A maioria dos trabalhos em análise textual financeira utiliza modelos baseados em frequência de palavras (Bag-of-Words ou TF-IDF). Neste projeto foi utilizado o Sentence-BERT, um modelo baseado em Transformers capaz de gerar embeddings contextuais.

Isso permite representar uma mesma palavra de maneiras diferentes dependendo do contexto em que aparece, tornando a comparação entre textos muito mais robusta do que abordagens tradicionais como Word2Vec ou contagem simples de palavras.

Por exemplo, em duas frases contendo a palavra "capital", o SBERT gera vetores distintos de acordo com o contexto, enquanto o Word2Vec atribui um único vetor, independentemente do significado.

Figura - Exemplo de Embeddings: SBERT (contextual) vs WordVec (Semântico)

Dataset

O dicionário de emoções (léxico) contém 1.004 termos distribuídos em seis categorias emocionais: Alegria (301), Medo (155), Raiva (136), Repugnância (109), Surpresa (70) e Tristeza (233).

O conjunto de dados é composto por 149 notas explicativas de 50 empresas de capital aberto, divididos em 3 períodos:

  • t: Ano da má notícia

  • t-1: Ano anterior a má notícia

  • t+2: 2 anos após a má notícia

Tecnologias e Técnicas Utilizadas

Linguagem

  • Python

Principais Técnicas Aplicadas

  • Processamento de Linguagem Natural (NLP)

  • Sentence-BERT (SBERT) e geração de embeddings

  • Similaridade Cosseno

  • Classificação de emoções baseada em léxico

Pipeline do projeto

Etapa 1: Coleta e Limpeza dos Relatórios

Os relatórios foram coletados nos sites das empresas e da B3, convertidos para texto e submetidos a uma etapa de limpeza que removeu tabelas, cabeçalhos, rodapés e outros elementos não textuais antes da análise.

Figura – Antes e depois da limpeza dos relatórios

Etapa 2: Análise Descritiva

Usando as bibliotecas NLTK e Spacy, descobriu-se a quantidade de alguns elementos textuais, como número de palavras e sentenças.

Etapa 3: Criação dos embeddings

A representação vetorial dos textos foi realizada com a arquitetura SBERT. O modelo adotado foi o paraphrase-multilingual MiniLM-L12-v2 da biblioteca SentenceTransformers. Ao aplicar o modelo, cada relatório foi transformado em um embedding e os termos de cada emoção foram convertidos em um único embending.

Figura – Transformação de texto em embedding, de forma ilustrada

Etapa 4: Similaridade Cosseno

A similaridade cosseno foi utilizada para medir a proximidade entre o embedding de cada relatório e os embeddings das seis emoções. A emoção com maior similaridade foi considerada predominante.

Figura – Ilustração do cálculo da similaridade cosseno

Resultado

Gráfico Emoções Predominantes nos Relatórios

Predominância de emoções negativas

Foram identificadas quatro emoções predominantes: Repugnância, Raiva, Medo e Surpresa, indicando predominância de emoções negativas nos relatórios analisados.

Gráficos Variação na Contagem das emoções em t e t+2, em relação a t-1

Mudanças no discurso corporativo

  • 88% das empresas alteraram a emoção predominante entre os períodos analisados.

  • As maiores mudanças ocorreram entre empresas inicialmente classificadas com medo e raiva.

  • A emoção Repugnância apresentou maior estabilidade, sugerindo um padrão consistente de comunicação negativa.

Gráficos – Análise Descritiva

Relatórios mais difíceis de serem lidos

Após as más notícias, os relatórios passaram a apresentar:

  • maior quantidade de palavras

  • sentenças mais longas

  • maior complexidade textual

Esse padrão aumenta o esforço congnitivo para extrair informações, dificultando a interpretação e a tomada de decisão. E segunda a literatura, essa seria uma maneira de ofuscar as informações relacionadas a má notícia (BLOOMFIELD, 2002, p. 7- 8).

Interpretação do Resultado

Os resultados sugerem que empresas não modificam apenas o conteúdo divulgado após uma má notícia, mas também a forma como comunicam essas informações. Sendo uma estratégia compatível com o gerenciamento de impressão, no qual organizações ajustam a linguagem utilizada em seus relatórios para influenciar a percepção dos leitores (GINER-SOROLLA ET AL., 2018).

Limitações e trabalhos futuros

  • A amostra contempla apenas 149 relatórios financeiros.

  • Estudos futuros podem ampliar o conjunto de empresas e períodos analisados.

  • Com uma base maior, seria possível aplicar modelos estatísticos e de aprendizado de máquina para investigar a relação entre emoções, tipo de má notícia e gerenciamento de impressões.

Apêndice: Como funciona o SBERT?

Onde,

  • u: embedding da sentença A

  • v: embedding da sentença B

O SBERT opera em cinco etapas principais (REIMERS; GUREVYCH, 2019):

As sentenças A e B são inseridas em dois modelos BERT idênticos com pesos compartilhados.

  1. Cada cópia do modelo BERT gera uma sequência de embeddings contextuais, um para cada token. Ou seja, ele não produz um único vetor para a frase inteira, mas sim um vetor (embedding) para cada token da sentença.

  2. Em seguida, uma camada de pooling transforma os vetores de saída do BERT em um único vetor de tamanho fixo. Isso pode ser feito calculando a média (mean pooling) ou o valor máximo (max pooling) dos vetores de todos os tokens da sentença.

  3. Esses vetores de tamanho fixo são os embeddings u e v (REIMERS; GUREVYCH, 2019).

  4. Os vetores resultantes são utilizados para calcular a similaridade de cosseno das sentenças A e B. A arquitetura usa uma função objetiva de regressão que resulta em uma saída entre -1 e 1 (REIMERS; GUREVYCH, 2019)

Figura – Arquitetura SBERT para calcular pontuações de similaridade

O SBERT é um modelo usado para pesquisa semântica e tarefas não supervisionadas, como agrupamento. Ele é uma modificação do modelo BERT que emprega estruturas de rede siamesas para derivar embeddings de frases (ou vetores de frases). Isso reduz o tempo de cálculo da similaridade de cosseno (REIMERS; GUREVYCH, 2019).

Uma rede siamesa é um tipo especial de rede neural na qual duas redes idênticas tem os mesmos pesos (REIMERS; GUREVYCH, 2019). Elas são usadas lado a lado para comparar dois elementos.

Referências

BLOOMFIELD, R. J. The “Incomplete Revelation Hypothesis” and Financial Reporting. SSRN Electronic Journal, 2002. Disponível em: https://papers.ssrn.com/sol3/papers.cfm?abstract_id=312671 Acesso em: 20 mai. 2023

GINER-SOROLLA, R. et al. What Makes Moral Disgust Special? An Integrative Functional Review. Advances in Experimental Social Psychology, v. 57, p. 223–289, 2018. Disponível em: https://www.sciencedirect.com/science/article/pii/S0065260117300357# . Acesso em: 16 abr. 2025.

REIMERS, N.; GUREVYCH, I. Sentence-BERT: Sentence embeddings using Siamese BERT-networks. arXiv preprint arXiv:1908.10084, 2019. Disponível em: https://arxiv.org/abs/1908.10084 . Acesso em 06 mar. 2025

Contato

Obrigada pela visita! Fique à vontade para entrar em contato, será um prazer te responder.

Copyright © 2025 - 2026. Catarina Aguiar. Todos os direitos reservados.