readme: ---
  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-bi
  
  Binary 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 two categories: Negative vs. Other. For the ternary classifier (Negative, Neutral, Positive) check [this model](https://huggingface.co/classla/bcms-bertic-parlasent-bcs-ter).
  
  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 in comparison with ternary classifier
  
  | model                                     | average macro F1 |
  |-------------------------------------------|------------------|
  | bcms-bertic-parlasent-bcs-ter             | 0.7941 ± 0.0101  |
  | bcms-bertic-parlasent-bcs-bi (this model) | 0.8999 ± 0.012   |
  
  ## Use example with `simpletransformers==0.63.7`
  
  ```python
  from simpletransformers.classification import ClassificationModel
  
  model = ClassificationModel("electra", "classla/bcms-bertic-parlasent-bcs-bi")
  
  predictions, logits = model.predict([
       "Đački autobusi moraju da voze svaki dan", 
       "Vi niste normalni"
       ]
      )
  
  predictions
  # Output: array([1, 0])
  
  [model.config.id2label[i] for i in predictions]
  # Output: ['Other', 'Negative']
  ```
  
  ## 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}
  }
  ```
  
  
  