The hardware and bandwidth for this mirror is donated by dogado GmbH, the Webhosting and Full Service-Cloud Provider. Check out our Wordpress Tutorial.
If you wish to report a bug, or if you are interested in having us mirror your free-software or open-source project, please feel free to contact us at mirror[@]dogado.de.

Quickstart — acR em 5 minutos

Quer entender o acR sem ler nada longo? Este é o menor caminho ponta-a-ponta usando apenas as funções que rodam offline e sem chave de API. Copie e cole.

library(acR)

1 · Um corpus mínimo

df <- data.frame(
  id       = paste0("d", 1:6),
  texto    = c(
    "Sou favoravel a reforma tributaria que simplifica os impostos.",
    "Voto contra a proposta, ela vai destruir o setor produtivo.",
    "Apoio integralmente a reforma, ha ganhos claros de eficiencia.",
    "Esta reforma e um retrocesso, vamos rejeitar em plenario.",
    "Defendo a proposta que corrige distorcoes historicas do sistema.",
    "Somos contra, o texto beneficia apenas grandes corporacoes."
  ),
  posicao  = c("favor", "contra", "favor", "contra", "favor", "contra"),
  stringsAsFactors = FALSE
)

corpus <- ac_corpus(df, text = texto, docid = id, meta = posicao)
corpus
#> 
#> ── Corpus acR ──────────────────────────────────────────────────────────────────
#> • Documentos: 6
#> • Metadados: 1 coluna
#> • Idioma: "pt"
#> 
#> # A tibble: 6 × 3
#>   doc_id text                                                            posicao
#>   <chr>  <chr>                                                           <chr>  
#> 1 d1     Sou favoravel a reforma tributaria que simplifica os impostos.  favor  
#> 2 d2     Voto contra a proposta, ela vai destruir o setor produtivo.     contra 
#> 3 d3     Apoio integralmente a reforma, ha ganhos claros de eficiencia.  favor  
#> 4 d4     Esta reforma e um retrocesso, vamos rejeitar em plenario.       contra 
#> 5 d5     Defendo a proposta que corrige distorcoes historicas do sistem… favor  
#> 6 d6     Somos contra, o texto beneficia apenas grandes corporacoes.     contra

2 · Termos mais frequentes por grupo

Removemos stopwords antes de contar — sem isso, “de”, “a”, “o” dominariam qualquer contagem em português.

corpus <- ac_clean(corpus, remove_stopwords = "pt")
freq_por_grupo <- ac_count(corpus, by = "posicao")
ac_top_terms(freq_por_grupo, n = 5, by = "posicao")
#> # A tibble: 34 × 3
#>    posicao token           n
#>    <chr>   <chr>       <int>
#>  1 contra  contra          2
#>  2 contra  apenas          1
#>  3 contra  beneficia       1
#>  4 contra  corporacoes     1
#>  5 contra  destruir        1
#>  6 contra  grandes         1
#>  7 contra  plenario        1
#>  8 contra  produtivo       1
#>  9 contra  proposta        1
#> 10 contra  reforma         1
#> # ℹ 24 more rows

3 · Palavras distintivas de cada lado (keyness)

key <- ac_keyness(freq_por_grupo, group = "posicao", target = "favor")
head(key, 5)
#> # A tibble: 5 × 10
#>   token group target reference n_target n_reference total_target total_reference
#>   <chr> <chr> <chr>  <chr>        <dbl>       <dbl>        <dbl>           <dbl>
#> 1 apoio posi… favor  contra           1           0           18              18
#> 2 clar… posi… favor  contra           1           0           18              18
#> 3 corr… posi… favor  contra           1           0           18              18
#> 4 defe… posi… favor  contra           1           0           18              18
#> 5 dist… posi… favor  contra           1           0           18              18
#> # ℹ 2 more variables: keyness <dbl>, direction <chr>

4 · Sentimento por documento (OpLexicon PT-BR)

ac_sentiment(corpus)
#> # A tibble: 6 × 6
#>   doc_id n_pos n_neg n_neu score sentiment
#>   <chr>  <int> <int> <int> <int> <chr>    
#> 1 d1         0     1     4    -1 negativo 
#> 2 d2         1     0     6     1 positivo 
#> 3 d3         1     0     6     1 positivo 
#> 4 d4         0     0     5     0 neutro   
#> 5 d5         0     0     6     0 neutro   
#> 6 d6         0     0     6     0 neutro

5 · Escolher um modelo LLM para a próxima etapa

Se você for usar a etapa qualitativa, o pacote sugere modelos com base em custo, idioma e tipo de tarefa. Consulta 100% offline (banco interno).

ac_qual_recommend_model(task = "coding", budget = "medium", lang = "pt", n = 3)
#> 
#> ── Recomendacoes de modelo acR ─────────────────────────────────────────────────
#> ℹ Tarefa: "coding" | Budget: "medium" | Idioma: "pt"
#> ℹ Baseado em Gilardi et al. (2023, PNAS) e Tornberg (2023, PLOS ONE).
#> # A tibble: 3 × 12
#>    rank provider model_id           name  tier  context_k cost_input cost_output
#>   <int> <chr>    <chr>              <chr> <chr>     <dbl>      <dbl>       <dbl>
#> 1     1 google   google/gemini-2.0… Gemi… fast       1000       0.1          0.4
#> 2     2 google   google/gemini-2.5… Gemi… fron…      1000       1.25        10  
#> 3     3 openai   openai/o4-mini     o4-m… bala…       200       1.1          4.4
#> # ℹ 4 more variables: pt_support <chr>, score <dbl>, justificativa <chr>,
#> #   acr_string <chr>

O que vem depois?

Cada uma das funções acima tem exemplos executáveis em ?nome_da_funcao.

These binaries (installable software) and packages are in development.
They may not be fully stable and should be used with caution. We make no claims about them.
Health stats visible at Monitor.