Fouille de texte et extraction d’informations dans les données cliniques

Fouille de texte et extraction d’informations dans les données cliniques

Classification multi-étiquette de textes cliniques

En 1.2, nous présentions brièvement le PMSI, outil épidémiologique et de connaissance de l’activité des établissements de santé, qui est utilisé comme outil d’allocation budgétaire depuis 2005. les établissements de santé français sont actuellement rémunérés en fonction des codes CIM-10 qu’ils rapportent. Ainsi, le développement d’outils d’aide au codage automatique de textes cliniques français avec la CIM-10 est devenu une nécessité pour les établissement de santé. Cette tâche de classification est une thématique de recherche à laquelle les chercheurs en informatique médicale s’intéressent depuis plus de 20 ans (LIMA, LAENDER et RIBEIRO-NETO, 1998). En 1.1.2, nous avons présenté les méthodes de classification automatique de textes proposées par les chercheurs afin de résoudre différentes tâches. En 1.2.1, nous avons présenté la Classification Internationale des Maladies, une classification médicale hiérarchisée publiée par l’Organisation Mondiale de la Santé (OMS) et utilisée par de nombreux pays membres. En 1.2.2 et 1.2.3, nous avons présenté les jeux de données annotées ainsi que les méthodes proposées dans le cadre des campagnes d’évaluation du CLEF eHealth Evaluation Lab de 2016 à 2018 et leurs résultats. Cependant, les textes cliniques français proposés dans le cadre de ces campagnes, bien d’intéressants, ne correspondent pas à du texte libre mais plutôt à du texte contrôlé dans une structure standardisée. Par conséquent, les approches phrastiques proposées lors de ces campagnes nous semblent trop spécifiques pour être utilisées dans le cadre de nos travaux, et notamment peu à même de de gérer la grande variété d’expressions que l’on peut trouver dans des dossiers cliniques pour évoquer un évènement médicale encodable par la CIM-10. Dans ce chapitre, qui s’appuie principalement sur DALLOUX, CLAVEAU, CUGGIA et al., 2020, nous proposons plusieurs approches pour la classification multi-étiquette de textes cliniques par apprentissage artificiel que nous entraînons et testons sur des données réelles provenant du Centre Hospitalier Universitaire (CHU) de Rennes. Ainsi, dans la section 2.1, nous décrivons le contenu du corpus de textes cliniques du CHU à l’aide d’une note clinique factice et de statistiques. Ensuite, dans la section 2.2, nous commençons par présenter l’approche par dictionnaires qui constitue notre point de référence, puis nous présentons les systèmes de classification multi-étiquette par apprentissage supervisé que nous développons. Enfin, dans la section 2.3, nous présentons le protocole expérimental et l’analyse des résultats obtenus pour la tâche classification multi-étiquette de textes cliniques. 

Jeu de donnée

Le corpus dont nous disposons contient 28 000 textes cliniques créés au CHU de Rennes en 2016. Chaque document contient une ou plusieurs notes pour un seul patient issues d’un seul séjour à l’hôpital. Les textes cliniques que nous manipulons sont protégés par le secret médical. Par conséquent, nous ne pouvons pas illustrer ce manuscrit avec des exemples réels. Cependant, bien que la note clinique présentée dans la figure 2.1 soit factice, le format ainsi que le contenu de cette note sont conformes à ceux des textes cliniques de notre jeu de données. Dans l’en-tête du document, nous retrouvons les statuts (Professeur, Docteur, interne), prénom et nom des praticiens ayant participé aux actes médicaux réalisés sur le patient. Nous y retrouvons aussi la spécialité concernée, ici la néphrologie, ainsi que le lieu et la date de rédaction de la note. Le contenu du compte-rendu d’hospitalisation commence par identifier le patient (prénom, nom, date de naissance), le contexte de son hospitalisation et la date. Ensuite, les antécédents médicaux du patient (insuffisance rénale, hypertension artérielle, orchiectomie, etc.) et traitements habituels (ARA II, LÉVOTHYROX) sont indiqués. Puis, le traitement ou l’opération proposés au patient sont renseignés, ici une greffe de rein. Le déroulement de l’opération est ensuite décrit. La date de l’opération, le temps opératoire, le docteur responsable et le résultat de l’opération sont donnés. Dans le cas présent, les suites de l’opération, du fait des complications, sont décrites (extubation, diurèse, écho-doppler, etc.). Enfin, des informations concernant le CHU de Rennes (adresse, numéro de téléphone/de fax, services concernés, etc.) sont données. D’autres informations, telles que les résultats d’examens de biologie médicale présentés dans la figure 2.2, sont souvent contenues dans ce type de textes. Nous constatons que ces textes cliniques sont très différents des certificats de décès présentés dans le tableau 1.2. En effet, là où les certificats de décès sont composés de phrases succinctes parfois très proches de l’intitulé des codes CIM-10, les notes cliniques présentent bien plus d’informations relatives aux patients, aux diagnostics et à leurs prises en charge. Elles sont verbeuses et contiennent beaucoup de bruit. En conséquence, et bien que les méthodes de tokenisation puissent différer, nos documents sont beaucoup plus longs que les certificats de décès. D’après les statistiques présentées dans les tableaux 1.1 et 2.1, les certificats contiennent en moyenne 10 tokens et 4 codes par document, tandis que nos textes cliniques sont composés en moyenne de 1 345 tokens par document et deux fois plus de codes. Par ailleurs, nous constatons, d’une part, que le corpus CépiDC compte moins de 4 000 codes CIM-10 uniques alors que notre jeu de données en compte 6 113, et, d’autre part, nous constatons que la majorité des codes sont très peu représentés dans le corpus du CHU. En effet, 3 885 des 5 735 codes présents dans les données d’entraînement apparaissent moins de 10 fois et seuls 382 codes comptent plus de 100 occurrences. La figure 2.3 illustre ce problème de représentation. Enfin, là où l’ensemble de test du corpus CépiDC compte 70 codes non vu dans l’ensemble de test, notre jeu de données en compte 212.

Nos approches

Dans cette section, nous présentons différentes approches que nous développons pour résoudre la tâche de classification. En 2.2.1, nous présentons l’approche par dictionnaires qui constitue notre point de référence (baseline). Si les approches par apprentissage artificiel sont aujourd’hui prédominantes, plusieurs approches de ce type ont été proposées au cours des campagnes d’évaluation du CLEF eHealth Evaluation Lab, soit en méthode principale, soit en complément d’une approche par apprentissage (VAN MULLIGEN et al., 2016 ; ZWEIGENBAUM et LAVERGNE, 2017 ; COSSIN et al., 2018). Puis, en 2.2.2, nous présentons différents modèles pour l’apprentissage de plongements de mots et le modèle pré-entraîné que nous utilisons, puis, nous présentons les systèmes de classification par apprentissage supervisé que nous développons.

Approche par dictionnaires

Inspirée de COSSIN et al., 2018, bien que moins sophistiquée, notre approche utilise plusieurs dictionnaires CIM-10 ainsi que la distance de Levenshtein pour attribuer des codes à chaque phrase de nos textes cliniques. Cette approche servant simplement de point de référence, la segmentation de nos documents en phrases n’est pas non plus très sophistiquée. Ainsi, nous séparons chaque phrase sur la base des signes de ponctuation de fin de phrase et des sauts de ligne. Les dictionnaires CIM-10 utilisés sont, d’une part, les codes et leur définition, tels que publiés sur les sites de l’Agence technique de l’information sur l’hospitalisation 1 ou Wikipedia 2 , et, d’autre part, le dictionnaire2015.csv mis à disposition lors des campagnes d’évaluation du CLEF eHealth Evaluation Lab. Ce dictionnaire contient 147 342 entrées relatives à 6 291 codes. 3 500 de ces 6 291 codes sont présents dans notre dataset, alors que 2 613 codes présents dans notre jeu de données ne sont pas représentés dans le dictionnaire2015.csv. Dans le cadre de ces travaux, nous avons essayé de retrouver les entrées de ces dictionnaires dans nos textes par correspondance exacte (exact matching). Utilisée par COSSIN et al., 2018 sur les certificats de décès lors du CLEF eHealth Evaluation Lab 2018, cette approche obtient de bon résultats. Cependant, dans le cas présent, elle ne retourne que quelques codes pour l’intégralité du jeu de données de test. Le contenu de nos documents explique cette absence de résultats. En effet, comme nous l’avons vu en 1.2.2, les certificats de décès sont proprement segmentés en phrases et le contenu de ces documents est très proche des intitulés des codes CIM-10. Au contraire, le contenu de nos documents, présenté en 2.1, est très différent. En conséquence, nous décidons d’utiliser une méthode de recherche plus approximative, par distance de Levenshtein. Utilisée par l’approche de COSSIN et al., 2018 afin de détecter les fautes de frappe, la distance de Levenshtein (LEVENSHTEIN, 1966) entre deux chaînes de caractères est le nombre minimum de modifications de caractères (insertions, suppressions ou substitutions) nécessaires pour passer d’une chaîne à 1. Ainsi, elle permet de calculer la similarité entre les entrées des dictionnaires et les phrases de nos textes cliniques. Le ratio retourné par cette mesure de similarité nous permet de valider ou non chaque code pour chaque phrase selon un seuil défini empiriquement.

Approches par apprentissage supervisé

Approches pour la représentation vectorielle des mots Diverses méthodes ont été utilisées pour représenter les mots ou les textes en tant que vecteurs en entrée des classifieurs. Mentionnons par exemple les modèles de sacs de mots, tels que le nombre d’occurrences de chaque token dans chaque document ou TF-IDF (term frequency–inverse document frequency), auxquels l’allocation de Dirichlet latente (BLEI, NG et JORDAN, 2003) ou l’analyse sémantique latente (DEERWESTER et al., 1990) peuvent être appliquées. Même si ces approches continuent d’être utilisées, de nouveaux modèles proposant de meilleures représentations des relations sémantiques entre les mots ont été proposés. Dans le cadre de nos travaux, nous utilisons plusieurs représentations vectorielles de mots basées sur les plongements de mots (word embeddings), dans différentes langues. Ces techniques de modélisation du langage et d’apprentissage de descripteurs, où chaque token est représenté par un vecteur de nombres réels, permettent notamment de réduire la dimensionnalité de l’espace vectoriel, ce qui est crucial en apprentissage automatique pour lutter contre le fléau de la dimension. Word2vec (MIKOLOV et al., 2013) est un groupe de modèles visant à produire des plongements de mots à partir du texte brut. L’architecture de ces modèles est composée d’un réseau de neurones artificiels formé de deux couches qui est entraîné dans le but de capturer le contexte linguistique des mots. Word2vec prend en entrée un grand volume de textes et produit un espace vectoriel, généralement de plusieurs centaines de dimensions, où chaque mot unique du corpus se voit attribuer un vecteur lui correspondant dans l’espace. Les vecteurs de mots sont positionnés dans l’espace vectoriel de sorte que les mots qui partagent des contextes communs dans le corpus soient situés les uns à côté des autres. Les vecteurs de mots peuvent être calculés à l’aide de deux modèles d’apprentissage : le modèle CBOW (sacs de mots continus), qui prédit le mot cible à partir des mots du contexte, et le modèle Skip-Gram, qui prédit les mots du contexte à partir du mot cible. D’après les auteurs, CBOW est plus rapide que Skip-Gram, cependant, ce dernier fait un meilleur travail pour les mots peu fréquents. 

Table des matières

Introduction Générale
1 État de l’art
1.1 Généralités
1.1.1 Traitement automatique de la langue biomédicale
1.1.2 Classification automatique de textes
1.1.3 Étiquetage de séquences
1.2 Classification multi-étiquette de textes cliniques
1.2.1 La Classification Internationale des Maladies
1.2.2 Jeux de données annotées
1.2.3 Systèmes de classification
1.3 Détection de la négation et de l’incertitude
1.3.1 Négation et incertitude
1.3.2 Jeux de données annotées
1.3.3 Étiquetage automatique
2 Classification multi-étiquette de textes cliniques
2.1 Jeu de données
2.2 Nos approches
2.2.1 Approche par dictionnaires
2.2.2 Approches par apprentissage supervisé
2.3 Expériences de classification CIM-10
2.3.1 Protocole expérimental
2.3.2 Analyse des résultats
3 Corpus constitués dans le cadre de la thèse
3.1 Corpus biomédicaux français
3.1.1 Règles d’annotation
3.1.2 ESSAI : corpus français d’essais cliniques
3.1.3 CAS : corpus français de cas cliniques
3.2 Corpus biomédicaux brésiliens
3.2.1 Protocoles d’essais cliniques brésiliens
3.2.2 SemClinBr
4 Détection de la négation et de l’incertitude
4.1 Nos approches
4.1.1 Plongements de mots pré-entraînés
4.1.2 Approches pour l’étiquetage de séquences
4.2 Étiquetage automatique des marqueurs
4.2.1 Protocole expérimental
4.2.2 Analyse des résultats
4.3 Étiquetage automatique de la portée
4.3.1 Protocole expérimental
4.3.2 Analyse des résultats
4.3.3 Analyse des erreurs
Conclusion générale

projet fin d'etudeTélécharger le document complet

Télécharger aussi :

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *