Skip to content
intermediatetext

SemEval-2020 Task 9: Code-Mixed Sentiment (SentiMix)

SentiMix is the SemEval-2020 Task 9 benchmark for sentence-level sentiment on code-mixed tweets, covering Hindi-English and Spanish-English. This Potato config reproduces its positive/negative/neutral labeling.

About this dataset

SemEval-2020 Task 9, known as SentiMix, was a shared task on sentiment analysis of code-mixed social media text run by Patwa, Aguilar, Kar, Pandey, PYKL, Gamback, Chakraborty, Solorio, and Das. It appeared at the Fourteenth Workshop on Semantic Evaluation (SemEval-2020), held online alongside COLING in December 2020.

The task ships two corpora of tweets. The Hinglish (Hindi-English) set has 20,000 tweets split into 14,000 train, 3,000 validation, and 3,000 test. The Spanglish (Spanish-English) set has 12,002 train, 2,998 validation, and 3,788 test tweets, roughly 19,000 in total. Across both language pairs, 89 submissions were received: 61 teams on Hinglish and 28 on Spanglish.

Each tweet carries one sentence-level sentiment label out of positive, negative, or neutral. Tweets also include word-level language identification tags so annotators and models can see which tokens come from which language. The Hinglish tags mark tokens as English, Hindi, or other (mentions, hashtags, symbols), and the Spanglish set adds named entities, in-word mixes, and ambiguous or foreign words.

The Potato config below reproduces the sentence-level task as a single radio-button choice over positive, negative, and neutral, applied to one code-mixed tweet at a time.

Language pairs
Hindi-English, Spanish-English
Hinglish tweets
20,000 (14K/3K/3K)
Spanglish tweets
~19K (12,002/2,998/3,788)
Sentiment labels
Positive, Negative, Neutral
Submissions
89 (61 Hinglish, 28 Spanglish)
Venue
SemEval-2020, December 2020
Submit

Configuration Fileconfig.yaml

This Potato config reproduces the annotation task. Save it as config.yaml and run potato start config.yaml to try it.

yaml
# Sentiment Analysis for Code-Mixed Social Media Text
# Based on Patwa et al., SemEval 2020
# Paper: https://aclanthology.org/2020.semeval-1.100/
# Dataset: https://ritual-uh.github.io/sentimix2020/
#
# Annotators classify the sentiment of social media posts written in
# code-mixed text (two languages interleaved). The task captures the
# challenge of understanding sentiment in multilingual, informal text.

annotation_task_name: "Sentiment Analysis for Code-Mixed Social Media Text"
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 code-mixed text?"
    labels:
      - "Positive"
      - "Negative"
      - "Neutral"
    keyboard_shortcuts:
      "Positive": "1"
      "Negative": "2"
      "Neutral": "3"
    tooltips:
      "Positive": "The text expresses a positive emotion or opinion"
      "Negative": "The text expresses a negative emotion or opinion"
      "Neutral": "The text does not express a clear positive or negative sentiment"

annotation_instructions: |
  You will see a social media post written in code-mixed text (switching between
  two languages). Your task is to:
  1. Read the text carefully, considering both languages used.
  2. Determine the overall sentiment expressed in the post.
  3. Select Positive, Negative, or Neutral.

  Note: Even if you don't understand every word, try to infer sentiment from
  the words you do recognize, emoticons, and overall tone.

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;">Code-Mixed Text:</strong>
      <p style="font-size: 16px; line-height: 1.7; margin: 8px 0 0 0;">{{text}}</p>
    </div>
    <div style="background: #f0fdf4; border: 1px solid #bbf7d0; border-radius: 8px; padding: 16px; margin-bottom: 16px;">
      <strong style="color: #166534;">Language Pair:</strong>
      <span style="font-size: 14px;">{{language_pair}}</span>
    </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

json
[
  {
    "id": "cm_001",
    "text": "Yaar ye movie bahut amazing thi! Best film of the year, no doubt about it.",
    "language_pair": "Hindi-English"
  },
  {
    "id": "cm_002",
    "text": "Esta clase es so boring, I can't even stay awake. Necesito cafe urgente.",
    "language_pair": "Spanish-English"
  }
]

// ... and 8 more items

Get This Design

View on GitHub

Clone or download from the repository

Quick start:

git clone https://github.com/davidjurgens/potato-showcase.git
cd potato-showcase/semeval/2020/task09-code-mixed-sentiment
potato start config.yaml

Dataset & paper

Patwa et al., SemEval 2020

Citation (BibTeX)

bibtex
@inproceedings{patwa-etal-2020-semeval,
    title = "{S}em{E}val-2020 {T}ask 9: {O}verview of {S}entiment {A}nalysis of {C}ode-{M}ixed {T}weets",
    author = "Patwa, Parth and Aguilar, Gustavo and Kar, Sudipta and Pandey, Suraj and PYKL, Srinivas and Gamb{\"a}ck, Bj{\"o}rn and Chakraborty, Tanmoy and Solorio, Thamar and Das, Amitava",
    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.100",
    pages = "774--790"
}

Details

Annotation Types

radio

Domain

NLPSemEval

Use Cases

Sentiment AnalysisCode-MixingMultilingual NLP

Tags

semevalsemeval-2020shared-taskcode-mixingsentimentmultilingualsocial-media

Found an issue or want to improve this design?

Open an Issue