Memotion Analysis - Sentiment and Type Classification of Memes
Classify the overall sentiment of internet memes and identify their communicative types (sarcastic, humorous, offensive, motivational), based on SemEval-2020 Task 8 (Sharma et al.). Annotators analyze both text and image descriptions of memes.
Configuration Fileconfig.yaml
This Potato config reproduces the annotation task. Save it as config.yaml and run potato start config.yaml to try it.
# Memotion Analysis - Sentiment and Type Classification of Memes
# Based on Sharma et al., SemEval 2020
# Paper: https://aclanthology.org/2020.semeval-1.99/
# Dataset: https://competitions.codalab.org/competitions/20629
#
# Annotators classify the overall sentiment of internet memes and identify
# their communicative types. The task combines sentiment polarity with
# fine-grained meme type classification.
annotation_task_name: "Memotion Analysis - Sentiment and Type Classification of Memes"
task_dir: "."
data_files:
- sample-data.json
item_properties:
id_key: "id"
text_key: "text"
output_annotation_dir: "annotation_output/"
output_annotation_format: "json"
port: 8000
server_name: localhost
annotation_schemes:
- annotation_type: radio
name: sentiment
description: "What is the overall sentiment of this meme?"
labels:
- "Positive"
- "Negative"
- "Neutral"
keyboard_shortcuts:
"Positive": "1"
"Negative": "2"
"Neutral": "3"
tooltips:
"Positive": "The meme conveys a positive, uplifting, or encouraging message"
"Negative": "The meme conveys a negative, critical, or hostile message"
"Neutral": "The meme does not convey a clearly positive or negative sentiment"
- annotation_type: multiselect
name: meme_types
description: "Select all communicative types that apply to this meme."
labels:
- "Sarcastic"
- "Humorous"
- "Offensive"
- "Motivational"
tooltips:
"Sarcastic": "The meme uses irony or sarcasm to make a point"
"Humorous": "The meme is intended to be funny or amusing"
"Offensive": "The meme contains content that could be considered offensive or hurtful"
"Motivational": "The meme is intended to inspire, motivate, or encourage"
annotation_instructions: |
You will see the text from a meme along with a description of its image. Your task is to:
1. Read the meme text and image description together to understand the full message.
2. Classify the overall sentiment as Positive, Negative, or Neutral.
3. Select all applicable communicative types (a meme can be multiple types).
Consider both the text and image description when making your judgments.
html_layout: |
<div style="padding: 15px; max-width: 800px; margin: auto;">
<div style="background: #f0f9ff; border: 1px solid #bae6fd; border-radius: 8px; padding: 16px; margin-bottom: 16px;">
<strong style="color: #0369a1;">Meme Text:</strong>
<p style="font-size: 16px; line-height: 1.7; margin: 8px 0 0 0;">{{text}}</p>
</div>
<div style="background: #fefce8; border: 1px solid #fde68a; border-radius: 8px; padding: 16px; margin-bottom: 16px;">
<strong style="color: #a16207;">Image Description:</strong>
<p style="font-size: 15px; line-height: 1.6; margin: 8px 0 0 0;">{{image_description}}</p>
</div>
</div>
allow_all_users: true
instances_per_annotator: 50
annotation_per_instance: 2
allow_skip: true
skip_reason_required: false
Sample Datasample-data.json
[
{
"id": "memo_001",
"text": "When the professor says the exam will be easy",
"image_description": "A person laughing nervously while sweating profusely, looking at a stack of textbooks."
},
{
"id": "memo_002",
"text": "You got this! Believe in yourself and never give up!",
"image_description": "A cute cat standing on top of a mountain with a sunrise in the background, wearing a tiny cape."
}
]
// ... and 8 more itemsGet This Design
Clone or download from the repository
Quick start:
git clone https://github.com/davidjurgens/potato-showcase.git cd potato-showcase/semeval/2020/task08-memotion-memes potato start config.yaml
Dataset & paper
Sharma et al., SemEval 2020
Citation (BibTeX)
@inproceedings{sharma-etal-2020-semeval,
title = "{S}em{E}val-2020 Task 8: Memotion Analysis- the Visuo-Lingual Metaphor!",
author = {Sharma, Chhavi and Bhageria, Deepesh and Scott, William and PYKL, Srinivas and Das, Amitava and Chakraborty, Tanmoy and Pulabaigari, Viswanath and Gamb{\"a}ck, Bj{\"o}rn},
booktitle = "Proceedings of the Fourteenth Workshop on Semantic Evaluation",
month = dec,
year = "2020",
address = "Barcelona (online)",
publisher = "International Committee for Computational Linguistics",
url = "https://aclanthology.org/2020.semeval-1.99",
doi = "10.18653/v1/2020.semeval-1.99",
pages = "759--773"
}Details
Annotation Types
Domain
Use Cases
Tags
Found an issue or want to improve this design?
Open an IssueRelated Designs
Food Hazard Detection
Food safety hazard detection task requiring annotators to classify short food-incident report texts by hazard-category and product-category (coarse labels), and to identify the specific hazard and product mentions (fine-grained labels). Based on SemEval-2025 Task 9: The Food Hazard Detection Challenge.
iSarcasmEval: Intended Sarcasm Detection
SemEval-2022 Task 6 (iSarcasmEval): detecting intended sarcasm in English and Arabic. Unlike prior datasets labeled by third parties, iSarcasmEval texts are labeled by their own authors for intended sarcasm. Annotators decide whether a text is sarcastic and, if so, which category of ironic speech it expresses.
LLMs4Subjects - Subject Tagging for a Technical Library
Subject indexing of technical bibliographic records for the TIB Leibniz Information Centre's open-access TIBKAT catalog. Annotators assign subject headings and record types to English/German technical records, mirroring the library workflow SemEval-2025 Task 5 automates with LLMs. This showcase is a simplified adaptation of that task.