Political Discourse Analysis (AgoraSpeech)
Multi-task annotation of political speeches covering sentiment, polarization, populism, topic identification, and named entities. Based on AgoraSpeech (Sermpezis et al., 2025), featuring human-validated labels for comprehensive political discourse analysis.
Archivo de configuraciónconfig.yaml
# Political Discourse Analysis (AgoraSpeech-style)
# Based on Sermpezis et al., arXiv 2025
# Paper: https://arxiv.org/abs/2501.06265
#
# Multi-task annotation covering 6 NLP tasks:
# 1. Sentiment Analysis - emotional tone
# 2. Polarization Detection - divisive language
# 3. Populism Detection - populist rhetoric
# 4. Topic Identification - subject matter
# 5. Named Entity Recognition - persons, organizations, locations
# 6. Text Classification - speech type/category
#
# Designed for political speeches, campaign statements, and public discourse
annotation_task_name: "Political Discourse Analysis"
task_dir: "."
data_files:
- sample-data.json
item_properties:
id_key: "id"
text_key: "text"
output_annotation_dir: "annotation_output/"
output_annotation_format: "json"
annotation_schemes:
# Task 1: Sentiment Analysis
- annotation_type: radio
name: sentiment
description: "What is the overall emotional tone of this text?"
labels:
- Positive
- Negative
- Neutral
- Mixed
keyboard_shortcuts:
Positive: "1"
Negative: "2"
Neutral: "3"
Mixed: "4"
tooltips:
Positive: "Optimistic, hopeful, praising, or celebratory tone"
Negative: "Critical, pessimistic, condemning, or fearful tone"
Neutral: "Balanced, factual, or emotionally detached tone"
Mixed: "Contains both positive and negative sentiment"
# Task 2: Polarization Detection
- annotation_type: radio
name: polarization
description: "Does this text contain polarizing or divisive language?"
labels:
- "Highly polarizing"
- "Moderately polarizing"
- "Slightly polarizing"
- "Not polarizing"
keyboard_shortcuts:
"Highly polarizing": "h"
"Moderately polarizing": "m"
"Slightly polarizing": "s"
"Not polarizing": "n"
tooltips:
"Highly polarizing": "Strong us-vs-them rhetoric, demonization of opponents, inflammatory language"
"Moderately polarizing": "Clear partisan framing, criticism of opposing views"
"Slightly polarizing": "Some partisan elements but mostly balanced"
"Not polarizing": "Neutral, inclusive, or consensus-seeking language"
# Task 3: Populism Detection
- annotation_type: multiselect
name: populism_markers
description: "Select any populist rhetoric markers present in the text"
labels:
- "People vs. Elite"
- "Anti-establishment"
- "Crisis framing"
- "Nationalism/Nativism"
- "Direct democracy appeal"
- "Charismatic leadership"
- "None detected"
tooltips:
"People vs. Elite": "Framing ordinary people against corrupt/out-of-touch elites"
"Anti-establishment": "Criticism of mainstream parties, media, or institutions"
"Crisis framing": "Portraying situation as urgent crisis requiring immediate action"
"Nationalism/Nativism": "Appeals to national identity, sovereignty, or anti-immigration sentiment"
"Direct democracy appeal": "Bypassing institutions, appealing directly to 'the people's will'"
"Charismatic leadership": "Positioning speaker as unique voice/savior of the people"
"None detected": "No populist rhetoric markers identified"
# Task 4: Topic Identification
- annotation_type: multiselect
name: topics
description: "What topics are discussed in this text? (select all that apply)"
labels:
- Economy/Jobs
- Healthcare
- Immigration
- Education
- Environment/Climate
- Foreign Policy/Security
- Social Issues/Rights
- Corruption/Ethics
- Infrastructure
- Taxes/Budget
- Other
tooltips:
"Economy/Jobs": "Employment, wages, economic growth, business"
"Healthcare": "Health policy, insurance, medical care"
"Immigration": "Immigration policy, borders, refugees"
"Education": "Schools, universities, education policy"
"Environment/Climate": "Climate change, environmental protection, energy"
"Foreign Policy/Security": "International relations, defense, national security"
"Social Issues/Rights": "Civil rights, equality, social justice, family values"
"Corruption/Ethics": "Political corruption, ethics, accountability"
"Infrastructure": "Roads, bridges, public works, broadband"
"Taxes/Budget": "Tax policy, government spending, budget"
"Other": "Topics not covered above"
# Task 5: Named Entity Recognition
- annotation_type: span
name: entities
description: "Highlight named entities in the text"
labels:
- Person
- Organization
- Location
- Political Party
- Event
label_colors:
Person: "#3b82f6"
Organization: "#22c55e"
Location: "#f59e0b"
"Political Party": "#8b5cf6"
Event: "#ec4899"
tooltips:
Person: "Names of politicians, public figures, or individuals"
Organization: "Government bodies, companies, NGOs, institutions"
Location: "Countries, cities, regions, places"
"Political Party": "Names of political parties or movements"
Event: "Elections, summits, protests, historical events"
allow_overlapping: false
# Task 6: Speech Classification
- annotation_type: radio
name: speech_type
description: "What type of political communication is this?"
labels:
- Campaign speech
- Policy statement
- Parliamentary address
- Interview/Debate
- Social media post
- Press release
- Other
tooltips:
"Campaign speech": "Electoral campaign rally or event speech"
"Policy statement": "Official policy announcement or position paper"
"Parliamentary address": "Speech in legislative body or official chamber"
"Interview/Debate": "Response to questions or debate format"
"Social media post": "Tweet, Facebook post, or similar short-form content"
"Press release": "Official statement to media"
"Other": "Other type of political communication"
allow_all_users: true
instances_per_annotator: 100
annotation_per_instance: 3
allow_skip: true
skip_reason_required: false
Datos de ejemplosample-data.json
[
{
"id": "pol_001",
"text": "The corrupt elites in Washington have forgotten about hardworking Americans. They bail out big banks while families struggle to put food on the table. It's time to drain the swamp and give power back to the people!"
},
{
"id": "pol_002",
"text": "Our bipartisan infrastructure bill will create millions of good-paying jobs while rebuilding our roads, bridges, and broadband networks. This represents a historic investment in America's future."
}
]
// ... and 8 more itemsObtener este diseño
Clone or download from the repository
Inicio rápido:
git clone https://github.com/davidjurgens/potato-showcase.git cd potato-showcase/text/political-media/political-discourse potato start config.yaml
Detalles
Tipos de anotación
Dominio
Casos de uso
Etiquetas
¿Encontró un problema o desea mejorar este diseño?
Abrir un issueDiseños relacionados
OffensEval - Offensive Language Target Identification
Multi-step offensive language annotation combining offensiveness detection, target type classification, and offensive span identification, based on the SemEval 2020 OffensEval shared task (Zampieri et al., SemEval 2020).
Food Hazard Detection
Food safety hazard detection task requiring annotators to identify hazards, products, and risk levels in food incident reports, and classify the type of contamination. Based on SemEval-2025 Task 9.
HateXplain - Explainable Hate Speech Detection
Multi-task hate speech annotation with classification (hate/offensive/normal), target community identification, and rationale span highlighting. Based on the HateXplain benchmark (Mathew et al., AAAI 2021) - the first dataset covering classification, target identification, and rationale extraction.