CentralBank-AI-Sentiment: Sentence-level sentiment for central-bank AI discourse

Task: 3-class sentiment (positive / negative / neutral)
Base encoder: CentralBank-BERT

CentralBank-AI-Sentiment classifies the tone of AI-related sentences written in the style of central banks (BIS speeches, monetary policy, prudential supervision). It is fine-tuned on manually labeled sentences extracted from BIS speeches (1996–2025), leveraging domain adaptation from CentralBank-BERT.

Labels: 0 = Positive, 1 = Negative, 2 = Neutral

Data & splits

  • Source: BIS central-bank speeches (1996–2025), AI-related subset
  • Size: 1,897 labeled sentences
  • Class distribution: positive 842, neutral 808, negative 247
  • Splitting: stratified random split with fixed seed (42): Train (70%) = 1,327, Validation (15%) = 285, Test (15%) = 285

Training setup

  • Base: CentralBank-BERT (domain-adapted BERT-base)
  • Head: 3-way linear classifier
  • Tokenization: max_length = 128 (covers ~97.5% of sentences)
  • Loss: Weighted cross-entropy with class weights (positive = 0.75, negative = 2.56, neutral = 0.78)
  • Optimization: AdamW, learning rate = 2e-5, weight decay = 0.01
  • Batch size: 16
  • Epochs: up to 10, with early stopping (patience = 3, best model at epoch 6) on validation macro-F1
  • Hardware: Google Colab GPU (Tesla T4)

Evaluation

Model Accuracy Macro-F1 F1-Pos F1-Neg F1-Neu
CentralBank-AI-Sentiment 0.804 0.790 0.84 0.75 0.78
bert-base-uncased (fine-tuned) 0.793 0.789 0.81 0.78 0.79
Loughran–McDonald (lexicon) 0.556 0.523 0.55 0.40 0.61
ProsusAI/FinBERT (zero-shot) 0.538 0.475 0.45 0.36 0.61
  • The fine-tuned CentralBank-AI-Sentiment model achieves the best overall performance, with Accuracy = 80.4% and Macro-F1 = 0.79.
  • Compared to a vanilla bert-base-uncased trained on the same data, the domain-adapted CentralBank-BERT backbone provides a modest but consistent lift, especially in stability across classes.
  • Both FinBERT and Loughran–McDonald baselines underperform significantly due to mismatch with central-bank AI discourse.

Project GitHub Repository

The complete reproducible workflow, including the FinAI dictionary, dictionary-based tagging, AI sentence classification, sentiment analysis, and structural topic modeling, is available on GitHub:

CentralBank-AI: https://github.com/bilalezafar/CentralBank-AI


Usage

# Load model 
from transformers import AutoTokenizer, AutoModelForSequenceClassification

tokenizer = AutoTokenizer.from_pretrained("bilalzafar/CentralBank-AI-Sentiment")
model = AutoModelForSequenceClassification.from_pretrained("bilalzafar/CentralBank-AI-Sentiment")

# Example text
text = "Artificial intelligence introduces systemic risks if left unregulated."

# Print prediction
print(clf(text)[0])

# Example output: {'label': 'negative', 'score': 0.9915748238563538}

Citation

Please cite as: Zafar, M. B., Ali, H., & Aysan, A. F. (2026). Signals from the Noise: Decoding Global AI Discourse in Central Bank Communications. Central Bank Review, Article 100268. https://doi.org/10.1016/j.cbrev.2026.100268

@article{zafar2026signals,
  title   = {Signals from the Noise: Decoding Global AI Discourse in Central Bank Communications},
  author  = {Zafar, Muhammad Bilal and Ali, Hassnian and Aysan, Ahmet Faruk},
  year    = {2026},
  journal = {Central Bank Review},
  pages   = {100268},
  doi     = {10.1016/j.cbrev.2026.100268},
  url     = {https://doi.org/10.1016/j.cbrev.2026.100268}
}

Downloads last month
38
Safetensors
Model size
0.1B params
Tensor type
F32
·
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support

Model tree for bilalzafar/CentralBank-AI-Sentiment

Finetuned
(9)
this model