if (!require("tidyverse")) install.packages("tidyverse")
## Loading required package: tidyverse
## ── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
## ✔ dplyr     1.1.4     ✔ readr     2.1.5
## ✔ forcats   1.0.0     ✔ stringr   1.5.1
## ✔ ggplot2   3.4.4     ✔ tibble    3.2.1
## ✔ lubridate 1.9.3     ✔ tidyr     1.3.1
## ✔ purrr     1.0.2     
## ── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
## ✖ dplyr::filter() masks stats::filter()
## ✖ dplyr::lag()    masks stats::lag()
## ℹ Use the conflicted package (<http://conflicted.r-lib.org/>) to force all conflicts to become errors
if (!require("tidytext")) install.packages("tidytext")
## Loading required package: tidytext
library(tidyverse)
library(tidytext)


mydata <- read.csv("https://raw.githubusercontent.com/drkblake/Data/main/TNBills22_23.csv")

tidy_text <- mydata %>% 
  unnest_tokens(word,description) %>% 
  count(word, sort = TRUE)


data("stop_words")
tidy_text <- tidy_text %>%
  anti_join(stop_words)
## Joining with `by = join_by(word)`
my_stopwords <- tibble(word = c("amends",
                                "title",
                                "chapter",
                                "board",
                                "tca"))
tidy_text <- tidy_text %>% 
  anti_join(my_stopwords)
## Joining with `by = join_by(word)`
searchterms <- "voting|gender|race|immigration"
mydata$GenAss <- ifelse(grepl(searchterms,
                             mydata$description,
                             ignore.case = TRUE),1,0)
sum(mydata$GenAss)
## [1] 21

Some of the most common terms excluding stop words were words like “education” “School” “Child” “Relative” “student” which shows the Grand Ole Party’s push towards laws in and around family and education. The word “hohenal” was used one time, no idea what that word means but thought that was interesting.