/ Модель

Характеристики

Контекст
514 токенов
Параметры
305 млн
Архитектура
xlm-roberta · dense
Опубликована
2 мар 2022

twitter-xlm-roberta-emotion-es

Классификация текстаТекст → label3 профессии

Модель XLM-RoBERTa для классификации эмоций в испаноязычных твитах на семь категорий.

309скачиваний за 30 дней21лайквеса обновлены28 апр 2022

Бенчмарки

Как модель справилась с задачами пользователей ailist и что о ней публикуют открытые лидерборды

Публичные оценки

Из открытых лидербордов. Сравнивайте результаты одного теста при одинаковых условиях — отсутствие оценки не значит, что модель хуже.

В подключённых источниках результатов для этой модели пока нет.

Что умеет модель

Описание составлено по карточке модели и метаданным Hugging Face

daveni/twitter-xlm-roberta-emotion-es — модель XLM-RoBERTa-base, разработанная авторами карточки и дообученная для распознавания эмоций в испаноязычных сообщениях Twitter. Она относит текст к одному из семи классов: гнев, отвращение, страх, радость, печаль, удивление или «другое». Модель содержит около 305,2 млн параметров, принимает последовательности длиной до 514 токенов и распространяется в формате PyTorch.

Модель создавалась для участия в соревновании EmoEvalEs на конференции IberLEF 2021 и показала там macro-F1 71,70%. Её можно применять для анализа тональности и эмоциональных реакций в испаноязычных твитах и коротких сообщениях. Базовые веса XLM-RoBERTa предварительно обучены на корпусе примерно из 198 млн твитов; для дообучения использован датасет EmoEvalEs. Лицензия в предоставленных данных не указана.

Сценарии применения

  • определение эмоций в испаноязычных твитах
  • анализ реакций аудитории на публикации в соцсетях
  • классификация коротких испанских сообщений по эмоциональным категориям

Ограничения

Данные для дообучения были несбалансированы: почти половина примеров относилась к классу «другое», что может смещать предсказания в его сторону. Результат соревнования не гарантирует аналогичного качества на иных источниках и типах испанского текста.

Для каких профессий подходит3

Разделы каталога профессий, в задачах которых используется эта модель

Все профессии

Карточка модели

README от автора на Hugging Face, как он его опубликовал

Открыть на Hugging Face

Note: This model & model card are based on the finetuned XLM-T for Sentiment Analysis

twitter-XLM-roBERTa-base for Emotion Analysis

This is a XLM-roBERTa-base model trained on ~198M tweets and finetuned for emotion analysis on Spanish language. This model was presented to EmoEvalEs competition, part of IberLEF 2021 Conference, where the proposed task was the classification of Spanish tweets between seven different classes: anger, disgust, fear, joy, sadness, surprise, and other. We achieved the first position in the competition with a macro-averaged F1 score of 71.70%.

Example Pipeline with a Tweet from @JaSantaolalla

from transformers import pipeline
model_path = "daveni/twitter-xlm-roberta-emotion-es"
emotion_analysis = pipeline("text-classification", framework="pt", model=model_path, tokenizer=model_path)
emotion_analysis("Einstein dijo: Solo hay dos cosas infinitas, el universo y los pinches anuncios de bitcoin en Twitter. Paren ya carajo aaaaaaghhgggghhh me quiero murir")
[{'label': 'anger', 'score': 0.48307016491889954}]

Full classification example

from transformers import AutoModelForSequenceClassification
from transformers import AutoTokenizer, AutoConfig
import numpy as np
from scipy.special import softmax
# Preprocess text (username and link placeholders)
def preprocess(text):
    new_text = []
    for t in text.split(" "):
        t = '@user' if t.startswith('@') and len(t) > 1 else t
        t = 'http' if t.startswith('http') else t
        new_text.append(t)
    return " ".join(new_text)
model_path = "daveni/twitter-xlm-roberta-emotion-es"
tokenizer = AutoTokenizer.from_pretrained(model_path )
config = AutoConfig.from_pretrained(model_path )
# PT
model = AutoModelForSequenceClassification.from_pretrained(model_path )
text = "Se ha quedao bonito día para publicar vídeo, ¿no? Hoy del tema más diferente que hemos tocado en el canal."
text = preprocess(text)
print(text)
encoded_input = tokenizer(text, return_tensors='pt')
output = model(**encoded_input)
scores = output[0][0].detach().numpy()
scores = softmax(scores)
# Print labels and scores
ranking = np.argsort(scores)
ranking = ranking[::-1]
for i in range(scores.shape[0]):
    l = config.id2label[ranking[i]]
    s = scores[ranking[i]]
    print(f"{i+1}) {l} {np.round(float(s), 4)}")

Output:

Se ha quedao bonito día para publicar vídeo, ¿no? Hoy del tema más diferente que hemos tocado en el canal.
1) joy 0.7887
2) others 0.1679
3) surprise 0.0152
4) sadness 0.0145
5) anger 0.0077
6) disgust 0.0033
7) fear 0.0027

Limitations and bias

  • The dataset we used for finetuning was unbalanced, where almost half of the records belonged to the other class so there might be bias towards this class.

Training data

Pretrained weights were left identical to the original model released by cardiffnlp. We used the EmoEvalEs Dataset for finetuning.

BibTeX entry and citation info

@inproceedings{vera2021gsi,
  title={GSI-UPM at IberLEF2021: Emotion Analysis of Spanish Tweets by Fine-tuning the XLM-RoBERTa Language Model},
  author={Vera, D and Araque, O and Iglesias, CA},
  booktitle={Proceedings of the Iberian Languages Evaluation Forum (IberLEF 2021). CEUR Workshop Proceedings, CEUR-WS, M{\'a}laga, Spain},
  year={2021}
}

Как запустить

На своей GPU в ailist. Цена — по текущим предложениям провайдеров

GPU в ailist

Универсальный рантайм · text-classification

Можно запустить

Подбираем GPU…

Класс архитектуры
XLMRobertaForSequenceClassification
Ревизия весов
ab57a11

0 моделей