Skip to content

scripts em Python e R para análise textual e geração de relatórios em Flesch Reading Ease, Flesch-Kincaid Grade Level (legibilidade) e Cosseno bag-of-words, Jaccard e Levenshtein (similaridade).

Notifications You must be signed in to change notification settings

giomustcode/ai-data-readability

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 

Repository files navigation

ai-data-readability

Segurança de Redes Neurais Generativas (LLMs) Aplicadas às Doenças Relacionadas à Exposição ao Asbesto

Este repositório contém os códigos, planilhas e resultados utilizados no Trabalho de Conclusão de Curso (TCC) que analisou a acessibilidade e segurança da informação de textos gerados por redes neurais generativas (RNGs) em comparação com documentos da Organização Mundial da Saúde (OMS) sobre exposição ao asbesto (amianto).

Objetivo 🔍

O objetivo do trabalho foi avaliar a legibilidade e a similaridade de textos em saúde ocupacional por meio das métricas Flesch Reading Ease (FRE) e Flesch-Kincaid Grade Level (FKG); similaridade do cosseno para avaliar a similaridade temática, distância de Levenshtein para medir a similaridade textual, e o coeficiente de similaridade de Jaccard para analisar a sobreposição de conjuntos de palavras-chave. A análise foi conduzida em dois ambientes distintos (Python e R) para verificar a robustez dos resultados e identificar limitações técnicas nas bibliotecas de cada linguagem.

Motivação e Relevância

A escolha do tema foi principalmente feita por conta do constante crescimento de popularidade das fontes de IA como informação. Os LLMs mais populares são facilmente acessados via browser ou até mesmo via apps de redes sociais (Meta via WhatsApp, Grok via Twitter). Mas deve haver cautela na obtenção e utilização de informações sobre temas sensíveis, e saúde pública é um deles.
A motivação pessoal da escolha do tema, especialmente direcionada para os fact sheets sobre o Amianto publicados pela OMS, se deu por conta do contexto ao qual cresci - a cidade onde ainda opera a maior mina de Amianto da América Latina, visando trazer visibilidade a um tema de relevância que quebra as barreiras regionais.
Esta, inclusive, foi a motivação das ADIs 3406 e 3470 do STF no Brasil, tema do TCC da minha primeira graduação, em Direito.

Links úteis para compreensão sobre o tema:
Amianto no Brasil:

# AMIANTO: Brasil é o terceiro maior exportador, mesmo com banimento (2025)
# Banido no país, amianto volta a ser pauta no STF por causa de lei em Goiás (2025)
# Cancerígeno e banido em 60 países, amianto brasileiro continua a abastecer o mercado mundial (2024)
# Amianto em Goiás: entenda a disputa jurídica (2020)
# Saúde ou emprego? O dilema do amianto, que fez Goiás desafiar STF (2019)

Qualidade e acessibilidade de informações provenientes de LLMs (Wiley, Science Direct):

# Readability of Pediatric Otolaryngology Information: Comparing AI-Generated Content With Google Search Results "ChatGPT4o-generated patient education materials are generally more difficult to read than Google-sourced content, especially for less complex conditions. Given the importance of readability in patient education, AI-generated materials may require further refinement to improve accessibility without compromising accuracy." (2025)
# Evaluating the Quality and Readability of AI-Generated Ophthalmic Surgery Education: A Four Model Comparison (2025)
# A comparison of quality and readability of Artificial Intelligence chatbots in triage for head and neck cancer (2025)

Estrutura do Projeto

projeto_tcc/
├── dados/
│   ├── respostas_completas.xlsx          # planilha original com as respostas
│   ├── versao_finalPy.xlsx               # resultados calculados em Python
│   ├── versao_finalR.xlsx                # resultados calculados em R
│   └── versao_teste.xlsx                 # planilha auxiliar de teste
│
├── scripts/
│   ├── python/
│   │   ├── 00_teste_nonprintable.py      # limpeza de caracteres não imprimíveis
│   │   ├── 01_main_planilha.py           # leitura da planilha e pré-processamento
│   │   ├── 02_heatmap_readingease.py     # geração de heatmap FRE
│   │   ├── 03_heatmap_grade.py           # geração de heatmap FKG
│   │   ├── 04_similarity.py              # analise similaridade
│   │   ├── heatmap_flesch_reading_Py.png # gráfico gerado em Python (FRE)
│   │   └── heatmap_kincaid_grade_Py.png  # gráfico gerado em Python (FKG)
│   │
│   └── r/
│       ├── 00_teste_nonprintable.R       # limpeza de caracteres não imprimíveis
│       ├── 01_metricas_readability.R     # cálculo das métricas de legibilidade
│       ├── 02_heatmap_readingease.R      # geração de heatmap FRE
│       ├── 03_heatmap_kincaid.R          # geração de heatmap FKG
│       ├── heatmap_flesch_reading_R.png  # gráfico gerado em R (FRE)
│       └── heatmap_kincaid_grade_R.png   # gráfico gerado em R (FKG)
│
└── resultados/
    ├── figuras/
    │   ├── heatmap_cosine_bow.png        # gráfico gerado em Python (cos)
    │   ├── heatmap_jaccard_tokens.png    # gráfico gerado em Python (jaccard)
    │   └── heatmap_levenshtein_sim.png   # gráfico gerado em Python (levenshtein)
    │
    └── tabelas/
        └── similaridades_OMS_vs_RNGs.xlsx # planilha com resultados númericos (similaridade)

Requisitos

Python

Python 3.13.7
Bibliotecas: pandas, matplotlib, seaborn, textstat, openpyxl
Instalação via pip install pandas matplotlib seaborn textstat openpyxl

R

R 4.5.1
Pacotes: readxl, tidyverse, quanteda, ggplot2, reshape2
Instalação via install.packages(c("readxl", "tidyverse", "quanteda", "ggplot2", "reshape2"))

Como executar?

Python

Colocar a planilha respostas_completas.xlsx na pasta dados/.

OBS.: Essa planilha foi obtida inserindo perguntas em língua inglesa nos LLMs, baseadas no Fact Sheets correspondente da OMS, cuja fonte já foi linkada acima.

Executar: python scripts/python/01_main_planilha.py
python scripts/python/02_heatmap_readingease.py
python scripts/python/03_heatmap_grade.py
python scripts/python/04_similarity.py

Os resultados serão salvos em planilhas .xlsx e gráficos .png.

R

Executar: source("scripts/r/01_metricas_readability.R")
source("scripts/r/02_heatmap_readingease.R")
source("scripts/r/03_heatmap_kincaid.R")

Os resultados serão salvos em planilhas .xlsx e gráficos .png.

Resultados

Heatmaps comparativos da legibilidade dos textos por pergunta e fonte (OMS vs RNGs) e legibilidade (um para cada método). Interpretação dos resultados utilizada no TCC.

OBS.: Os PNGs (heatmap_flesch_reading_, heatmap_kincaid_grade_, heatmap_cosine_bow, heatmap_jaccard_tokens e heatmap_levenshtein_sim) já estão incluídos no repositório como exemplos de saída, para facilitar a leitura de quem não quiser rodar o código.

Breve Conclusão do Trabalho Acadêmico

O estudo mostrou que, em conteúdos sobre exposição ao asbesto, respostas geradas por modelos de IA tendem a apresentar maior complexidade linguística do que os documentos de referência da OMS, o que pode comprometer a acessibilidade e a segurança informacional.
A combinação de métricas de legibilidade (FRE, FKG) e de similaridade (cosseno, Jaccard, Levenshtein) evidenciou que nem sempre textos “tematicamente corretos” são claros ou terminologicamente alinhados.
As análises em Python e R reforçaram as tendências gerais, apesar de pequenas diferenças técnicas de contagem silábica entre as linguagens. Conclui-se que materiais em saúde ocupacional apoiados por IA devem passar por governança clara, controle de qualidade automatizado e validação humana especializada, para assegurar clareza e fidelidade às diretrizes oficiais. Como agenda de continuidade, recomenda-se explorar métricas adicionais, avaliar impacto em diferentes públicos e desenvolver rotinas de simplificação automática de linguagem.

Limitações

Existem diferenças metodológicas na contagem de sílabas entre Python e R, ocasionando pequenas variações nos valores absolutos. Isso ocorre pois a linguagem Python, ao contrário do R, possui biblioteca com dicionários fonéticos como o textstat para palavras conhecidas, utilizando de regras heurísticas somente como "Plano B", uma espécie de fallback. Sendo assim, a linguagem R possui, de certa forma, maior limitação metodológica neste estudo.
Dando um zoom out da metodologia técnica, as métricas clássicas de legibilidade não capturam nuances semânticas ou culturais do texto e do leitor, o que também deve se ter em mente ao realizar análises de dados neste sentido.

Licença

Uso acadêmico/educacional sem fins lucrativos.

About

scripts em Python e R para análise textual e geração de relatórios em Flesch Reading Ease, Flesch-Kincaid Grade Level (legibilidade) e Cosseno bag-of-words, Jaccard e Levenshtein (similaridade).

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published