swainsubhankar/ToxicTags
STEMTOX: From Collaborative Tags to Fine-Grained Toxic Meme Detection via Entropy-Guided Multi-Task Learning 🎉 Accepted at Transactions of the Association for Computational Linguistics (TACL 2026). Figure 1. Overview of the STEMTOX framework. 🔎 TL;DR TOXICTAGS is a large-scale real-world meme dataset comprising 6,300 manually annotated memes collected from publicly available online sources. Unlike existing datasets, ToxicTags incorporates… See the full description on the dataset page: https://huggingface.co/datasets/swainsubhankar/ToxicTags.
STEMTOX: From Collaborative Tags to Fine-Grained Toxic Meme Detection via Entropy-Guided Multi-Task Learning
🎉 Accepted at Transactions of the Association for Computational Linguistics (TACL 2026). <p align="center"> <img src="stemtox_framework.png" alt="STEMTOX Framework" width="400"> </p>
<p align="center"> <b>Figure 1.</b> Overview of the STEMTOX framework. </p>
<div align="center">
  
</div>
🔎 TL;DR
TOXICTAGS is a large-scale real-world meme dataset comprising 6,300 manually annotated memes collected from publicly available online sources.
Unlike existing datasets, ToxicTags incorporates collaboratively generated social tags associated with the original posts, providing valuable contextual information that complements the visual and textual content.
The dataset is annotated using a two-stage human annotation pipeline. First, each meme is classified as Toxic or Normal. Toxic memes are then further categorized into one of three fine-grained classes: Hateful, Dangerous, or Offensive, resulting in a four-class taxonomy (Normal, Offensive, Dangerous, Hateful).
The dataset is designed to support research on fine-grained toxic meme detection, multimodal content moderation, and vision-language models.
⚠️ Warning: Contains potentially toxic contents
🧮 Dataset Structure
images/
train.csv
test.csv📋 Fields
🤗 Loading the Dataset
The dataset can be loaded directly from the Hugging Face Hub using the 🤗 Datasets library.
⚙️ Installation
pip install datasets📦 Load the Dataset
from datasets import load_dataset
dataset = load_dataset("swainsubhankar/ToxicTags")The dataset consists of two predefined splits:
print(dataset)Output:
DatasetDict({
train: Dataset({
features: ['img', 'title', 'tags', 'ocr', 'binary', 'finegrained'],
num_rows: 5300
})
test: Dataset({
features: ['img', 'title', 'tags', 'ocr', 'binary', 'finegrained'],
num_rows: 1000
})
})📑 Access Individual Splits
train = dataset["train"]
test = dataset["test"]Citation
@misc{swain2026stemtoxsocialtagsfinegrained,
title={STEMTOX: From Social Tags to Fine-Grained Toxic Meme Detection via Entropy-Guided Multi-Task Learning},
author={Subhankar Swain and Naquee Rizwan and Vishwa Gangadhar S and Nayandeep Deb and Animesh Mukherjee},
year={2026},
eprint={2508.04166},
archivePrefix={arXiv},
primaryClass={cs.CV},
url={https://arxiv.org/abs/2508.04166}
}