Introdução
A comunicação dos bancos centrais é uma ferramenta de política monetária por si só. As atas das reuniões do Comitê de Política Monetária (Copom) do Banco Central do Brasil (BCB) são documentos densos, onde a escolha de cada palavra — "cautela", "parcimônia", "vigilância" — carrega um sinal sobre a direção futura da taxa Selic. Analistas de mercado dedicam horas para decifrar essa linguagem, buscando antecipar os próximos passos do comitê.
E se pudéssemos automatizar essa leitura, transformando o texto subjetivo em um indicador quantitativo? Este exercício demonstra como utilizar LLMs, como o Gemini do Google, para construir um Índice de Tom das atas do Copom. O objetivo é criar um indicador que não apenas mede o sentimento (hawkish vs. dovish), mas o expressa em unidades diretamente comparáveis à própria taxa Selic.
O Estado da Arte: LLMs na Análise de Comunicação de Bancos Centrais
A aplicação de Processamento de Linguagem Natural (PLN) para analisar textos de bancos centrais não é nova, mas a chegada dos LLMs representa um avanço relevante em capacidade analítica. Enquanto métodos tradicionais se baseavam em dicionários de palavras — como Loughran & McDonald (2011), que contam termos hawkish e dovish —, os LLMs conseguem interpretar contexto, semântica e nuances do discurso, permitindo uma leitura mais próxima da interpretação econômica real.
Nosso exercício se insere nessa fronteira ao criar um pipeline reprodutível em Python, utilizando LangChain e modelos generativos para transformar texto de política monetária em dados quantitativos.
Metodologia e Dados
O processo foi estruturado em três etapas principais, demonstrando a capacidade do Python em orquestrar desde a coleta de dados até a modelagem estatística e visualização.
1. Coleta e Pré-processamento de Dados O primeiro passo foi construir um coletor de dados automatizado. Utilizando a biblioteca requests, o código acessa diretamente as APIs públicas do BCB para baixar o conteúdo de todas as atas do Copom desde a reunião 232 (agosto de 2020) e a série histórica da meta Selic. Para otimizar a análise pelo LLM, aplicamos um pré-processamento inteligente:
- Limpeza de HTML: Removemos todas as tags HTML, notas de rodapé e espaços excessivos, transformando o documento em texto puro.
- Extração de Seções Relevantes: O sinal informacional de uma ata concentra-se nas seções de diagnóstico da conjuntura (Seção A) e balanço de riscos (Seção B). As seções seguintes, que anunciam a decisão já conhecida, são menos informativas. O código isola apenas as seções A e B, reduzindo em cerca de 50% o número de tokens enviados ao modelo sem perda de informação relevante.
2. Geração do Score Bruto via LLM (Engenharia de Prompt) Esta é a etapa central. Utilizando o modelo gemini-flash-lite-latest através do LangChain, desenvolvemos um prompt altamente especializado. O modelo recebe a persona de um "economista sênior do BCB" e uma escala de pontuação detalhada, que vai de -3.0 (fortemente dovish) a +3.0 (fortemente hawkish). O prompt inclui âncoras explícitas para cada faixa de score (ex: "-2.0: balanço de riscos assimétrico para baixo; desinflação clara") e a instrução crucial de ignorar a decisão da taxa já anunciada, focando apenas no tom implícito do texto.
Para garantir a robustez da saída, utilizamos a funcionalidade de saída estruturada (Pydantic). O LLM é forçado a retornar sua resposta em um formato JSON pré-definido, contendo apenas um número float. Isso elimina a necessidade de parsing frágil de texto e garante que o resultado seja diretamente utilizável.
3. Calibração OLS em Unidades da Selic O score bruto do LLM (de -3 a +3) é qualitativo. Para dar-lhe um significado econômico, calibramos o índice. Estimamos uma regressão linear simples (OLS) onde a variável dependente é a variação da Selic em cada reunião (em pontos percentuais) e a variável explicativa é o score bruto gerado pelo LLM.
Análise dos Resultados
Neste primeiro gráfico temos o índice calibrado (linha vermelha) contra a variação efetiva da Selic em cada reunião (pontos em formato de diamante). A correlação visual é notável. O índice conseguiu capturar com precisão os grandes ciclos de política monetária:
Surpresa de Comunicação (Z-Score)
No segundo gráfico temos a "surpresa" do tom de cada ata. Ele calcula o desvio do score de cada reunião em relação à média histórica, expresso em desvios-padrão (z-score). Pontos acima de zero indicam uma comunicação mais hawkish que o esperado, enquanto pontos abaixo de zero indicam um tom mais dovish. Este gráfico é útil para identificar reuniões onde o Copom sinalizou uma mudança de rota inesperada, gerando surpresa no mercado.
Conclusão
Este exercício demonstra que a aplicação de LLMs na análise de política monetária é não apenas viável, mas extremamente poderosa. O pipeline construído em Python permitiu transformar textos complexos e subjetivos em um indicador quantitativo, tempestivo e economicamente interpretável.
A capacidade de automatizar a coleta de dados, aplicar engenharia de prompt sofisticada e calibrar os resultados via modelos estatísticos em um único ambiente de programação oferece aos economistas e analistas de mercado uma ferramenta de ponta para o monitoramento da conjuntura. O Índice de Tom do Copom, quando bem construído, pode servir como um indicador antecedente valioso para a formulação de cenários e estratégias de investimento.
Referências
CARUSO, L. Índice de Tom do Copom com LLMs. São Paulo: Santander Brasil, 2026.
HANSEN, S.; KAZINNIK, S. Can ChatGPT Decipher Fedspeak? Richmond: Federal Reserve Bank of Richmond, 2023. (SSRN Working Paper n. 4399406). Disponível em: https://papers.ssrn.com/sol3/papers.cfm?abstract_id=4399406. Acesso em: 14 abr. 2026.
HANSEN, S.; McMAHON, M. Shocking language: understanding the macroeconomic effects of central bank communication. Journal of International Economics, v. 99, supl. 1, p. S114–S133, 2016. DOI: 10.1016/j.jinteco.2015.12.008.
