--- license: apache-2.0 datasets: - ltg/norec language: - 'no' pipeline_tag: token-classification model-index: - name: SSA-Perin results: - task: type: structured sentiment analysis dataset: name: NoReC type: NoReC metrics: - name: Unlabeled sentiment tuple F1 type: Unlabeled sentiment tuple F1 value: 44.12% - name: Target F1 type: Target F1 value: 56.44% - name: Relative polarity precision type: Relative polarity precision value: 93.19% --- This repository contains a pretrained model (and an easy-to-run wrapper for it) for structured sentiment analysis in Norwegian language, pre-trained on the [NoReC_fine dataset](https://github.com/ltgoslo/norec_fine). This is an implementation of the method described in ```bibtex @misc{samuel2022direct, title={Direct parsing to sentiment graphs}, author={David Samuel and Jeremy Barnes and Robin Kurtz and Stephan Oepen and Lilja Øvrelid and Erik Velldal}, year={2022}, eprint={2203.13209}, archivePrefix={arXiv}, primaryClass={cs.CL} } ``` The main repository that also contains the scripts for training the model, can be found on the project [github](https://github.com/jerbarnes/direct_parsing_to_sent_graph). The model is also available in the form of a [HF space](https://huggingface.co/spaces/ltg/ssa-perin). The sentiment graph model is based on an underlying masked language model – [NorBERT 2](https://huggingface.co/ltg/norbert2). The proposed method suggests three different ways to encode the sentiment graph: "node-centric", "labeled-edge", and "opinion-tuple". The current model - uses "labeled-edge" graph encoding - does not use character-level embedding - all other hyperparameters are set to [default values](https://github.com/jerbarnes/direct_parsing_to_sent_graph/blob/main/perin/config/edge_norec.yaml) , and it achieves the following results on the held-out set of the dataset: | Unlabeled sentiment tuple F1 | Target F1 | Relative polarity precision | |:----------------------------:|:----------:|:---------------------------:| | 0.434 | 0.541 | 0.926 | The model can be easily used for predicting sentiment tuples as follows: ```python >>> import model_wrapper >>> model = model_wrapper.PredictionModel() >>> model.predict(['vi liker svart kaffe']) [{'sent_id': '0', 'text': 'vi liker svart kaffe', 'opinions': [{'Source': [['vi'], ['0:2']], 'Target': [['svart', 'kaffe'], ['9:14', '15:20']], 'Polar_expression': [['liker'], ['3:8']], 'Polarity': 'Positive'}]}] ```