ner-cooccurrence-graphs

Analise de Grafos de Co-ocorrencia via NER em Repositorio de Codigo-Fonte

Disciplina: DCA3702 - Algoritmos e Estruturas de Dados II - T01 (2026.1) Unidade 01 - Trabalho 01

Descricao

Este projeto aplica Named Entity Recognition (NER) sobre o codigo-fonte do Claude Code para construir grafos de co-ocorrencia entre entidades identificadas. A analise utiliza conceitos de teoria de grafos estudados na disciplina, incluindo distribuicao de grau, componentes conectados, coeficiente de agrupamento, deteccao de comunidades e visualizacao interativa.

Fonte de Dados

Visualizacoes Interativas

Explore os grafos de co-ocorrencia diretamente no navegador:

Estrutura do Repositorio

├── analysis.py               # Metricas, visualizacoes e comunidades
├── extractor.py              # Extracao de texto do codigo-fonte
├── ner_pipeline.py           # Pipeline de NER (spaCy + regex)
├── graph_builder.py          # Construcao do grafo de co-ocorrencia
├── data/
│   ├── raw/                  # Arquivos brutos do repositorio-alvo
│   └── graphs/               # Grafos serializados (.gexf)
├── figures/
│   ├── 01-initial/           # Grafos e metricas — extracao inicial (regex)
│   ├── 02-filtered/          # Grafos apos filtragem de ruido
│   ├── 03-spacy/             # Grafos com NER via spaCy (en_core_web_lg)
│   ├── 04-louvain/           # Deteccao de comunidades Louvain
│   └── 05-pyvis/             # Visualizacoes interativas (HTML)
├── docs/                     # Relatorios de cada iteracao
├── pyproject.toml
├── uv.lock
└── README.md

Instalacao

uv sync
python -m spacy download en_core_web_lg

Pipeline

1. Extracao de Texto (extractor.py)

Percorre o repositorio-alvo e extrai texto de multiplas fontes:

2. NER (ner_pipeline.py)

Aplica Named Entity Recognition em duas camadas:

3. Construcao do Grafo (graph_builder.py)

Gera grafos de co-ocorrencia com tres granularidades:

Os grafos sao serializados em formato GEXF (data/graphs/).

4. Analise (analysis.py)

Metricas e visualizacoes:

Iteracoes

# Descricao Doc Figuras
01 Extracao inicial com regex relatorio figures/01-initial/
02 Filtragem de ruido NER relatorio figures/02-filtered/
03 NER com spaCy (en_core_web_lg) relatorio figures/03-spacy/
04 Comunidades Louvain relatorio figures/04-louvain/
05 Visualizacao interativa (pyvis) relatorio figures/05-pyvis/

Tecnologias

Referencias