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

Implementación de Red de Correlaciones Basada en Similaridad de Coseno para Análisis de Tópicos #5

Merged
merged 5 commits into from
Oct 29, 2024

Conversation

complexluise
Copy link
Owner

Pull Request: Implementación de Red de Correlaciones Basada en Similaridad de Coseno para Análisis de Tópicos

Issue relacionado: #4 Calcular red de correlaciones de tópicos

¿Qué hace este PR?

Este Pull Request introduce una nueva función para construir una red de correlaciones entre temas en base a la similitud de coseno, abordando la pérdida de información mencionada en el Issue #4 al calcular únicamente el tema general. La red de correlaciones permite una representación más detallada y conectada de la composición temática de una colección bibliográfica.

¿Cómo se implementa la solución?

  1. Comando CLI para análisis de red:

    • Se agrega el comando analizar_red que toma un archivo de entrada con temas ya procesados y genera un archivo GraphML que contiene la red de correlaciones entre temas.
    • Este comando incluye opciones como el umbral de similitud para definir conexiones significativas y el modelo de embeddings a utilizar.
  2. Función construir_red en modelamiento_topicos.py:

    • Esta función construye un grafo no dirigido utilizando la similitud de coseno entre los embeddings de los temas.
    • Se calcula una matriz de similitud para todos los temas únicos en el archivo de entrada, y se añaden conexiones entre temas con una similitud que exceda el umbral definido.
    • Cada nodo en el grafo representa un tema y está etiquetado con su frecuencia en el conjunto de datos; las conexiones entre temas (aristas) están ponderadas según la similitud entre ellos.
  3. Exportación en formato GraphML:

    • Se incluye la función exportar_graphml, que guarda el grafo en formato GraphML, permitiendo su posterior visualización y análisis en software de redes.

¿Por qué es necesaria esta implementación?

La construcción de una red de correlaciones temáticas basada en la similitud de coseno mejora significativamente el análisis de datos bibliográficos. A diferencia de la asignación de un tema general, esta representación permite:

  • Visualizar relaciones entre temas de manera granular y analizar la composición temática de una colección de manera más detallada.
  • Facilitar la identificación de grupos de temas relacionados y patrones temáticos emergentes en el conjunto de datos.

Esta implementación permite superar la limitación de la asignación de temas únicos, brindando una representación más rica y detallada de los datos.

Cambios realizados

  • bibloclean/cli.py:

    • Nuevo comando analizar_red agregado al CLI, con opciones de umbral de similitud, modelo de embeddings, y ruta de salida para el archivo generado.
  • bibloclean/modelamiento_topicos.py:

    • Nuevas funciones construir_red y exportar_graphml para generar la red de temas y exportarla.

Pruebas y validación

  • El comando analizar_red fue probado con varios umbrales de similitud y diferentes modelos de embeddings para validar la generación adecuada de la red de temas y verificar la precisión en la asignación de conexiones temáticas. La salida en formato GraphML fue validada en software de análisis de redes para confirmar que los nodos y conexiones representaban la estructura temática esperada.

Ejecución de la funcionalidad:

python -m bibloclean.cli analizar_red "path/al/archivo.csv" --umbral 0.8 --modelo "jinaai/jina-embeddings-v3" --salida "output/red_temas.graphml"

Added a new command to the CLI that allows for the generation of a thematic network based on the similarity of bibliographic topics. The command includes options for specifying the similarity threshold, the embedding model to use, and the output path for the generated GraphML file. Additionally, the command displays statistics of the generated network. Also, refactored the 'limpiar_koha' command for improved CLI grouping.
@complexluise complexluise added the enhancement New feature or request label Oct 29, 2024
@complexluise complexluise self-assigned this Oct 29, 2024
@complexluise complexluise linked an issue Oct 29, 2024 that may be closed by this pull request
The README.md file was updated to improve the project documentation. The changes include a rephrasing of the general description of the project, the addition of more detailed instructions on how to use the project's functionalities, a refinement of the prerequisites section and a clearer explanation of the project's structure. The content in Spanish was also revised for better clarity and comprehension.
@complexluise complexluise merged commit 7ae69a6 into main Oct 29, 2024
1 check passed
@complexluise complexluise deleted the 4-calcular-red-de-correlaciones-de-topicos branch October 29, 2024 04:25
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.

Calcular red de correlaciones de topicos
1 participant