advanced-data-analysis-on-research-publications-proyect

Repositorio que se usara para crear cambios en el proyecto de Inteligencia Artificial, para agrupar publicaciones cientificas por un tema en comun, conectarlos con un grafo de conocimientos e implementacion de queries

https://github.com/ikerorozco/advanced-data-analysis-on-research-publications-proyect

Science Score: 67.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
    Found 2 DOI reference(s) in README
  • Academic publication links
    Links to: zenodo.org
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (3.9%) to scientific vocabulary

Scientific Fields

Artificial Intelligence and Machine Learning Computer Science - 83% confidence
Last synced: 4 months ago · JSON representation ·

Repository

Repositorio que se usara para crear cambios en el proyecto de Inteligencia Artificial, para agrupar publicaciones cientificas por un tema en comun, conectarlos con un grafo de conocimientos e implementacion de queries

Basic Info
  • Host: GitHub
  • Owner: ikerorozco
  • License: gpl-3.0
  • Language: Python
  • Default Branch: main
  • Size: 10.6 MB
Statistics
  • Stars: 0
  • Watchers: 1
  • Forks: 0
  • Open Issues: 0
  • Releases: 0
Created 8 months ago · Last pushed 8 months ago
Metadata Files
Readme License Citation Codemeta

README.md

DOI

📝 Análisis de Artículos Científicos con Grobid

📖 Documentación disponible en: ReadTheDocs

Este repositorio contiene un pipeline de procesamiento de artículos científicos en PDF, utilizando Grobid para la extracción de datos y herramientas de visualización en Python.

🚀 Objetivos del Proyecto

El programa realiza los siguientes análisis sobre artículos de acceso abierto:
1. 📌 Nube de palabras basada en los resúmenes (abstracts).
2. 📊 Gráfico con el número de figuras por artículo.
3. 🔗 Lista de enlaces extraídos de cada documento.


📁 Estructura del Proyecto

sh ├── data/ # 📂 PDFs de entrada para su procesamiento ├── output/ # 📂 Resultados generados (XMLs, gráficos, JSONs) │ ├── wordcloud.png # 📊 Nube de palabras basada en los abstracts │ ├── figures_per_paper.png # 📈 Número de figuras por artículo │ ├── links_per_paper.json # 🔗 Lista de enlaces extraídos ├── src/ # 📂 Código fuente del pipeline │ ├── config.py # ⚙️ Configuración del entorno y rutas │ ├── extraction.py # 🔍 Extracción de abstracts, figuras y enlaces │ ├── process.py # 🛠️ Envío de PDFs a Grobid y procesamiento │ ├── visualization.py # 📊 Generación de gráficos y visualizaciones │ ├── main.py # 🚀 Script principal del programa ├── Dockerfile # 🐳 Configuración de contenedor para la aplicación ├── docker-compose.yml # 🐳 Configuración de servicios (Grobid + App) ├── requirements.txt # 📦 Dependencias necesarias ├── rationale.md # 📝 Validación de los resultados obtenidos ├── LICENSE # ⚖️ Licencia del proyecto └── README.md # 📖 Documentación del repositorio

Instalación y Configuración

Existen dos métodos para ejecutar la aplicación:

1️⃣ Usando Docker Compose (Recomendado) – Corre Grobid y la aplicación en contenedores automáticamente.
2️⃣ Usando Python 3.10+ y un entorno virtual – Ejecuta la aplicación sin Docker, pero usa Grobid en un contenedor Docker.

Ambos métodos permiten procesar los artículos y generar las visualizaciones automáticamente.


1️⃣ Método 1: Usando Docker Compose (Recomendado)

Este método inicia Grobid y la aplicación en contenedores separados, lo que facilita la ejecución sin instalar dependencias manualmente.

Paso 1: Clonar el repositorio

bash git clone https://github.com/SergonM/ArticlesAnalysisGrobid.git cd ArticlesAnalysisGrobid

Paso 2: Agregar los artículos en la carpeta data/

  • En la carpeta data/ hay 2 artículos en PDF por defecto.
  • Puedes reemplazarlos o agregar nuevos documentos en esta carpeta.

Paso 3: Iniciar los servicios con Docker Compose

Ejecuta el siguiente comando para levantar los servicios (en versiones de Docker antiguas es docker-compose):

bash docker compose up -d

🔹 Esto iniciará:
- Grobid en http://localhost:8070
- La aplicación, que interactúa con Grobid y procesa los artículos

📌 Notas: - Si Grobid no responde, verifica que el servicio esté activo en http://localhost:8070/api/isalive. - Para detener los servicios:

bash docker compose down


2️⃣ Método 2: Usando Python 3.10+ con Virtualenv y Docker para Grobid

Este método usa Python 3.10+ para ejecutar la aplicación y un contenedor Docker para Grobid.

Paso 1: Clonar el repositorio

bash git clone https://github.com/SergonM/ArticlesAnalysisGrobid.git cd ArticlesAnalysisGrobid

Paso 2: Crear y activar un entorno virtual

Ejecuta los siguientes comandos para crear un entorno virtual en Python:

bash python -m venv venv source venv/bin/activate # En Linux/macOS venv\Scripts\activate # En Windows

Paso 3: Instalar las dependencias

bash pip install -r requirements.txt

Paso 4: Agregar los artículos en la carpeta data/

  • En la carpeta data/ hay 2 artículos en PDF por defecto.
  • Puedes reemplazarlos o agregar nuevos documentos en esta carpeta.

Paso 5: Iniciar Grobid con Docker

Ejecuta el siguiente comando para iniciar Grobid en un contenedor Docker:

bash docker run -t --rm -p 8070:8070 -e JAVA_TOOL_OPTIONS=-XX:-UseContainerSupport lfoppiano/grobid:0.8.1

🔹 Esto iniciará Grobid en http://localhost:8070.
🔹 Deja esta terminal abierta mientras se ejecuta Grobid.

Paso 6: Ejecutar la aplicación manualmente

En otra terminal, asegúrate de que el entorno virtual sigue activado y ejecuta:

bash python src/main.py

📌 Notas: - Grobid debe estar corriendo antes de ejecutar la aplicación. - Si Grobid deja de responder, reinicia el contenedor con el Paso 5.

Ambos métodos permiten procesar los artículos y generar las visualizaciones automáticamente. 🚀


📊 Resultados Esperados

Después de ejecutar el análisis, los resultados estarán en la carpeta output/:

| Archivo | Descripción | |---------|------------| | wordcloud.png | Nube de palabras con los términos más frecuentes en los resúmenes | | figures_per_paper.png | Gráfico con la cantidad de figuras por artículo | | links_per_paper.json | Lista de enlaces externos extraídos de los artículos |


📄 Validación de Resultados

Para más detalles sobre la validación de los resultados, consulta el archivo rationale.md.


📜 Licencia

Este proyecto está bajo la licencia GNU General Public License v3.0.


🔗 Referencias

Owner

  • Login: ikerorozco
  • Kind: user

Citation (CITATION.cff)

cff-version: 1.1.0
message: "If you use this software, please cite it as below."
authors:
- family-names: Sergio
  given-names: Gonzalez
orcid: https://orcid.org/0000-0000-0000-0000
title:SergonM/ArticlesAnalysisGrobid: Versión 1.0.0
version: v1.0.0
date-released: 2025-03-04

CodeMeta (codemeta.json)

{
  "@context": "https://doi.org/10.5063/schema/codemeta-2.0",
  "@type": "SoftwareSourceCode",
  "name": "ArticlesAnalysisGrobid",
  "version": "1.0.0",
  "author": {
    "@type": "Person",
    "name": "Sergio Gonzalez",
    "email": "sergon20052005@gmail.com",
    "affiliation": "Independiente"
  },
  "description": "Software para el análisis de artículos científicos mediante Grobid.",
  "programmingLanguage": {
    "@type": "ComputerLanguage",
    "name": "Python",
    "version": "3.10+"
  },
  "license": "GPL-3.0",
  "codeRepository": "https://github.com/SergonM/ArticlesAnalysisGrobid",
  "issueTracker": "https://github.com/SergonM/ArticlesAnalysisGrobid/issues",
  "releaseNotes": "https://github.com/SergonM/ArticlesAnalysisGrobid/releases/tag/v1.0.0",
  "downloadUrl": "https://github.com/SergonM/ArticlesAnalysisGrobid/archive/refs/tags/v1.0.0.zip",
  "datePublished": "2025-03-04",
  "dateModified": "2025-03-04",
  "keywords": [
    "Grobid",
    "PDF analysis",
    "Scientific Articles",
    "Text Mining"
  ],
  "softwareRequirements": [
    "Python >=3.10",
    "Docker"
  ],
  "maintainer": {
    "@type": "Person",
    "name": "Sergio Gonzalez",
    "email": "sergon20052005@gmail.com"
  },
  "citation": {
    "@type": "CreativeWork",
    "identifier": "https://doi.org/10.5281/zenodo.14968795",
    "doi": "10.5281/zenodo.14968795"
  }
}

GitHub Events

Total
  • Push event: 1
  • Create event: 2
Last Year
  • Push event: 1
  • Create event: 2

Dependencies

Dockerfile docker
  • python 3.10 build
docker-compose.yml docker
  • lfoppiano/grobid 0.8.1
docs/requirements.txt pypi
  • sphinx *
  • sphinx-autoapi *
  • sphinx-rtd-theme *
requirements.txt pypi
  • beautifulsoup4 ==4.13.3
  • matplotlib ==3.10.0
  • pandas ==2.2.3
  • pytest ==8.3.5
  • reportlab ==4.3.1
  • requests ==2.32.3
  • scikit-learn ==1.3.0
  • sentence-transformers ==2.2.2
  • torch ==2.0.1
  • wordcloud ==1.9.4