The Aggressiveness of Trump and Biden’s Speeches, two of the most influencial leaders in US Politics

Processes and Findings of the Study

Domenico G. P. Solidoro

Introduction

Public speech is a key tool in modern politics.
This project explores rhetorical aggression in speeches by:

  • Donald J. Trump
  • Joseph R. Biden Jr. 

Research Question & Objective

How does rhetorical aggressiveness differ between Donald J. Trump and and Joseph R. Biden?

The objectives of the study are:

  • Compare the use of aggressive language between the two leaders;

  • Explore changes over time (2015-2024) in their speech patterns;

  • Understand potential implications for political communication.

Why It Matters

Political speech shapes:

  • Public opinion
  • Media framing
  • Election outcomes

Aggression is a strategic communication weapon.

The Dataset

Collected speeches from 2015–2024:

  • Biden’s speeches: 256
  • Trump’s speeches: 497

They are:

  • Campaign rallies
  • State of the Union
  • Press briefings
  • Debates

Sources: Public archives, campaign sites, Rev transcripts.

Methods Overview

I used two methods to approach the topic and make it interesting:

  1. Dictionary-based aggression scoring

Used a list of given aggressive words such as:

  • furious, failure, stubborn

Calculated as:
\[ \frac{(Number of Aggression Words)}{(Total Word Count)} \]

Easy to interpret, but limited by context blindness.

  1. AI-based evaluation (OpenAI GPT-3.5 Turbo)
  • GPT model (OpenAI API)

  • Rated each speech from 0 (not agressive) to 1 (very aggressive)

  • Based on tone, implication, and figurative language

  • Captures subtle rhetoric and context

AI Prompt Used

Prompt

“Rate the following political speech’s rhetorical aggressiveness from 0 (not aggressive) to 1 (very aggressive). Only respond with a single number.”

Cleaning and Processing

  • Removed noise and irrelevant content

  • Counted words and aggression terms

  • Ran each speech through GPT-3.5 API

  • Merged all into one dataset

Aggression Over Time

Overall Patterns

  • Trump shows frequent high aggression
  • Biden uses targeted aggression during pivotal moments
  • Both adapt tone strategically

Misconceptions

The idea that Trump is the only “aggressor” is incomplete.
Biden’s tone can match or exceed Trump’s in key years.

Context Over Personality

Aggression is often driven by:

  • Political events
  • Public expectations
  • Strategic choices

Conclusion

Aggression is a shared rhetorical tool.

Both leaders:

  • Escalate tone when needed
  • Shape narratives with emotion
  • Reflect broader trends in U.S. politics

Appendix: Contingency Table

Trump

Dictionary Aggressive GPT Not Aggressive GPT Aggressive
False 71 90
True 99 237

Biden

Dictionary Aggressive GPT Not Aggressive GPT Aggressive
False 45 56
True 20 24

Appendix: R Graph Code (summary)

# Load data from Python
aggression_trends2 <- reticulate::py$aggression_trends

# Clean data
aggression_trends2 <- aggression_trends2[!is.na(aggression_trends2$year), ]
aggression_trends2$year <- as.numeric(aggression_trends2$year)

# Plot
ggplot(aggression_trends2, aes(x = year, y = mean_aggression, color = speaker)) +
  geom_line(size = 1.2) +
  geom_point(size = 2) +
  geom_ribbon(aes(ymin = ci_lower, ymax = ci_upper, fill = speaker), alpha = 0.2, color = NA) +
  labs(
    title = "Aggression Rating Over Time by Speaker",
    x = "Year",
    y = "Mean Aggression Rating"
  ) +
  theme_minimal() +
  scale_x_continuous(
    breaks = unique(na.omit(as.numeric(aggression_trends2$year)))
  ) +
  theme(axis.text.x = element_text(angle = 45, hjust = 1)) +
  geom_hline(yintercept = 0, linetype = "dashed")

With this code, I was able to come up with a “ribbon” graph of the two leaders thanks to the combined-df dataset, used to literally combine both trump_df and biden_df into one.

Questions?

Check out my website where you can find a thorough report on the conducted research.