Edit model card

Affective Norms Extrapolation Model for Polish Language

Model Description

This transformer-based model is designed to extrapolate affective norms for Polish words, including metrics such as valence, arousal, dominance, concreteness, age of acquisition, origin, significance, and imageability. It has been finetuned from the Polish RoBerta Model (https://github.com/sdadas/polish-roberta), enhanced with additional layers to predict the affective dimensions. This model was first released as a part of the publication: "Extrapolation of affective norms using transformer-based neural networks and its application to experimental stimuli selection." (Plisiecki, Sobieszek; 2023) [ https://doi.org/10.3758/s13428-023-02212-3 ]

Training Data

The model was trained on the Polish affective norms dataset by Imbir (2016) [ https://doi.org/10.3389/fpsyg.2016.01081 ], which includes 4900 words rated by participants on various emotional and semantic dimensions. The dataset was split into training, validation, and test sets in an 8:1:1 ratio.

Performance

The model achieved the following Pearson correlations with human judgments on the test set:

  • Valence: 0.93
  • Arousal: 0.86
  • Dominance: 0.92
  • Concreteness: 0.95
  • Age of Acquisition: 0.81
  • Origin: 0.86
  • Significance: 0.88
  • Imageability: 0.88

Usage

You can use the model and tokenizer as follows:

First run the bash code below to clone the repository (this will take some time). Because of the custom model class, this model cannot be run with the usual huggingface Model setups.

git clone https://huggingface.co./hplisiecki/word2affect_polish

Proceed as follows:

from word2affect_polish.model_script import CustomModel # importing the custom model class
from transformers import PreTrainedTokenizerFast

model_directory = "word2affect_polish" # path to the cloned repository

model = CustomModel.from_pretrained(model_directory)
tokenizer = PreTrainedTokenizerFast.from_pretrained(model_directory)

inputs = tokenizer("test", return_tensors="pt")
outputs = model(inputs['input_ids'], inputs['attention_mask'])

# Print out the emotion ratings
for emotion, rating in zip(['Valence', 'Arousal', 'Dominance', 'Origin', 'Significance', 'Concreteness', 'Imageability', 'Age of Acquisition'], outputs):
    print(f"{emotion}: {rating.item()}")

Citation

If you use this model please cite the following paper.

@article{Plisiecki_Sobieszek_2023,
  title={Extrapolation of affective norms using transformer-based neural networks and its application to experimental stimuli selection},
  author={Plisiecki, Hubert and Sobieszek, Adam},
  journal={Behavior Research Methods},
  year={2023},
  pages={1-16}
  doi={https://doi.org/10.3758/s13428-023-02212-3}
}
Downloads last month
19
Safetensors
Model size
124M params
Tensor type
F32
·
Inference Examples
Inference API (serverless) has been turned off for this model.