poltextlab's picture
Upload README.md with huggingface_hub
0a3211d verified
---
license: mit
language:
- multilingual
tags:
- zero-shot-classification
- text-classification
- pytorch
metrics:
- accuracy
- f1-score
extra_gated_prompt: 'Our models are intended for academic use only. If you are not
affiliated with an academic institution, please provide a rationale for using our
models. Please allow us a few business days to manually review subscriptions.
If you use our models for your work or research, please cite this paper: 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'
extra_gated_fields:
Name: text
Country: country
Institution: text
E-mail: text
Use case: text
---
# xlm-roberta-large-dutch-media-cap-v3
## Model description
An `xlm-roberta-large` model finetuned on multilingual training data containing texts of the `media` domain labelled with [major topic codes](https://www.comparativeagendas.net/pages/master-codebook) from the [Comparative Agendas Project](https://www.comparativeagendas.net/).
We follow the master codebook of the Comparative Agendas Project, and all of our models use the same major topic codes.
## How to use the model
```python
from transformers import AutoTokenizer, pipeline
tokenizer = AutoTokenizer.from_pretrained("xlm-roberta-large")
pipe = pipeline(
model="poltextlab/xlm-roberta-large-dutch-media-cap-v3",
task="text-classification",
tokenizer=tokenizer,
use_fast=False,
token="<your_hf_read_only_token>"
)
text = "We will place an immediate 6-month halt on the finance driven closure of beds and wards, and set up an independent audit of needs and facilities."
pipe(text)
```
The translation table from the model results to CAP codes is the following:
```python
CAP_NUM_DICT = {
0: 1,
1: 2,
2: 3,
3: 4,
4: 5,
5: 6,
6: 7,
7: 8,
8: 9,
9: 10,
10: 12,
11: 13,
12: 14,
13: 15,
14: 16,
15: 17,
16: 18,
17: 19,
18: 20,
19: 21,
20: 23,
21: 999,
}
```
We have included a 999 label because our models are fine-tuned on training data containing the label 'None' in addition to the 21 CAP major policy topic codes, indicating that the given text contains no relevant policy content. We use the label 999 for these cases.
### Gated access
Due to the gated access, you must pass the `token` parameter when loading the model. In earlier versions of the Transformers package, you may need to use the `use_auth_token` parameter instead.
## Model performance
The model was evaluated on a test set of 7422 examples (10% of the available data).<br>
Model accuracy is **0.96**.
| label | precision | recall | f1-score | support |
|:-------------|------------:|---------:|-----------:|----------:|
| 0 | 0.89 | 0.94 | 0.91 | 282 |
| 1 | 0.92 | 0.9 | 0.91 | 163 |
| 2 | 0.97 | 0.97 | 0.97 | 305 |
| 3 | 0.97 | 0.9 | 0.93 | 101 |
| 4 | 0.97 | 0.9 | 0.93 | 340 |
| 5 | 1 | 0.97 | 0.98 | 218 |
| 6 | 0.92 | 0.95 | 0.94 | 107 |
| 7 | 0.92 | 0.95 | 0.94 | 102 |
| 8 | 1 | 0.99 | 1 | 126 |
| 9 | 0.96 | 0.96 | 0.96 | 249 |
| 10 | 0.97 | 0.97 | 0.97 | 697 |
| 11 | 0.91 | 0.89 | 0.9 | 114 |
| 12 | 0.88 | 0.96 | 0.92 | 48 |
| 13 | 0.93 | 0.94 | 0.93 | 535 |
| 14 | 0.93 | 0.93 | 0.93 | 86 |
| 15 | 0.96 | 0.92 | 0.94 | 170 |
| 16 | 1 | 0.9 | 0.95 | 21 |
| 17 | 0.98 | 0.99 | 0.98 | 2350 |
| 18 | 0.97 | 0.97 | 0.97 | 953 |
| 19 | 0.86 | 0.92 | 0.89 | 61 |
| 20 | 0.95 | 0.95 | 0.95 | 394 |
| macro avg | 0.95 | 0.94 | 0.94 | 7422 |
| weighted avg | 0.96 | 0.96 | 0.96 | 7422 |
## Inference platform
This model is used by the [CAP Babel Machine](https://babel.poltextlab.com), 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](https://babel.poltextlab.com).
## Debugging and issues
This architecture uses the `sentencepiece` tokenizer. In order to run 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.