Skip to content

About

Extraction et Classification de Risques à partir de Documents PDF

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

CritiRiskExtract

Extraction et Classification de Risques à partir de Documents PDF

CritiRiskExtract est une application de traitement automatique du langage naturel (NLP) spécialisée dans l'extraction et la classification de risques et d'opportunités à partir de documents PDF. Le système utilise des modèles de machine learning avancés pour identifier, classifier et structurer les informations de risque dans des chaînes d'approvisionnement et des matières premières critiques.

Fonctionnalités Principales

  • Extraction de texte PDF : Traitement automatique de documents PDF avec métadonnées
  • Classification de risques/opportunités : Scoring automatique des phrases selon leur potentiel de risque
  • Extraction d'entités : Identification automatique de lieux, matériaux, impacts, événements déclencheurs
  • Traduction automatique : Support multilingue avec traduction français/anglais
  • Embeddings vectoriels : Génération d'embeddings pour recherche sémantique
  • Base de données vectorielle : Stockage optimisé avec PostgreSQL + pgvector
  • Graphe de connaissances : Intégration Neo4j pour les relations complexes
  • Fine-tuning : Entraînement personnalisé de modèles RoBERTa
  • Export multi-format : CSV avec résultats structurés

Architecture

├── src/
│   ├── preprocessing/     # Nettoyage et préparation du texte
│   ├── extraction/        # Extraction d'entités et classification
│   ├── embedding/         # Génération d'embeddings vectoriels
│   ├── database/          # Connecteurs DB (PostgreSQL, Neo4j)
│   └── export/           # Export des résultats
├── docker-compose.yml     # Orchestration des services
├── Dockerfile            # Image de l'application
├── main.py               # Point d'entrée principal
└── fine_tuning_debug.py  # Script de fine-tuning

Installation

Prérequis

  • Docker & Docker Compose
  • NVIDIA GPU avec pilotes CUDA (recommandé)
  • Python 3.8+ (pour développement local)

Déploiement avec Docker

  1. Cloner le repository

  2. Préparer les volumes de données

# Créer les dossiers de données partagées
mkdir -p /work/share/databases/docker_volumes/critirisk_db/docker_volumes/{pdfs,results,config,fine_tuning_R}
  1. Lancer les services
docker compose build
docker compose up -d

Services Déployés

  • PostgreSQL + pgvector : localhost:5444

    • Base de données principale avec support vectoriel
  • Neo4j : localhost:7474 (HTTP) / localhost:7687 (Bolt)

    • Graphe de connaissances pour relations complexes
    • Utilisateur : neo4j / Mot de passe : 2024P@P@
  • Application CritiRiskExtract

    • Traitement automatique des PDFs du dossier /pdfs

Base de Données

Schéma PostgreSQL

voir fichier init2.sql

Modèles IA Utilisés

Classification de Risques

  • RoBERTa fine-tuné pour classification binaire risque/opportunité
  • Seuils configurables pour ajustement de sensibilité

Extraction d'Entités

  • SpaCy : Entités nommées génériques (PERSON, ORG, GPE, etc.)
  • Mixtral : Extraction spécialisée via API
  • Mistral : Extraction locale via Ollama

Embeddings

  • Sentence-BERT : Génération d'embeddings de 384 dimensions
  • pgvector : Recherche de similarité vectorielle

Configuration

  1. Placer les PDFs dans le dossier /work/share/databases/docker_volumes/critirisk_db/docker_volumes/pdfs

  2. L'application traite automatiquement :

    • Extraction du texte des PDFs
    • Nettoyage et segmentation en phrases
    • Classification risque/opportunité
    • Extraction d'entités multiples
    • Traduction française si nécessaire
    • Génération d'embeddings vectoriels
    • Stockage en base de données
  3. Récupérer les résultats dans /work/share/databases/docker_volumes/critirisk_db/docker_volumes/results

About

Extraction et Classification de Risques à partir de Documents PDF

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages