5roop's picture
Corrected examples.
4bfc89d
---
language: "hr"
tags:
- text-classification
- sentiment-analysis
widget:
- text: "Poštovani potpredsjedničke Vlade i ministre hrvatskih branitelja, mislite li da ste zapravo iznevjerili svoje suborce s kojima ste 555 dana prosvjedovali u šatoru protiv tadašnjih dužnosnika jer ste zapravo donijeli zakon koji je neprovediv, a birali ste si suradnike koji nemaju etički integritet."
---
# bcms-bertic-parlasent-bcs-ter
Ternary text classification model based on [`classla/bcms-bertic`](https://huggingface.co/classla/bcms-bertic) and fine-tuned on the BCS Political Sentiment dataset (sentence-level data).
This classifier classifies text into only three categories: Negative, Neutral, and Positive. For the binary classifier (Negative, Other) check [this model](https://huggingface.co/classla/bcms-bertic-parlasent-bcs-bi ).
For details on the dataset and the finetuning procedure, please see [this paper](https://arxiv.org/abs/2206.00929).
## Fine-tuning hyperparameters
Fine-tuning was performed with `simpletransformers`. Beforehand a brief sweep for the optimal number of epochs was performed and the presumed best value was 9. Other arguments were kept default.
```python
model_args = {
"num_train_epochs": 9
}
```
## Performance
The same pipeline was run with two other transformer models and `fasttext` for comparison. Macro F1 scores were recorded for each of the 6 fine-tuning sessions and post festum analyzed.
| model | average macro F1 |
|---------------------------------|--------------------|
| bcms-bertic-parlasent-bcs-ter | 0.7941 ± 0.0101 ** |
| EMBEDDIA/crosloengual-bert | 0.7709 ± 0.0113 |
| xlm-roberta-base | 0.7184 ± 0.0139 |
| fasttext + CLARIN.si embeddings | 0.6312 ± 0.0043 |
Two best performing models have been compared with the Mann-Whitney U test to calculate p-values (** denotes p<0.01).
## Use example with `simpletransformers==0.63.7`
```python
from simpletransformers.classification import ClassificationModel
model = ClassificationModel("electra", "classla/bcms-bertic-parlasent-bcs-ter")
predictions, logits = model.predict([
"Vi niste normalni",
"Đački autobusi moraju da voze svaki dan",
"Ovo je najbolji zakon na svetu",
]
)
predictions
# Output: array([0, 1, 2])
[model.config.id2label[i] for i in predictions]
# Output: ['Negative', 'Neutral', 'Positive']
```
## Citation
If you use the model, please cite the following paper on which the original model is based:
```
@inproceedings{ljubesic-lauc-2021-bertic,
title = "{BERT}i{\'c} - The Transformer Language Model for {B}osnian, {C}roatian, {M}ontenegrin and {S}erbian",
author = "Ljube{\v{s}}i{\'c}, Nikola and Lauc, Davor",
booktitle = "Proceedings of the 8th Workshop on Balto-Slavic Natural Language Processing",
month = apr,
year = "2021",
address = "Kiyv, Ukraine",
publisher = "Association for Computational Linguistics",
url = "https://www.aclweb.org/anthology/2021.bsnlp-1.5",
pages = "37--42",
}
```
and the paper describing the dataset and methods for the current finetuning:
```
@misc{https://doi.org/10.48550/arxiv.2206.00929,
doi = {10.48550/ARXIV.2206.00929},
url = {https://arxiv.org/abs/2206.00929},
author = {Mochtak, Michal and Rupnik, Peter and Ljubešič, Nikola},
keywords = {Computation and Language (cs.CL), FOS: Computer and information sciences, FOS: Computer and information sciences},
title = {The ParlaSent-BCS dataset of sentiment-annotated parliamentary debates from Bosnia-Herzegovina, Croatia, and Serbia},
publisher = {arXiv},
year = {2022},
copyright = {Creative Commons Attribution Share Alike 4.0 International}
}
```