
Calcular legibilidade textual (Índice de Flesch adaptado ao português)
Source:R/ac_readability.R
ac_readability.Rdac_readability() estima a legibilidade (facilidade de leitura) dos
documentos de um ac_corpus, usando o Índice de Legibilidade de Flesch
adaptado ao português por Martins et al. (1996) a partir da fórmula
original de Flesch (1948).
É uma ferramenta de diagnóstico, não de julgamento de qualidade: um texto "difícil" pelo índice pode ser exatamente o esperado: uma decisão judicial, um artigo técnico, uma bula de remédio. O uso típico é comparativo: saber se o manual de instruções do produto A é mais acessível que o do produto B, se a imprensa simplificou a linguagem de comunicados oficiais ao longo do tempo, ou se avaliações de um produto em um site de e-commerce variam em complexidade por categoria.
A fórmula depende da contagem de sílabas por palavra, que a função estima contando grupos de vogais (heurística comum em legibilidade automática, já que não há dicionário de sílabas open-source completo para português). Isso introduz algum erro em palavras com hiatos, ditongos ou dígrafos vocálicos, mas a estimativa costuma ficar próxima da contagem manual para fins comparativos.
Value
Tibble com colunas:
doc_id(ou as colunas deby, se informado);n_palavras,n_frases,n_silabas: contagens usadas na fórmula;flesch: Índice de Legibilidade de Flesch adaptado ao português (tipicamente 0-100, mas sem teto nem piso matemático: textos muito densos podem produzir valores negativos; valores mais altos = texto mais fácil de ler);nivel: interpretação categórica do índice (ver@details).
Details
A fórmula (Martins et al., 1996) é: $$ILF = 248{,}835 - 1{,}015 \times \frac{palavras}{frases} - 84{,}6 \times \frac{sílabas}{palavras}$$
Faixas de interpretação de Martins et al. (1996), que calibraram a fórmula em livros didáticos brasileiros:
>= 75: muito fácil (1º ao 5º ano do ensino fundamental);50-74,9: fácil (6º ao 9º ano);25-49,9: difícil (ensino médio e superior);< 25: muito difícil (textos acadêmicos/especializados).
Contagens aproximadas. As sílabas são estimadas por grupos de
vogais contíguas, heurística usual em legibilidade automática: acerta
ditongos ("cai-xa"), mas conta hiatos como uma sílaba só ("sa-ú-de"
vira 2), o que tende a subestimar sílabas e superestimar o índice. As
frases são separadas em ., ! e ?, então abreviações ("Sr.",
"art.") e números decimais ("3.5") inflam o número de frases. Ao
comparar grupos de textos do mesmo gênero, o viés é parecido nos dois
lados; para afirmar o nível absoluto de um texto, confira uma amostra
à mão.
References
Flesch, R. (1948). A New Readability Yardstick. Journal of Applied Psychology, 32(3), 221-233.
Martins, T. B. F., Ghiraldelo, C. M., Nunes, M. G. V., Oliveira Jr., O. N. (1996). Readability formulas applied to textbooks in Brazilian Portuguese. ICMSC Technical Report, 28.
Examples
# Avaliações de produtos em um e-commerce, com nivel de complexidade variado
df <- data.frame(
id = paste0("r", 1:4),
texto = c(
"Bom. Gostei. Chegou rápido.",
paste(
"A ergonomia do dispositivo privilegia uma distribuicao",
"assimetrica de peso, o que compromete substancialmente a",
"usabilidade prolongada em cenários de utilizacao intensiva."
),
"Fácil de usar e bonito.",
"O manual e confuso e a instalacao exige conhecimento técnico avancado."
),
categoria = c("eletronico", "eletronico", "casa", "eletronico"),
stringsAsFactors = FALSE
)
corpus <- ac_corpus(df, text = texto, docid = id)
ac_readability(corpus)
#> # A tibble: 4 × 6
#> doc_id n_palavras n_frases n_silabas flesch nivel
#> <chr> <int> <int> <dbl> <dbl> <chr>
#> 1 r1 4 3 8 78.3 muito facil
#> 2 r2 22 1 65 -23.4 muito dificil
#> 3 r3 5 1 9 91.5 muito facil
#> 4 r4 11 1 28 22.3 muito dificil
# Comparando legibilidade média por categoria de produto
ac_readability(corpus, by = "categoria")
#> # A tibble: 2 × 6
#> categoria n_palavras n_frases n_silabas flesch nivel
#> <chr> <int> <int> <dbl> <dbl> <chr>
#> 1 casa 5 1 9 91.5 muito facil
#> 2 eletronico 37 5 101 10.4 muito dificil