980 likes | 1.14k Views
Extraction automatique des diagnostics à partir des comptes rendus médicaux textuels. Didier Nakache 26 Septembre 2007. Laboratoire CEDRIC – équipe ISID – CNAM de Paris. Plan. Présentation du projet Etat de l’art des classifications de données textuelles Algorithmes EDA et CLO3
E N D
Extraction automatique des diagnostics à partir des comptes rendus médicaux textuels Didier Nakache 26 Septembre 2007 Laboratoire CEDRIC – équipe ISID – CNAM de Paris
Plan • Présentation du projet • Etat de l’art des classifications de données textuelles • Algorithmes EDA et CLO3 • L’évaluation • Le projet Rhéa • Conclusions Didier Nakache - Soutenance de thèse
1. Présentation du projet Didier Nakache - Soutenance de thèse
Présentation générale • Rhea est un outil décisionnel destiné aux services de réanimation, structuré autour de 2 axes : • Rhea : Entrepôt de données (datawarehouse), • Cirea : Fouille de textes pour l’aide au codage. • Rhéa est orienté autour de la thématique des infections nosocomiales. • Le sous projet CIREA ne représente qu’une charge faible du projet Rhéa. Didier Nakache - Soutenance de thèse
Le sous projet CIREA • L’objectif de CIREA est de permettre de retrouver les codes diagnostics ayant motivé le séjour parmi les 52 000 de la CIM10 (Classification Internationale des Maladies), à partir des comptes rendus hospitaliers rédigés en langage naturel. Didier Nakache - Soutenance de thèse
Classification CIM10 Le code CIM10 est un code hiérarchique sur 5 niveaux possibles. Il existe 52000 codes. Exemple : Didier Nakache - Soutenance de thèse
2. Etat de l’art :classification de documents textuels Didier Nakache - Soutenance de thèse
Vue Générale Statistiques Mots clés Règles et systèmes experts Induction par apprentissage (machine learning) Traitement du langage naturel … 1970 1980 1990 2000 Aujourd’hui Didier Nakache - Soutenance de thèse
Tableaux lexicaux Le modèle vectoriel introduit par Salton (1975) représente chaque document, ainsi que le document à classifier, par un vecteur (sac de mots). On utilise souvent une notation binaire (absence / présence) en classification automatique de documents plutôt que l’effectif. Didier Nakache - Soutenance de thèse
Algorithmes majeurs • Naïve Bayes, • Les arbres de décision, • TF/IDF, • SVM (Support Vector Machine) (Vapnik 95). Didier Nakache - Soutenance de thèse
Autres méthodes De nombreuses autres méthodes ont été utilisées pour la classification automatique de documents : • les réseaux de neurones, LLFS (Linear Least Squares Fit), KNN, Chaines de Markov, … etc. Didier Nakache - Soutenance de thèse
Les mesures Didier Nakache - Soutenance de thèse
Mesures de distances • Il existe de nombreuses formules pour mesurer la distance entre deux vecteurs. La plus utilisée est la fonction Cosine : Didier Nakache - Soutenance de thèse
Autres mesures • Il existe de nombreuses autres mesures (distance de Kullback-Leibler, mesure de Jacquard, …) • D’autres approches fonctionnent sur le calcul des dissimilarités (distance de SMART) • L’information mutuelle (concepts proches): • Le coefficient de Dice : • Le gain d’information : • La mesure de Salton : Didier Nakache - Soutenance de thèse
Evaluation : quels corpus et quelles mesures ? Didier Nakache - Soutenance de thèse
Les corpus • On trouve principalement des comparaisons sur la base Reuters, qui est une classification de dépêches de presse. • Dans le domaine médical, on se réfère également à la base OHSUMED. Didier Nakache - Soutenance de thèse
Evaluation des algorithmes Les algorithmes sont généralement évalués par la F-mesure, basée sur la précision et le rappel précision=a/(a+b), rappel=a/(a+c) F-Mesure = ((1+ß²)*Précision*Rappel) / ((ß²*Précision)+Rappel), avec ß²=1 Didier Nakache - Soutenance de thèse
Exemple de F mesure • Considérons que les diagnostics corrects à trouver soient : a,b,c,d • Le programme propose a,b,e • La précision est de 2/3=0.67 • Le rappel est de 2/4=0.5 • La F mesure vaut 2*p*r/(p+r)=0.57 Didier Nakache - Soutenance de thèse
Micro et macro moyenne Didier Nakache - Soutenance de thèse
Comparaison des algorithmes Didier Nakache - Soutenance de thèse
[Dumais et al. 1998] proposent également une série de comparaisons en mettant en compétition une variante de l'algorithme de Rocchio (appelée find similar), des arbres de décision, des réseaux bayésiens et des machines à vecteurs supports : Didier Nakache - Soutenance de thèse
Comparaison des méthodes [Yang et Liu 1999] comparent ainsi les machines à vecteurs supports, les plus proches voisins, les réseaux de neurones, une combinaison linéaire, et des réseaux Bayesiens. Le résultat de leur comparaison est le suivant : Didier Nakache - Soutenance de thèse
Comparer les méthodes ? Indicateurs utilisés : BEP, macro F mesure, micro F mesure, … Didier Nakache - Soutenance de thèse
REUTERS Didier Nakache - Soutenance de thèse
Résultats sur OHSUMED Didier Nakache - Soutenance de thèse
3. Le travail réalisé Didier Nakache - Soutenance de thèse
Analyse du problème : données générales Didier Nakache - Soutenance de thèse
Constitution du corpus et des bases de données • Nous avons recueilli environ 33 000 comptes rendus médicaux exploitables provenant de nombreux établissements hospitaliers en France. • Nous avons constitué une base de données de 543 418 mots, 100 882 concepts médicaux, 957 acronymes médicaux fréquents, 224 mots stop (antidictionnaire), 1445 préfixes et suffixes médicaux. Didier Nakache - Soutenance de thèse
Nombre de diagnostics par CRH • Chaque compte rendu compte en moyenne 4.34 codes diagnostics par patient et par séjour. La variabilité est très importante puisque l'on dénombre de 1 à 32 diagnostics par patient avec une forte concentration entre 1 et 6 : Didier Nakache - Soutenance de thèse
Spécificité du problème La distribution des codes CIM montre une forte concentration sur quelques codes usuels. Ainsi, un algorithme qui présenterait une liste fixe basée uniquement sur les codes les plus fréquents obtiendrait de bons résultats, mais pour quelle utilité ? 10% des diagnostics rencontrés sont présents dans 80% des comptes rendus Didier Nakache - Soutenance de thèse
EDA : un algorithme de désuffixation Didier Nakache - Soutenance de thèse
Contexte EDA est né d’une double observation : • Il existe de nombreuses formes orthographiques, fléchies,… qui rendent différent (pour l’ordinateur) ce qui est identique, • le langage médical repose sur une structure sémantique très forte, Nous avons voulu optimiser nos algorithmes en exploitant ces deux constats. EDA fonctionne en deux phases successives et indépendantes Didier Nakache - Soutenance de thèse
EDA : étape 1 • transformation en minuscules, • séparation des caractères ligaturés ('cœur' devient 'coeur') et des traits d'unions, • suppression des signes diacritiques (exemple : accents 'dégénéré' devient 'degenere'), • suppression des doubles lettres, • remplacer 'ck', 'cqu', 'qu', et 'c' par 'k', et 'y' par 'i'. Didier Nakache - Soutenance de thèse
EDA : étape 1 bis • Enfin, nous appliquons, le cas échéant, un ensemble de 37 règles séquentielles, sauf si le concept restant devait avoir moins de 5 caractères. Didier Nakache - Soutenance de thèse
Exemple EDA étape 1 bis Didier Nakache - Soutenance de thèse
EDA : étape 2 • Constatant la structure sémantique très forte du langage naturel et la structure hiérarchique de la CIM10 par organes, nous avons choisi d’enrichir le compte rendu en fonction des préfixes, suffixes et affixes. Didier Nakache - Soutenance de thèse
EDA Etape 2 : exemples Didier Nakache - Soutenance de thèse
Résultats Didier Nakache - Soutenance de thèse
Algorithme CLO3 Didier Nakache - Soutenance de thèse
CLO3 est un algorithme de classification multilabels avec ajout d’une dimension en environnement incertain Didier Nakache - Soutenance de thèse
Approche textmining CIREA Concept 1 Concept 2 … Concept i Document 1 Document 2 …. Document j Classe 1 Classe 2 …. Classe k Modèle Cirea : Un document = plusieurs classes et plusieurs concepts. L’enjeu devient de trouver un lien direct entre concepts et classes Didier Nakache - Soutenance de thèse
Un environnement incertain Didier Nakache - Soutenance de thèse
Origine de CLO3 • CLO3 s’inspire à la fois de TF/IDF et de Naïve Bayes • Il se base sur le principe que les termes ou concepts utilisés sont en rapport direct avec les codes diagnostics. Didier Nakache - Soutenance de thèse
Calcul du poids brut • Nous allons donc calculer pour chaque terme une première variable appelée 'Poids Brut', définie comme suit : • Poids brut = Variance de la fréquence du concept / moyenne de fréquence du concept • Il s'agit donc d'un coefficient de variation qui va nous permettre de quantifier la concentration de chaque terme. Didier Nakache - Soutenance de thèse
Calcul du poids net • Mais étant donné le nombre de diagnostics associés, il fallait trouver une méthode qui permette de supprimer les mots trop rares (pour ne pas leur donner un poids injustement trop fort). La seconde étape de l'algorithme consiste à calculer un second poids, appelé poids net qui permette de quantifier la relation entre un terme et un diagnostic (que nous appelons couple) : • Poids net = Poids brut * fréquence(couple)*effectif(couple) • Nous multiplions par la fréquence et l'effectif pour faire apparaître en priorité les occurrences fréquemment rencontrées. Ainsi, les diagnostics associés seront supprimés automatiquement. Didier Nakache - Soutenance de thèse
Supposons en effet qu'un patient souffre d'un diabète et d'une crise cardiaque. Dans le compte rendu, nous trouverons par exemple le mot diabète et le mot cardiaque. Nous allons donc avoir les quatre relations suivantes : Mais sur l'ensemble des comptes rendus, la fréquence d'apparition des couples 'terme cardiaque – diagnostic diabète' et 'terme diabète – diagnostic crise cardiaque' sera faible. Donc en multipliant par cette fréquence, on supprime ces relations non désirées. En multipliant par l'effectif, on amplifie la même fonctionnalité. Didier Nakache - Soutenance de thèse
Troisième étape : Poids A • La troisième étape consiste à standardiser les valeurs calculées pour les poids nets, en calculant le poids final, appelé 'PoidsA'. Pour cela, nous divisons le poids de chaque couple par la moyenne du poids de chaque classe de diagnostic. Ce poids sera élevé à la puissance n pour amplifier le résultat. Didier Nakache - Soutenance de thèse
Calcul du poids B • La quatrième étape consiste à créer un second indicateur baptisé 'PoidsB' inspiré des probabilités simples et Naive Bayes mais en extrapolant ce raisonnement. Pour chaque couple 'terme - diagnostic', nous calculons : • PoidsB = Nombre de fois ou le concept est présent dans la classe / Effectif total du concept Didier Nakache - Soutenance de thèse
Calcul du poids CLO3 • A partir de ces deux termes, nous obtenons une fonction qui optimise le résultat de la classification en se basant sur la fonction suivante : • Poids CLO3 = PoidsA2 * PoidsB5 Didier Nakache - Soutenance de thèse
Utilisation du poids CLO3 • Pour classifier un nouveau document, nous additions les poids CLO3 des concepts extrait. Les meilleurs scores sont proposés. Nous filtrons en ne retenant que ceux dont le seuil est supérieur à 5E-4 Didier Nakache - Soutenance de thèse