twitter xlm roberta base sentiment

Providercardiffnlp
Categorytext-classification
LicenseApache-2.0
Downloads1.8K
Stars0

Overview

The twitter-xlm-roberta-base-sentiment model is a multilingual transformer designed specifically for sentiment analysis on short-form social media text. Built on the XLM-RoBERTa architecture, it excels at detecting polarity (positive, negative, neutral) across multiple languages, making it an ideal choice for global brand monitoring or real-time community feedback loops. Unlike standard BERT models, this version is fine-tuned on noisy Twitter data, meaning it handles emojis, slang, and irregular syntax more effectively. For developers, it integrates seamlessly via the Hugging Face ecosystem, offering a lightweight footprint that balances inference speed with cross-lingual accuracy without requiring language-specific preprocessing pipelines.

Highlights

  • Multilingual sentiment detection across diverse global languages
  • Optimized for noisy, short-form social media text
  • Easy integration via Hugging Face transformers library
  • Apache-2.0 license for flexible commercial deployment

Usage

Install
# Install Hugging Face transformers
pip install transformers torch
SDK Usage
# Load model with transformers
from transformers import AutoModel, AutoTokenizer

model = AutoModel.from_pretrained("cardiffnlp/twitter-xlm-roberta-base-sentiment")
tokenizer = AutoTokenizer.from_pretrained("cardiffnlp/twitter-xlm-roberta-base-sentiment")

Hugging Face Download

We recommend downloading the model via the Hugging Face CLI or Hub SDK.

Guidance:Before downloading, install huggingface_hub with:

Guidance
pip install -U huggingface_hub

CLI Download

Download the full repository

Download the full repository
huggingface-cli download cardiffnlp/twitter-xlm-roberta-base-sentiment

Download a single file to a local folder (e.g. config.json into ./dir)

Download a single file to a local folder (e.g. config.json into ./dir)
huggingface-cli download cardiffnlp/twitter-xlm-roberta-base-sentiment config.json --local-dir ./dir

See the official docs for more CLI options

SDK Download

SDK Download
# 模型下载
from huggingface_hub import snapshot_download
model_dir = snapshot_download('cardiffnlp/twitter-xlm-roberta-base-sentiment')

Git Download

Make sure git-lfs is installed first

Git Download
git lfs install
git clone https://huggingface.co/cardiffnlp/twitter-xlm-roberta-base-sentiment

To skip LFS large-file downloads, use:

Skip LFS
GIT_LFS_SKIP_SMUDGE=1 git clone https://huggingface.co/cardiffnlp/twitter-xlm-roberta-base-sentiment

Model files are hosted on the Hugging Face Hub — download directly via HF CLI / SDK / Git, not through this site.

PyTorch / Transformers Usage

Install Transformers

Install Transformers
pip install -U transformers torch

Load the model and run inference

Load the model and run inference
from transformers import AutoModelForCausalLM, AutoTokenizer

model = AutoModelForCausalLM.from_pretrained('cardiffnlp/twitter-xlm-roberta-base-sentiment')
tokenizer = AutoTokenizer.from_pretrained('cardiffnlp/twitter-xlm-roberta-base-sentiment')

Model Download

We recommend downloading the model via the ModelScope CLI or SDK.

Guidance:Before downloading, install ModelScope with:

Guidance
pip install modelscope

CLI Download

Download the full repository

Download the full repository
modelscope download --model cardiffnlp/twitter-xlm-roberta-base-sentiment

Download a single file to a local folder (e.g. README.md into ./dir)

Download a single file to a local folder (e.g. README.md into ./dir)
modelscope download --model cardiffnlp/twitter-xlm-roberta-base-sentiment README.md --local_dir ./dir

See the docs for more CLI options

SDK Download

SDK Download
# 模型下载
from modelscope import snapshot_download
model_dir = snapshot_download('cardiffnlp/twitter-xlm-roberta-base-sentiment')

Git Download

Make sure git-lfs is installed first

Git Download
git lfs install
git clone https://www.modelscope.cn/cardiffnlp/twitter-xlm-roberta-base-sentiment.git

To skip LFS large-file downloads, use:

Skip LFS
GIT_LFS_SKIP_SMUDGE=1 git clone https://www.modelscope.cn/cardiffnlp/twitter-xlm-roberta-base-sentiment.git

ModelScope 模型页直接下载模型文件;无需将模型文件放在本站服务器。

Notebook Quickstart

Install the ModelScope library

Install the ModelScope library
pip install "modelscope[audio,cv,nlp,multi-modal,science]" -f https://modelscope.oss-cn-beijing.aliyuncs.com/releases/repo.html

Load the model and run inference

Load the model and run inference
from modelscope.pipelines import pipeline
from modelscope.utils.constant import Tasks

p = pipeline('text-generation', 'cardiffnlp/twitter-xlm-roberta-base-sentiment')

Full Documentation

来源: HuggingFace

---
language: multilingual
widget:

  • text: "🤗"

  • text: "T'estimo! ❤️"

  • text: "I love you!"

  • text: "I hate you 🤮"

  • text: "Mahal kita!"

  • text: "사랑해!"

  • text: "난 너가 싫어"

  • text: "😍😍😍"

---

twitter-XLM-roBERTa-base for Sentiment Analysis

This is a multilingual XLM-roBERTa-base model trained on ~198M tweets and finetuned for sentiment analysis. The sentiment fine-tuning was done on 8 languages (Ar, En, Fr, De, Hi, It, Sp, Pt) but it can be used for more languages (see paper for details).

This model has been integrated into the TweetNLP library.

Example Pipeline

python
from transformers import pipeline
model_path = "cardiffnlp/twitter-xlm-roberta-base-sentiment"
sentiment_task = pipeline("sentiment-analysis", model=model_path, tokenizer=model_path)
sentiment_task("T'estimo!")
code
[{'label': 'Positive', 'score': 0.6600581407546997}]

Full classification example

python
from transformers import AutoModelForSequenceClassification
from transformers import TFAutoModelForSequenceClassification
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 = f"cardiffnlp/twitter-xlm-roberta-base-sentiment"

tokenizer = AutoTokenizer.from_pretrained(MODEL)
config = AutoConfig.from_pretrained(MODEL)

PT

model = AutoModelForSequenceClassification.from_pretrained(MODEL) model.save_pretrained(MODEL)

text = "Good night 😊"
text = preprocess(text)
encoded_input = tokenizer(text, return_tensors='pt')
output = model(**encoded_input)
scores = output[0][0].detach().numpy()
scores = softmax(scores)

# TF

model = TFAutoModelForSequenceClassification.from_pretrained(MODEL)

model.save_pretrained(MODEL)

text = "Good night 😊"

encoded_input = tokenizer(text, return_tensors='tf')

output = model(encoded_input)

scores = output[0][0].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:

code
1) Positive 0.7673
2) Neutral 0.2015
3) Negative 0.0313

Reference

code
@inproceedings{barbieri-etal-2022-xlm,
    title = "{XLM}-{T}: Multilingual Language Models in {T}witter for Sentiment Analysis and Beyond",
    author = "Barbieri, Francesco  and
      Espinosa Anke, Luis  and
      Camacho-Collados, Jose",
    booktitle = "Proceedings of the Thirteenth Language Resources and Evaluation Conference",
    month = jun,
    year = "2022",
    address = "Marseille, France",
    publisher = "European Language Resources Association",
    url = "https://aclanthology.org/2022.lrec-1.27",
    pages = "258--266"
}
Join our Telegram