egutierrez 105e56cf05 feat(eda): capítulo text_distr (TEXTO/NLP) — primer capítulo de datos no tabulares
Añade el capítulo `text_distr` al motor AutomaticEDA: perfila columnas de texto
libre largo (reseñas, descripciones, comentarios) que la distribución categórica
no resume bien. Sigue el patrón de cat_distr/num_distr (build_text_distr(profile,
ctx) -> Chapter | None) y se registra en CHAPTER_ORDER tras cat_distr.

Activación en dos fases: gate barato desde el perfil (columna no numérica con
len_mean >= 50 chars) + confirmación con muestra cruda (mediana de palabras >= 20).
Un dataset sin texto largo (p.ej. titanic) devuelve None sin tocar el informe.

Bloques por columna (Group con page_break): resumen (longitudes, vocabulario con
TTR y % hapax, idioma dominante, % duplicados, legibilidad), histograma de
longitudes, top términos (tabla + barras), bigramas/trigramas, idiomas detectados
y nube de palabras opcional. Términos ttr/hapax enganchados al glosario clicable.

Lógica delegada a 7 funciones nuevas del registry (datascience, tag eda),
estilo dict-no-throw:
- extract_text_sample (impura, push-down SQL DuckDB/Postgres)
- compute_text_length_stats, compute_vocabulary_stats, compute_top_ngrams (puras, stdlib)
- detect_corpus_language (langdetect opcional), compute_text_readability (textstat
  opcional), compute_text_duplicates (hash + datasketch opcional)

Versión barata sin modelos pesados: las piezas que dependen de una librería
opcional (langdetect, textstat, wordcloud, datasketch) degradan a omitidas sin
lanzar. Añade langdetect y textstat (ligeras) al pyproject + uv.lock.

Verificado: golden sobre dataset de reviews multi-idioma (capítulo presente en
PDF+PPTX+MD con métricas reales), titanic sin capítulo (None), degradación sin
libs, suite automatic_eda + pipeline verde (128 passed), fn index OK.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-30 20:38:17 +02:00
2026-06-29 11:05:00 +02:00
2026-05-30 17:28:47 +02:00
2026-05-30 17:28:47 +02:00
2026-05-30 17:28:47 +02:00
2026-06-27 20:43:03 +02:00

fn-registry — Schema de documentación

Registry personal de código con búsqueda FTS. Diseñado para composición funcional y agentes.

Archivos

  • functions.md — Schema de la tabla functions (incluye pipelines y componentes React)
  • types.md — Schema de la tabla types
  • integrity.md — Reglas de integridad y referencias cruzadas
  • architecture.md — Visión general del sistema
  • sync_setup.md — Vincular una PC al server registry.organic-machine.com (env vars, fn sync, troubleshooting)
  • adr/ — Architecture Decision Records: decisiones de diseño (qué se decidió y por qué)
  • ../reports/ — Reportes de trabajo: artefacto local (entregable de una tarea: qué se hizo, cómo se verificó, gaps). Gitignored salvo .gitkeep, NO sube a Gitea ni se versiona (como los vaults). Convención en .claude/rules/reports.md. Decisión: ADR 0006

Tablas

Tabla Descripción
functions Funciones atómicas, pipelines y componentes React
types Tipos algebraicos (product / sum)

kind: valores posibles

Valor Descripción
function Función atómica pura o impura
pipeline Composición de funciones, siempre impura
component Componente React, extiende el schema base

fn-registry schema v1.0

S
Description
Registry personal de codigo reutilizable con busqueda FTS
Readme 185 MiB
Languages
Python 51.6%
Go 18.5%
C++ 15.1%
Shell 8.2%
C 3.4%
Other 3.1%