Instructions to use bilalzafar/CentralBank-AI-Sentiment with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Transformers
How to use bilalzafar/CentralBank-AI-Sentiment with Transformers:
# Use a pipeline as a high-level helper from transformers import pipeline pipe = pipeline("text-classification", model="bilalzafar/CentralBank-AI-Sentiment")# Load model directly from transformers import AutoTokenizer, AutoModelForSequenceClassification tokenizer = AutoTokenizer.from_pretrained("bilalzafar/CentralBank-AI-Sentiment") model = AutoModelForSequenceClassification.from_pretrained("bilalzafar/CentralBank-AI-Sentiment", device_map="auto") - Notebooks
- Google Colab
- Kaggle
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-uncasedtrained 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
Model tree for bilalzafar/CentralBank-AI-Sentiment
Base model
google-bert/bert-base-uncased