Edit model card

xlm-roberta-large-hungarian-parlspeech-cap-v3

Model description

An xlm-roberta-large model fine-tuned on hungarian training data containing parliamentary speeches (oral questions, interpellations, bill debates, other plenary speeches, urgent questions) labeled with major topic codes from the Comparative Agendas Project.

How to use the model

This snippet prints the three most probable labels and their corresponding softmax scores:

import torch
from transformers import AutoModelForSequenceClassification, AutoTokenizer

model = AutoModelForSequenceClassification.from_pretrained("poltextlab/xlm-roberta-large-hungarian-parlspeech-cap-v3")
tokenizer = AutoTokenizer.from_pretrained("xlm-roberta-large")

sentence = "This is an example."

inputs = tokenizer(sentence,
                   return_tensors="pt",
                   max_length=512,
                   padding="do_not_pad",
                   truncation=True
                   )

logits = model(**inputs).logits

probs = torch.softmax(logits, dim=1).tolist()[0]
probs = {model.config.id2label[index]: round(probability, 2) for index, probability in enumerate(probs)}
top3_probs = dict(sorted(probs.items(), key=lambda item: item[1], reverse=True)[:3])

print(top3_probs)

Model performance

The model was evaluated on a test set of 118338 examples.
Model accuracy is 0.84.

label precision recall f1-score support
0 0.75 0.73 0.74 9561
1 0.63 0.52 0.57 2416
2 0.82 0.81 0.81 2740
3 0.74 0.75 0.75 2464
4 0.61 0.6 0.61 2540
5 0.79 0.85 0.82 2563
6 0.74 0.64 0.69 1134
7 0.75 0.69 0.72 1352
8 0.73 0.63 0.68 737
9 0.76 0.81 0.78 1740
10 0.71 0.7 0.7 3372
11 0.64 0.6 0.62 2040
12 0.67 0.59 0.63 1819
13 0.72 0.55 0.63 3077
14 0.69 0.77 0.73 1282
15 0.79 0.7 0.74 1156
16 0.48 0.44 0.46 609
17 0.6 0.73 0.66 4025
18 0.66 0.67 0.66 10158
19 0.52 0.65 0.58 1481
20 0.66 0.51 0.58 567
21 0.97 0.98 0.97 61505
macro avg 0.7 0.68 0.69 118338
weighted avg 0.84 0.84 0.84 118338

Fine-tuning procedure

This model was fine-tuned with the following key hyperparameters:

  • Number of Training Epochs: 10
  • Batch Size: 8
  • Learning Rate: 5e-06
  • Early Stopping: enabled with a patience of 2 epochs

Inference platform

This model is used by the CAP Babel Machine, an open-source and free natural language processing tool, designed to simplify and speed up projects for comparative research.

Cooperation

Model performance can be significantly improved by extending our training sets. We appreciate every submission of CAP-coded corpora (of any domain and language) at poltextlab{at}poltextlab{dot}com or by using the CAP Babel Machine.

Reference

Sebők, M., Máté, Á., Ring, O., Kovács, V., & Lehoczki, R. (2024). Leveraging Open Large Language Models for Multilingual Policy Topic Classification: The Babel Machine Approach. Social Science Computer Review, 0(0). https://doi.org/10.1177/08944393241259434

Debugging and issues

This architecture uses the sentencepiece tokenizer. In order to use the model before transformers==4.27 you need to install it manually.

If you encounter a RuntimeError when loading the model using the from_pretrained() method, adding ignore_mismatched_sizes=True should solve the issue.

Downloads last month
118
Inference Examples
This model does not have enough activity to be deployed to Inference API (serverless) yet. Increase its social visibility and check back later, or deploy to Inference Endpoints (dedicated) instead.