R/classificar_assuntos_carf.R

Defines functions classificar_assuntos_carf

Documented in classificar_assuntos_carf

#' 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"))

}
jjesusfilho/carf documentation built on Nov. 4, 2019, 2:44 p.m.