|
--- |
|
license: apache-2.0 |
|
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'}]}] |
|
``` |