|
--- |
|
language: |
|
- en |
|
base_model: |
|
- google-bert/bert-large-uncased |
|
pipeline_tag: text-classification |
|
tags: |
|
- central_bank_communication |
|
- central_bank |
|
- economics |
|
- hawkish |
|
- dovish |
|
--- |
|
|
|
# CBSI-BERT Models |
|
|
|
This model is trained on the replication data of [Nițoi et al. (2023)](https://dataverse.harvard.edu/dataset.xhtml?persistentId=doi:10.7910/DVN/40JFEK). |
|
Check out their [paper](https://www.sciencedirect.com/science/article/abs/pii/S2214635023000230) and [website](https://sites.google.com/view/bert-cbsi/) for more information. |
|
|
|
The model is trained with the hyperparameters used by [Nițoi et al. (2023)](https://www.sciencedirect.com/science/article/abs/pii/S2214635023000230). |
|
In addition, different hyperparameters, seeds, and reinitialization of the first L layers were tested. The performance seems relatively stable across hyperparameter settings. |
|
|
|
Alongside these models, FinBERT, different versions of RoBERTa, and EconBERT were tested. The performance of the BERT-based models reported here is significantly better. In addition, fine-tuned [ModernBERT](https://huggingface.co/docs/transformers/main/en/model_doc/modernbert) and [CentralBank-BERT](https://huggingface.co/bilalzafar/CentralBank-BERT) versions are also available. |
|
|
|
## Results |
|
|
|
| Model | F1 Score | Accuracy | Loss | |
|
|------------------------------------------------------------------------|----------|----------|------| |
|
| [CBSI-bert-base-uncased](https://huggingface.co/brjoey/CBSI-bert-base-uncased) | 0.88 | 0.88 | 0.49 | |
|
| [CBSI-bert-large-uncased](https://huggingface.co/brjoey/CBSI-bert-large-uncased) | 0.92 | 0.92 | 0.45 | |
|
| [CBSI-ModernBERT-base](https://huggingface.co/brjoey/CBSI-ModernBERT-base) | 0.93 | 0.93 | 0.40 | |
|
| [CBSI-ModernBERT-large](https://huggingface.co/brjoey/CBSI-ModernBERT-large) | 0.91 | 0.91 | 0.53 | |
|
| [CBSI-CentralBank-BERT](https://huggingface.co/brjoey/CBSI-CentralBank-BERT) | 0.92 | 0.92 |0.36 | |
|
|
|
## How to use |
|
|
|
```python |
|
import pandas as pd |
|
from transformers import AutoTokenizer, AutoModelForSequenceClassification, pipeline |
|
|
|
# Load model and tokenizer |
|
model_name = "brjoey/CBSI-bert-large-uncased" |
|
classifier = pipeline( |
|
"text-classification", |
|
model=model_name, |
|
tokenizer=model_name |
|
) |
|
|
|
# Define label mapping |
|
cbsi_label_map = { |
|
0: "neutral", |
|
1: "dovish", |
|
2: "hawkish" |
|
} |
|
|
|
# Classify a column in a Pandas DataFrame - replace with your DataFrame |
|
texts = [ |
|
"The Governing Council decided to lower interest rates.", |
|
"The central bank will maintain its current policy stance." |
|
] |
|
|
|
df = pd.DataFrame({ |
|
"text": texts |
|
}) |
|
|
|
# Run classification |
|
predictions = classifier( |
|
df["text"].tolist() |
|
) |
|
|
|
# Store the results |
|
df["label"], df["score"] = zip(*[ |
|
(cbsi_label_map[int(pred["label"].split("_")[-1])], pred["score"]) |
|
for pred in predictions |
|
]) |
|
|
|
print("\n === Results ===\n") |
|
print(df[["text", "label", "score"]]) |
|
``` |
|
--- |
|
# Citation |
|
If you use this model, please cite: \ |
|
Data:\ |
|
Nițoi Mihai; Pochea Maria-Miruna; Radu Ștefan-Constantin, 2023, \ |
|
"Replication Data for: Unveiling the sentiment behind central bank narratives: A novel deep learning index", \ |
|
https://doi.org/10.7910/DVN/40JFEK, Harvard Dataverse, V1 |
|
|
|
Paper: \ |
|
Mihai Niţoi, Maria-Miruna Pochea, Ştefan-Constantin Radu, \ |
|
Unveiling the sentiment behind central bank narratives: A novel deep learning index, \ |
|
Journal of Behavioral and Experimental Finance, Volume 38, 2023, 100809, ISSN 2214-6350. \ |
|
https://doi.org/10.1016/j.jbef.2023.100809 |
|
|
|
BERT: \ |
|
Devlin, J., Chang, M.-W., Lee, K., & Toutanova, K. (2019). BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding. arXiv:1810.04805. |
|
https://arxiv.org/abs/1810.04805 |