clean up datasources

This commit is contained in:
2025-12-16 00:48:14 +01:00
parent 29aef93f63
commit 5220793328
6 changed files with 99 additions and 57 deletions

View File

@@ -156,33 +156,96 @@ python src/paddle_ocr_tuning.py \
## Fuentes de Datos
- **Dataset**: Instrucciones para la elaboración del TFE (UNIR), 24 páginas
- **Resultados benchmark**: `results/ai_ocr_benchmark_finetune_results_20251206_113206.csv`
- **Resultados Ray Tune**: `src/raytune_paddle_subproc_results_20251207_192320.csv`
- **Resultados Ray Tune (PRINCIPAL)**: `src/raytune_paddle_subproc_results_20251207_192320.csv` - 64 trials de optimización con todas las métricas y configuraciones
---
## Generación del Documento TFM
### Generar documento Word desde Markdown
### Prerrequisitos
```bash
# 1. Generar figuras desde diagramas Mermaid
# Instalar dependencias de Python
pip install beautifulsoup4
# Instalar mermaid-cli para generación de figuras
npm install @mermaid-js/mermaid-cli
```
### Flujo de Generación del Documento
El documento TFM se genera en **3 pasos** que deben ejecutarse en orden:
```
┌─────────────────────────────────────────────────────────────────────┐
│ PASO 1: generate_mermaid_figures.py │
│ ────────────────────────────────────────────────────────────────── │
│ • Lee diagramas Mermaid de docs/*.md │
│ • Genera thesis_output/figures/figura_*.png │
│ • Crea figures_manifest.json con títulos │
└─────────────────────────────────────────────────────────────────────┘
┌─────────────────────────────────────────────────────────────────────┐
│ PASO 2: apply_content.py │
│ ────────────────────────────────────────────────────────────────── │
│ • Lee plantilla desde instructions/plantilla_individual.htm │
│ • Inserta contenido de docs/*.md en cada capítulo │
│ • Genera tablas con formato APA y figuras con referencias │
│ • Guarda en thesis_output/plantilla_individual.htm │
└─────────────────────────────────────────────────────────────────────┘
┌─────────────────────────────────────────────────────────────────────┐
│ PASO 3: Abrir en Microsoft Word │
│ ────────────────────────────────────────────────────────────────── │
│ • Abrir thesis_output/plantilla_individual.htm │
│ • Ctrl+A → F9 para actualizar índices (contenidos/figuras/tablas) │
│ • Guardar como TFM_Sergio_Jimenez.docx │
└─────────────────────────────────────────────────────────────────────┘
```
### Comandos de Generación
```bash
# Desde el directorio raíz del proyecto:
# PASO 1: Generar figuras PNG desde diagramas Mermaid
python3 generate_mermaid_figures.py
# Output: thesis_output/figures/figura_1.png ... figura_8.png
# 2. Aplicar contenido de docs/ a la plantilla UNIR
# PASO 2: Aplicar contenido de docs/ a la plantilla UNIR
python3 apply_content.py
# Output: thesis_output/plantilla_individual.htm
# 3. Abrir en Word y actualizar índices
# PASO 3: Abrir en Word y finalizar documento
# - Abrir thesis_output/plantilla_individual.htm en Microsoft Word
# - Presionar Ctrl+A luego F9 para actualizar todos los índices
# - Ctrl+A F9 para actualizar todos los índices
# - IMPORTANTE: Ajustar manualmente el tamaño de las imágenes para legibilidad
# (seleccionar imagen → clic derecho → Tamaño y posición → ajustar al ancho de página)
# - Guardar como .docx
```
**Contenido generado automáticamente:**
- 30 tablas con formato `Piedefoto-tabla` (Tabla X. *Título* + Fuente)
- 7 figuras desde Mermaid con formato `Piedefoto-tabla` (Figura X. *Título* + Fuente)
- 25 referencias en formato APA con sangría francesa
- Resumen y Abstract con palabras clave reales
### Notas Importantes para Edición en Word
1. **Ajuste de imágenes**: Las figuras Mermaid pueden requerir ajuste manual de tamaño para ser legibles. Seleccionar cada imagen y ajustar al ancho de texto (~16cm).
2. **Actualización de índices**: Después de cualquier cambio, usar Ctrl+A → F9 para regenerar índices.
3. **Formato de código**: Los bloques de código usan Consolas 9pt. Verificar que no se corten líneas largas.
### Archivos de Entrada y Salida
| Script | Entrada | Salida |
|--------|---------|--------|
| `generate_mermaid_figures.py` | `docs/*.md` (bloques ```mermaid```) | `thesis_output/figures/figura_*.png`, `figures_manifest.json` |
| `apply_content.py` | `instructions/plantilla_individual.htm`, `docs/*.md`, `thesis_output/figures/*.png` | `thesis_output/plantilla_individual.htm` |
### Contenido Generado Automáticamente
- **30 tablas** con formato APA (Tabla X. *Título* + Fuente: ...)
- **8 figuras** desde Mermaid (Figura X. *Título* + Fuente: Elaboración propia)
- **25 referencias** en formato APA con sangría francesa
- **Resumen/Abstract** con palabras clave
- **Índices** actualizables (contenidos, figuras, tablas)
- Eliminación automática de textos de instrucción de la plantilla
---

View File

@@ -100,8 +100,7 @@ The template (`plantilla_individual.pdf`) requires **5 chapters**. The docs/ fil
## Important Data Files
### Results CSV Files
- `src/raytune_paddle_subproc_results_20251207_192320.csv` - 64 Ray Tune trials with configs and metrics
- `results/ai_ocr_benchmark_finetune_results_20251206_113206.csv` - Per-page OCR benchmark results
- `src/raytune_paddle_subproc_results_20251207_192320.csv` - 64 Ray Tune trials with configs and metrics (PRIMARY DATA SOURCE)
### Key Notebooks
- `src/paddle_ocr_fine_tune_unir_raytune.ipynb` - Main Ray Tune experiment
@@ -454,7 +453,6 @@ Fuente: American Psychological Association, 2020b.
| Data Type | Source File |
|-----------|-------------|
| Ray Tune 64 trials | `src/raytune_paddle_subproc_results_20251207_192320.csv` |
| Per-page benchmark | `results/ai_ocr_benchmark_finetune_results_20251206_113206.csv` |
| Experiment code | `src/paddle_ocr_fine_tune_unir_raytune.ipynb` |
| Final comparison | Output cells in the notebook (baseline vs optimized) |
@@ -463,11 +461,11 @@ Fuente: American Psychological Association, 2020b.
**WRONG:** "EasyOCR achieved 8.5% CER while PaddleOCR achieved 5.2% CER"
(We don't have this comparison data in our results files)
**RIGHT:** "PaddleOCR with baseline configuration achieved CER between 1.54% and 6.40% across pages 5-9 (source: `results/ai_ocr_benchmark_finetune_results_20251206_113206.csv`)"
**RIGHT:** "The optimization reduced CER from 7.78% to 1.49%, a reduction of 80.9% (source: final comparison in `paddle_ocr_fine_tune_unir_raytune.ipynb`)"
**WRONG:** "The optimization improved results by approximately 80%"
**RIGHT:** "The optimization reduced CER from 7.78% to 1.49%, a reduction of 80.9% (source: final comparison in `paddle_ocr_fine_tune_unir_raytune.ipynb`)"
**RIGHT:** "From the 64 trials in `raytune_paddle_subproc_results_20251207_192320.csv`, minimum CER achieved was 1.15%"
### When Working on Documentation

View File

@@ -63,25 +63,14 @@ def evaluate_text(reference, prediction):
### Resultados del Benchmark
#### Resultados de PaddleOCR (Datos del CSV)
#### Resultados de PaddleOCR (Configuración Baseline)
Del archivo `results/ai_ocr_benchmark_finetune_results_20251206_113206.csv`, se obtienen los siguientes resultados de PaddleOCR para las páginas 5-9 del documento:
Durante el benchmark inicial se evaluó PaddleOCR con configuración por defecto en un subconjunto del dataset. Los resultados preliminares mostraron variabilidad significativa entre páginas, con CER entre 1.54% y 6.40% dependiendo de la complejidad del layout.
**Tabla 4.** *Resultados de PaddleOCR por página (benchmark inicial).*
| Página | WER | CER |
|--------|-----|-----|
| 5 | 12.16% | 6.33% |
| 6 | 12.81% | 6.40% |
| 7 | 11.06% | 6.24% |
| 8 | 8.13% | 1.54% |
| 9 | 10.61% | 5.58% |
*Fuente: `results/ai_ocr_benchmark_finetune_results_20251206_113206.csv`.*
**Promedio PaddleOCR (páginas 5-9):**
- CER medio: ~5.22%
- WER medio: ~10.95%
**Observaciones del benchmark inicial:**
- Las páginas con tablas y layouts complejos presentaron mayor error
- La página 8 (texto corrido) obtuvo el mejor resultado (CER ~1.5%)
- El promedio general se situó en CER ~5-6%
#### Comparativa de Modelos
@@ -144,7 +133,6 @@ Esta sección ha presentado:
**Fuentes de datos utilizadas:**
- `ocr_benchmark_notebook.ipynb`: Código del benchmark
- `results/ai_ocr_benchmark_finetune_results_20251206_113206.csv`: Resultados numéricos
- Documentación oficial de PaddleOCR
## Desarrollo de la comparativa: Optimización de hiperparámetros
@@ -413,16 +401,7 @@ Esta sección presenta un análisis consolidado de los resultados obtenidos en l
#### Resultados del Benchmark Comparativo
Del archivo `results/ai_ocr_benchmark_finetune_results_20251206_113206.csv`, PaddleOCR con configuración inicial (`use_textline_orientation=True`) obtuvo los siguientes resultados en las páginas 5-9:
| Página | WER | CER |
|--------|-----|-----|
| 5 | 12.16% | 6.33% |
| 6 | 12.81% | 6.40% |
| 7 | 11.06% | 6.24% |
| 8 | 8.13% | 1.54% |
| 9 | 10.61% | 5.58% |
| **Promedio** | **10.95%** | **5.22%** |
En el benchmark inicial, PaddleOCR con configuración por defecto mostró variabilidad en el rendimiento según la complejidad de cada página, con CER promedio en torno al 5-6% y variaciones significativas entre páginas con layouts simples (~1.5%) y complejos (~6.4%).
#### Resultados de la Optimización con Ray Tune
@@ -583,6 +562,5 @@ Esta sección ha presentado:
**Resultado principal**: Se logró reducir el CER del 7.78% al 1.49% (mejora del 80.9%) mediante optimización de hiperparámetros, cumpliendo el objetivo de alcanzar CER < 2%.
**Fuentes de datos:**
- `results/ai_ocr_benchmark_finetune_results_20251206_113206.csv`
- `src/raytune_paddle_subproc_results_20251207_192320.csv`
- `src/paddle_ocr_fine_tune_unir_raytune.ipynb`
- `src/raytune_paddle_subproc_results_20251207_192320.csv`: Resultados de 64 trials de optimización
- `src/paddle_ocr_fine_tune_unir_raytune.ipynb`: Notebook principal del experimento

View File

@@ -22,23 +22,26 @@ title: "Estructura del repositorio del proyecto"
flowchart LR
root["MastersThesis/"] --> docs["docs/"]
root --> src["src/"]
root --> results["results/"]
root --> instructions["instructions/"]
root --> readme["README.md"]
root --> scripts["Scripts generación"]
src --> nb1["paddle_ocr_fine_tune_unir_raytune.ipynb"]
src --> py1["paddle_ocr_tuning.py"]
src --> py2["dataset_manager.py"]
src --> nb2["prepare_dataset.ipynb"]
src --> csv["raytune_results_*.csv"]
src --> csv["raytune_paddle_subproc_results_*.csv"]
scripts --> gen1["generate_mermaid_figures.py"]
scripts --> gen2["apply_content.py"]
```
**Descripción de componentes:**
- **docs/**: Capítulos de la tesis en Markdown
- **src/**: Código fuente (notebooks y scripts)
- **results/**: Resultados de benchmarks en CSV
- **instructions/**: Instrucciones y plantilla UNIR
- **docs/**: Capítulos de la tesis en Markdown (estructura UNIR)
- **src/**: Código fuente de experimentación
- `paddle_ocr_fine_tune_unir_raytune.ipynb`: Notebook principal con 64 trials Ray Tune
- `paddle_ocr_tuning.py`: Script CLI para evaluación OCR
- `raytune_paddle_subproc_results_20251207_192320.csv`: Resultados de optimización
- **instructions/**: Plantilla e instrucciones UNIR
- **Scripts de generación**: `generate_mermaid_figures.py` y `apply_content.py` para generar el documento TFM
## A.3 Requisitos de Software

Binary file not shown.

Before

Width:  |  Height:  |  Size: 48 KiB

After

Width:  |  Height:  |  Size: 44 KiB