Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

2 normalizar columnas nuevas #3

Merged
merged 18 commits into from
Oct 28, 2024
Merged

Conversation

complexluise
Copy link
Owner

Normalización de datos bibliográficos y ampliación de funcionalidades de limpieza

¿Qué?

Se implementó la normalización de dos nuevos campos bibliográficos y se mejoró la normalización de campos existentes:

  • Nuevo: Normalización del número de clasificación Dewey
  • Nuevo: Normalización del periodo cronológico a números romanos
  • Mejoras en la normalización de lugares de publicación, fechas, autores y títulos

¿Cómo?

Se utilizó un enfoque TDD (Desarrollo Dirigido por Pruebas) para implementar las nuevas funcionalidades:

  1. Número Dewey:

    • Se extrae solo los primeros tres dígitos del número de clasificación
    • Se manejan diferentes formatos de entrada (con puntos, barras, prefijos)
    • Se implementaron pruebas para validar la extracción correcta
  2. Periodo cronológico:

    • Conversión de años a siglos en números romanos
    • Manejo de rangos de años tomando el más reciente
    • Normalización de formatos de entrada variables
    • Pruebas exhaustivas para diferentes formatos de periodos
  3. Mejoras en normalizaciones existentes:

    • Lugar de publicación: mejor manejo de lugares múltiples
    • Fechas: mejor detección de años en diferentes formatos
    • Autores: normalización mejorada de nombres compuestos
    • Títulos: limpieza más robusta de caracteres especiales

¿Por qué?

  1. Estandarización de datos:

    • La normalización del número Dewey permite una clasificación más consistente
    • La conversión de periodos a siglos facilita el análisis temporal
    • Las mejoras en la normalización existente aumentan la calidad de los datos
  2. Mejora en la calidad de datos:

    • Reducción de duplicados por variaciones en el formato
    • Mayor precisión en la clasificación de materiales
    • Mejor soporte para análisis histórico y temporal
  3. Mantenibilidad:

    • El uso de TDD asegura que los cambios están bien probados
    • La refactorización mejora la legibilidad del código
    • Las pruebas documentan el comportamiento esperado

Notas adicionales

  • Se mantiene compatibilidad con el formato de datos existente
  • Las nuevas funcionalidades son opcionales y se activan solo si las columnas correspondientes están presentes
  • Todas las transformaciones son reversibles y mantienen los datos originales

This commit includes new test cases for the function `_normalizar_numero_clasificacion_dewey` in the `test_limpiar_tablas.py` file. The new tests cover a range of inputs, including standard, edge, and complex cases to ensure the function can accurately normalize Dewey numbers in various formats.
The method `_normalizar_numero_clasificacion_dewey` was updated to correctly handle raw Dewey numbers that contain a semicolon. It now splits the input string at the semicolon and uses the second part for normalization, if a semicolon is present. Additionally, the argument name was changed from `dewey_number` to `raw_dewey_number` to reflect the fact that the input may not be a normalized Dewey number.
…not handled correctly, and replaced variable name `anos_encontrados` with `años_encontrados` for better readability.
This commit adds dewey number and period normalization function to the data cleaning script. It also checks for the availability of these columns in the data and applies the corresponding normalization function if available.
…tion

This commit includes two main improvements to the `limpiar_tablas` script related to period normalization:

1. For periods that include multiple years (e.g., "1800-1900"), the script now correctly identifies the most recent year and converts it to a century in Roman numerals.

2. When periods include multiple centuries in Roman numerals (e.g., "XVIII-XXI"), the script now correctly identifies the most recent century.

This is achieved by introducing a new helper function `valor_siglo_romano` that converts a Roman numeral century to its numeric value, which is then used to find the max value in the list of centuries.

This enhancement should significantly improve the accuracy of period normalization in the data cleaning process.
@complexluise complexluise added the enhancement New feature or request label Oct 28, 2024
@complexluise complexluise self-assigned this Oct 28, 2024
@complexluise complexluise linked an issue Oct 28, 2024 that may be closed by this pull request
@complexluise complexluise merged commit a9071e3 into main Oct 28, 2024
1 check passed
@complexluise complexluise deleted the 2-normalizar-columnas-nuevas branch October 28, 2024 22:12
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Normalizar columnas nuevas
1 participant