Ce projet implémente un pipeline de machine learning pour détecter les relations Chimique-Maladie Induite (CID) à partir de la littérature biomédicale. Le système traite des documents BioC XML, extrait des caractéristiques linguistiques et statistiques, et utilise plusieurs algorithmes de classification pour identifier les relations CID potentielles.
- Charge des documents au format BioC XML (1500 au total)
- Extrait les entités chimiques et maladies avec leurs IDs MESH
- Identifie les relations CID à partir des données annotées
- Tokenisation et segmentation en phrases avec NLTK
- Gestion des entités avec tirets (ex: "delta 9-tetrahydrocannabinol" → "delta_9_tetrahydrocannabinol")
- Simplification des phrases en se concentrant sur le contexte des entités
Crée 27 caractéristiques organisées en trois catégories :
- Mention chimique (String)
- Mention de maladie (String)
- Mots indices de relation (String)
- Chemin POS vers le chimique (String)
- Chemin POS vers la maladie (String)
- Hauteur depuis la racine au chimique (Numérique)
- Hauteur depuis la racine à la maladie (Numérique)
8-27. Diverses caractéristiques numériques et booléennes incluant :
- Distances en tokens entre les entités
- Comptes d'entités dans les phrases
- Indicateurs de présence dans le titre
- Indicateurs de contexte clinique
- Indicateurs de dose
- Indicateurs de motifs de mots
- Noyau : Linéaire/RBF avec optimisation GridSearch
- Réglage des paramètres de régularisation
- Meilleures performances avec des poids de classe équilibrés
- Critère de gain d'information
- Optimisation de la profondeur d'élagage
- Analyse d'importance des caractéristiques disponible
- Algorithmes de boosting par descente de gradient
- Système de régularisation L1/L2 pour éviter le surapprentissage
- Prise en charge native du déséquilibre des classes
- Gère spécifiquement les distributions de classes déséquilibrées
- Fonctionne bien avec les caractéristiques TF-IDF
- Entraînement et prédiction rapides
Montre les relations entre différentes caractéristiques et leur corrélation avec les labels CID
Visualise le déséquilibre des classes dans le dataset (relations CID vs Non-CID)
Compare les distributions des caractéristiques entre instances CID positives et négatives
Analyse la distribution des distances en tokens entre les mentions chimiques et les maladies
L'application Streamlit fournit une interface intuitive pour interagir avec le système de détection CID :
- Sélection du Modèle : Choix parmi 6 modèles différents
- Seuil de Prédiction : Ajustement de la sensibilité (0.0-1.0)
- Structure BioC Format : Documentation du format attendu
- Document ID : Identifiant unique du document
- Section Titre : Zone de texte avec annotations éditables
- Section Résumé : Zone de texte plus grande avec annotations détaillées
- Tables éditables pour ajouter/modifier les entités chimiques et maladies
- Import JSON BioC : Chargement de fichiers BioC formatés
- Export JSON BioC : Téléchargement des données au format BioC
- Visualisation : Affichage du format BioC converti
- Exemple Pré-chargé : Document d'exemple complet (ID: 6504332)
- Bouton "Load Example" : Remplit automatiquement tous les champs
- Saisie du texte dans les sections Titre et Résumé
- Annotation des entités chimiques et maladies
- Conversion automatique au format BioC
- Détection des paires co-occurrentes
- Extraction des 27 caractéristiques
- Transformation via le préprocesseur
Tableau détaillé des prédictions avec scores de confiance
- Chemical : Nom de l'entité chimique
- Disease : Nom de l'entité maladie
- Passage : Titre ou Résumé
- Sentence # : Numéro de phrase dans le passage
- In Title : Indicateur de présence dans le titre
- Sentence Preview : Extrait de la phrase
- Clue Words : Mots indices détectés
- Raw Prediction : Prédiction brute (0/1)
- Probability : Score de confiance (0-1)
- Threshold Prediction : Prédiction finale basée sur le seuil
- Confidence Level : Niveau de confiance (Faible/Moyen/Élevé)
- Total Pairs : Nombre total de paires analysées
- CID Relations : Nombre de relations CID détectées
- In Title : Paires dans le titre
- Avg Probability : Score moyen de confiance
Liste détaillée des relations détectées avec :
- Score de probabilité
- Niveau de confiance
- Localisation dans le document
- Mots indices associés
- Gradient de couleur pour les probabilités (rouge → vert)
- Icônes visuelles pour les indicateurs booléens
- Mise en évidence des relations CID détectées
- Affichage du format BioC converti
- Résumé des caractéristiques extraites
- Statistiques de prétraitement
- Support complet du format BioC JSON
- Téléchargement des résultats en CSV
- Persistance des données via session state
- Importance des Caractéristiques : Les chemins POS et les mots indices sont très discriminants
- Déséquilibre des Classes : Biais important vers les instances négatives nécessitant une gestion attentive
- Importance du Contexte : La présence dans le titre et les mots cliniques autour des entités améliorent la détection
- Diversité des Modèles : Différents algorithmes capturent différents aspects des relations CID
- Incorporer des approches de deep learning (BERT, BioBERT)
- Ajouter une validation croisée avec des datasets externes
- Implémenter un vote d'ensemble entre tous les modèles
- Développer une API de prédiction en temps réel
- Étendre à d'autres types de relations biomédicales
Ce projet est destiné à des fins de recherche académique. Veuillez citer si utilisé dans des publications.









