The chart below displays the 25 most common unigrams from news headlines mentioning President Trump between August 3, 2026, and October 4, 2026. From this list, it can be seen that the predominant words are a reflection of the major issues and events that were (and still currently) being covered during that time period. One limitation of unigram analysis, however, is that it only examines individual words. As a result, the meaning behind a topic can become vague when looking at a single word by itself. However, as you look throughout the list, several words appear to go together and provide additional context.

For example, the words “white” and “house” separately are not significant. Neither are “supreme” and “court” nor is the word “center.” Together, though, “White House,” “Supreme Court,” and “AI Center” become much more meaningful and suggest topics that received substantial media attention during the period. Looking at the list as a whole, words such as “iran,” “war,” “house,” “senate,” “gop,” “democrats,” “republican,” “election,” and “midterm” suggest that political issues, international affairs, and elections were among the most common themes connected to Trump in news coverage.

Several decisions were also made regarding which words to exclude from the analysis. Because the headlines in the dataset already mentioned Trump, I removed words such as “trump,” “trump’s,” “trump’s” (different apostrophe), and “donald” so that other themes could become more visible. In addition, the words “said” and “says” were omitted because they frequently appeared as part of headline construction. For example, one Business Insider headline followed the format of “Trump said…,” making the word common but not necessarily informative. In step 5.5 of the code I combined plural and singular versions of certain words, such as “midterms” and “midterm” and “republicans” and “republican,” so that the same topic would not be counted separately. These decisions helped produce a clearer picture of the themes most frequently associated with Trump in news coverage.

Code:

############################################################
# Trump Story Headlines Unigram Analysis
############################################################

# Step 1: Install and Load Packages ----

# Install and load the packages needed for
# data management, text mining, and visualization.

library(tidyverse)
library(tidytext)

# Step 2: Import The Data ----

TrumpHeadlines <- readRDS(
  "Trump_story_headlines.rds"
)

# Step 3: Create Unigrams ----

unigrams <- TrumpHeadlines %>%
  unnest_tokens(
    word,
    title
  )

# Step 4: Remove Stop Words ----

data("stop_words")

unigrams_clean <- unigrams %>%
  anti_join(
    stop_words,
    by = "word"
  )

# Step 5: Remove Social Media Artifacts ----

social_media_noise <- c(
  "https",
  "http",
  "www",
  "com",
  "amp",
  "rt",
  "co",
  "tco"
)

unigrams_clean <- unigrams_clean %>%
  filter(
    !word %in% social_media_noise
  )

# Step 5.5: Combine Similar Words ----

unigrams_clean <- unigrams_clean %>%
  mutate(
    word = case_when(
      word == "republicans" ~ "republican",
      word == "midterms" ~ "midterm",
      TRUE ~ word
    )
  )

# Step 6: Examine Most Common Words ----

unigram_counts <- unigrams_clean %>%
  count(
    word,
    sort = TRUE
  )

head(unigram_counts, 30)


# Step 7: Remove Additional Custom Words ----

custom_stop_words <- tibble(
  word = c(
    "trump",
    "trump's",
    "trump’s",
    "donald",
    "says",
    "said",
    "u.s",
    "news",
    "top",
    "ap",
    "new"
  )
)

unigrams_final <- unigrams_clean %>%
  anti_join(
    custom_stop_words,
    by = "word"
  )

# Step 8: Count Final Unigrams ----

unigram_counts_final <- unigrams_final %>%
  count(
    word,
    sort = TRUE
  )

# Step 9: View Top 25 ----

top_words <- unigram_counts_final %>%
  slice_max(
    n,
    n = 25
  )
#View(top_words)

# Step 10: Create Graph ----

trump_news_chart <- ggplot(
  top_words,
  aes(
    x = reorder(word, n),
    y = n
  )
) +
  geom_col(fill = "steelblue") +
  geom_text(
    aes(label = n),
    hjust = -0.1,
    size = 3
  ) +
  coord_flip() +
  scale_y_continuous(
    expand = expansion(mult = c(0, .10))
  ) +
  labs(
    title = "25 Most Common Unigrams in Trump News Headlines",
    x = "Word",
    y = "Frequency"
  ) +
  theme_minimal()

trump_news_chart