#' Extrai assuntos das ementas de decisões do CARF
#'
#' @param df tibble com ao menos acórdão, processo e ementa
#'
#' @return tibble com número de linhas equivalente ao tamanho do vetor
#' @export
#'
#' @examples
#' \dontrun{
#' classificar_assuntos_carf(ementa)
#' }
classificar_assuntos_carf <- function(df){
df <- dplyr::select(df, acordao,processo, ementa)
regex <- "(?i)(?=(Fato gerador|Data do|Ano-calend.rio|Per.odo|Exerc.cio))"
df <- df %>%
dplyr::mutate( assunto = stringr::str_extract(ementa,paste0("(?<=[aA]ssunto:).+?",regex)))
ementa <- df$ementa %>%
stringr::str_remove_all("(.?[:lower:]+|\\d+|,)") %>%
stringr::str_remove_all("(?<=\\W)\\s?\\w\\s?(?=\\W)") %>%
stringr::str_split("\\.\\.\\.?") %>%
purrr::map(~{
str_remove_all(.x,"[-://]") %>%
str_squish() %>%
str_remove("^\\.") %>%
str_remove("\\.$") %>%
str_trim()
}) %>%
# stringr::str_extract(ementa,"(?<=\\D\\d{4})(\\p{L}).{50}") %>%
# stringr::str_split("N?\\.\\s") %>%
# purrr::map(~stringr::str_subset(.x,"[:lower:]{3,}",negate=T)) %>%
tidyr::replace_na("NI") %>%
do.call(rbind,.) %>%
tibble::as_tibble() %>%
dplyr::mutate_all(list(~dplyr::na_if(.,"NI"))) %>%
purrr::set_names(~stringr::str_extract(.,"\\d+") %>%
paste0("subassunto",.)) %>%
dplyr::select(1:3)
dplyr::bind_cols(df,ementa) %>%
dplyr::mutate_all(list(~stringr::str_squish(.))) %>%
dplyr::select(acordao,processo,dplyr::contains("assunto"))
}
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.