ac_count() calcula frequencias de tokens ou n-gramas a partir de
um objeto ac_corpus(), usando internamente ac_tokenize()
seguido de uma agregacao com dplyr::count().
Pode operar em dois niveis:
por documento (
by = NULL): contagens pordoc_idetoken;por metadados (
by = c("partido", ...)): contagens por variaveis de agrupamento etoken(agregando varios documentos).
Arguments
- corpus
Objeto de classe
ac_corpus().- n
Tamanho do n-grama a ser tokenizado. Encaminhado para
ac_tokenize(). Veja?ac_tokenizepara detalhes.- drop_punct
Logico. Se
TRUE, remove tokens compostos apenas por pontuacao antes de calcular as frequencias (viadrop_punct = TRUEemac_tokenize()).- by
Vetor de nomes de colunas de metadados em
corpusa serem usados como grupos de agregacao. SeNULL(padrao), as contagens sao feitas por documento (doc_id). Se nao forNULL, as colunas indicadas sao usadas como grupos edoc_idnao entra no resultado.- sort
Logico. Se
TRUE(padrao), ordena a saida em ordem decrescente de frequencia (n).- ...
Argumentos adicionais encaminhados para
ac_tokenize()(por exemplo,keep_empty).
Value
Um tibble::tibble():
Se
by = NULL: colunasdoc_id,token,n;Se
bynao nulo: colunasby,token,n.
Examples
df <- data.frame(
id = c("d1", "d2", "d3"),
texto = c(
"O deputado do PT falou na CCJ.",
"O deputado do PL falou novamente.",
"O senador do PT falou na CCJ."
),
partido = c("PT", "PL", "PT"),
stringsAsFactors = FALSE
)
corp <- ac_corpus(df, text = texto, docid = id, meta = partido)
# Frequencia de palavras (unigramas) por documento
ac_count(corp)
#> # A tibble: 20 × 3
#> doc_id token n
#> <chr> <chr> <int>
#> 1 d1 CCJ. 1
#> 2 d1 O 1
#> 3 d1 PT 1
#> 4 d1 deputado 1
#> 5 d1 do 1
#> 6 d1 falou 1
#> 7 d1 na 1
#> 8 d2 O 1
#> 9 d2 PL 1
#> 10 d2 deputado 1
#> 11 d2 do 1
#> 12 d2 falou 1
#> 13 d2 novamente. 1
#> 14 d3 CCJ. 1
#> 15 d3 O 1
#> 16 d3 PT 1
#> 17 d3 do 1
#> 18 d3 falou 1
#> 19 d3 na 1
#> 20 d3 senador 1
# Frequencia de palavras por partido
ac_count(corp, by = "partido")
#> # A tibble: 14 × 3
#> partido token n
#> <chr> <chr> <int>
#> 1 PT CCJ. 2
#> 2 PT O 2
#> 3 PT PT 2
#> 4 PT do 2
#> 5 PT falou 2
#> 6 PT na 2
#> 7 PL O 1
#> 8 PL PL 1
#> 9 PL deputado 1
#> 10 PL do 1
#> 11 PL falou 1
#> 12 PL novamente. 1
#> 13 PT deputado 1
#> 14 PT senador 1
# Frequencia de bigramas por partido, removendo apenas pontuacao
ac_count(corp, n = 2, drop_punct = TRUE, by = "partido")
#> # A tibble: 13 × 3
#> partido token n
#> <chr> <chr> <int>
#> 1 PT PT falou 2
#> 2 PT do PT 2
#> 3 PT falou na 2
#> 4 PT na CCJ. 2
#> 5 PL O deputado 1
#> 6 PL PL falou 1
#> 7 PL deputado do 1
#> 8 PL do PL 1
#> 9 PL falou novamente. 1
#> 10 PT O deputado 1
#> 11 PT O senador 1
#> 12 PT deputado do 1
#> 13 PT senador do 1
