📜 Recursos y Scripts del Proyecto

Análisis del Corpus de Ópera - Revista Iberia (1842)

🔧 Herramientas del Proyecto

Esta página proporciona acceso completo a todos los scripts, datos y recursos utilizados en el análisis del corpus de ópera de la Revista Iberia (1842). Todos los materiales están disponibles para descarga, reutilización y adaptación a otros proyectos de Humanidades Digitales.

Open Source Python 3 NLP Chart.js HTML5

🐍

Script de Análisis (Python)

📦 16 KB 🔧 Python 3.7+
Analizador completo del corpus con procesamiento NLP palabra por palabra. Identifica compositores, cantantes, léxico musical y temas principales.
  • ✓ 373 líneas de código
  • ✓ Clase AnalizadorCorpusOpera
  • ✓ 12 métodos de análisis
  • ✓ Exportación a JSON
  • ✓ Solo usa módulos estándar
⬇️ Descargar Script Python
📊

Datos del Análisis (JSON)

📦 10 KB 🔧 UTF-8
Resultados completos del análisis en formato JSON estructurado. Incluye todas las frecuencias, categorías y estadísticas del corpus.
  • ✓ Metadata del corpus
  • ✓ 24 compositores + frecuencias
  • ✓ 14 cantantes + menciones
  • ✓ 8 categorías léxicas
  • ✓ Bigramas y trigramas
⬇️ Descargar Datos JSON
🌐

Dashboard Web (HTML)

📦 43 KB 🔧 HTML5
Página web completa con visualizaciones interactivas usando Chart.js. Dashboard responsive con 9 gráficos, tablas y secciones interpretativas.
  • ✓ 1,549 líneas de código
  • ✓ CSS3 + JavaScript ES6
  • ✓ Chart.js 4.4.0
  • ✓ Diseño responsive
  • ✓ Sin dependencias locales
⬇️ Descargar Web HTML

💻 Guía de Uso Rápido

🐍 Script Python

# 1. Descargar el script
# 2. Configurar el directorio del corpus (línea 373)
directorio_corpus = "/ruta/a/tus/archivos/txt"

# 3. Ejecutar
python3 analizador_corpus_opera.py

# 4. Se genera automáticamente:
# resultados_analisis_opera_iberia_1842.json

📊 Leer datos JSON

# Python
import json
with open('resultados_analisis_opera_iberia_1842.json', 'r', encoding='utf-8') as f:
    datos = json.load(f)

# Top 5 compositores
top5 = list(datos['compositores'].items())[:5]
for compositor, menciones in top5:
    print(f"{compositor}: {menciones}")

# R
library(jsonlite)
datos <- fromJSON('resultados_analisis_opera_iberia_1842.json')
compositores <- datos$compositores

🌐 Usar Web HTML

# Uso local:
1. Descargar index.html y resultados_analisis_opera_iberia_1842.json
2. Colocar ambos archivos en la misma carpeta
3. Abrir index.html en el navegador

# Publicar en servidor web:
1. Subir ambos archivos al servidor
2. Acceder vía URL del servidor
3. Funciona en cualquier hosting estático

🏗️ Estructura del Script Python

Clase: AnalizadorCorpusOpera

Métodos principales:

  • __init__(directorio_base) - Inicialización con diccionarios de entidades
  • leer_corpus_completo() - Lee y unifica 34 archivos .txt
  • normalizar_texto(texto) - Normalización Unicode (NFC)
  • buscar_menciones(patrones, texto) - Búsqueda con regex
  • analizar_compositores() - Identifica 24 compositores
  • analizar_cantantes() - Identifica 14 cantantes
  • analizar_lexico_musical() - Clasifica en 8 categorías
  • analizar_temas_principales() - Identifica 7 áreas temáticas
  • extraer_bigramas_trigramas() - Colocaciones frecuentes
  • generar_analisis_completo() - Ejecuta análisis completo
  • guardar_resultados_json() - Exporta resultados
  • imprimir_resumen() - Muestra resumen en consola

📋 Diccionarios de Entidades

El script incluye diccionarios predefinidos para:

  • Compositores: 24 figuras (Rossini, Donizetti, Mozart, etc.)
  • Cantantes: 14 intérpretes (Rubini, Malibran, Lablache, etc.)
  • Léxico Musical: 150+ términos en 8 categorías
  • Temas: 7 áreas temáticas (teatros, público, crítica, etc.)

Todos estos diccionarios son fácilmente adaptables a otros corpus musicales.

🔄 Adaptar a Tu Proyecto

1️⃣ Cambiar el corpus de entrada

Edita la línea 373 del script Python:

directorio_corpus = "/tu/ruta/a/archivos/txt"

2️⃣ Modificar entidades a buscar

Edita los diccionarios en el método __init__:

# Ejemplo: añadir compositores
self.compositores = {
    'Bach': ['Bach', 'Johann Sebastian Bach', 'J.S. Bach'],
    'Beethoven': ['Beethoven', 'Ludwig van Beethoven'],
    'Brahms': ['Brahms', 'Johannes Brahms'],
    # ... añade los tuyos
}

3️⃣ Agregar nuevas categorías léxicas

# En self.lexico_musical
'nueva_categoria': [
    'término1', 'término2', 'término3'
]

4️⃣ Personalizar el dashboard web

Edita las variables CSS en index.html (líneas 15-24):

:root {
    --primary-color: #8B0000;    /* Tu color principal */
    --background: #F5F5DC;        /* Color de fondo */
    --text: #2C2C2C;              /* Color del texto */
}

⚙️ Requisitos Técnicos

Script Python

  • Python 3.7 o superior
  • Módulos estándar incluidos
  • Sin instalación de paquetes

Web HTML

  • Navegador moderno (2020+)
  • JavaScript habilitado
  • Chart.js (carga desde CDN)

Datos JSON

  • Cualquier editor de texto
  • Compatible con Python, R, JS
  • Importable en Excel/Sheets

📦 Repositorio Completo en GitHub

Todos los archivos están disponibles en el repositorio oficial del proyecto.

🔗 Ver en GitHub

📚 Licencia y Cita

📖 Cita Sugerida

Si utilizas estos recursos en tu investigación, por favor cita:

Prensa musical e Inteligencia Artificial. Proyecto LexiMus: Léxico y
ontología de la música en español (PID2022-139589NB-C33), Universidad
de Salamanca. Disponible en: https://LeximusUSAL.github.io/inicio

💰 Financiación

Proyecto financiado por el Ministerio de Ciencia e Innovación (MICIU/AEI) y Fondos FEDER.

© 2025 Universidad de Salamanca