📊 Análise Exploratória de Dados (EDA) & Métricas Avançadas

Data de Publicação

05/10/2026

Data de Modificação

02/09/2026

LeetCode Problems Dataset (Edição Bilíngue PT-BR / EN)

Disciplina: Inteligência Artificial II — Engenharia de Computação (IFNMG)

Professor: Aléssio Miranda Júnior
Dataset Base: trabalho/database/leetcode_problems_pt.json & leetcode_problems_pt.csv (2.830 problemas públicos traduzidos)


🎯 Objetivo deste Relatório

Este notebook apresenta um raio-X aprofundado do conjunto de dados bilíngue do LeetCode, revelando propriedades estatísticas, estruturais, linguísticas e algorítmicas que raramente são visíveis à primeira vista.

O relatório serve como bússola analítica para os alunos durante o desenvolvimento dos Trabalhos Práticos (TPs), guiando decisões de pré-processamento, engenharia de atributos (feature engineering), janelas de contexto para LLMs e modelagem preditiva.


1. Configuração do Ambiente e Importação de Bibliotecas

2. Carga dos Dados e Sanitização Estrutural

3. Distribuições Macroscópicas & Engajamento da Comunidade

4. Métricas de NLP, Tokenização e Expansão Textual (EN \(\leftrightarrow\) PT-BR)

Uma dimensão crítica para o uso de Modelos de Linguagem (LLMs) é o tamanho de contexto, densidade de código/tags e a taxa de expansão linguística ao traduzir de Inglês para Português.

5. Análise Comparativa de Soluções (Python vs Java vs C++)

Métricas de linhas de código (LOC - Lines of Code) e complexidade sintática entre linguagens para os mesmos algoritmos.

6. Taxonomia Algorítmica & Matriz de Coocorrência de Tópicos

Identificação de sinergias entre tópicos algorítmicos (ex.: quando Programação Dinâmica aparece junto com Árvores ou Arrays).

7. Síntese de Insights para os Trabalhos Práticos (TPs de IA II)

A partir da análise quantitativa do dataset, destacam-se diretrizes estratégicas para os projetos da disciplina:

Dimensão Analisada Fato Observado Impacto & Decisão Pedagógica nos TPs
Balanceamento de Classes Medium representa ~50% do dataset, enquanto Easy (~26,6%) e Hard (~23,4%) são minoritários. Estratificação Obrigatória: Modelos preditivos de classificação (TP1) devem usar Stratified K-Fold e métricas ponderadas (Macro F1-Score ou Balanced Accuracy) em vez de acurácia simples.
Expansão Textual (PT vs EN) Os enunciados em PT-BR são em média 15% a 20% mais longos em caracteres e tokens que o original em inglês. Janela de Contexto de LLM (TP2): Prompts de few-shot ou chain-of-thought em português exigem atenção redobrada ao limite de tokens de entrada (max_tokens).
Preservação Estrutural de Código 99% dos problemas possuem tags <code> e 97% possuem blocos <pre> com casos de teste. Extração de Features: A contagem de blocos <pre> e complexidade das restrições (<sup>) são fortes preditores não-textuais de dificuldade algorítmica.
Paradigmas Combinados Dynamic Programming, Matrix, Heap e Binary Search possuem a maior proporção relativa de problemas Hard. Modelagem Multirrótulo: A matriz de coocorrência mostra que tarefas de predição de tópicos se beneficiam fortemente de classificadores multi-label (ex: Binary Relevance, Classifier Chains).
Concisão de Linguagem Códigos em Python são em média 38% mais curtos em linhas que Java e 41% mais curtos que C++. Geração & RAG de Código (TP3): Modelos treinados ou avaliados em Python geram menos tokens de saída, reduzindo latência e custo computacional de inferência.

Relatório gerado automaticamente para a disciplina de Inteligência Artificial II — IFNMG.

De volta ao topo