Annotation et interrogation sémantiques de textes médicaux Asma Ben Abacha1 & Pierre Zweigenbaum1 LIMSI - CNRS, B.P. 133 91403 Orsay CEDEX France {asma.benabacha, pz}@limsi.fr Résumé : Ce travail s’inscrit dans le cadre de la réalisation d’un système de question réponse pour le domaine médical. Dans ce papier, nous présentons notre approche d’annotation sémantique de textes médicaux. Cette approche utilise des ressources sémantiques du domaine ainsi que des méthodes linguistiques pour l’annotation (i) des entités médicales et (ii) des relations sémantiques qui les relient. Ces informations sont sauvegardées sous format RDF et interrogées ul- térieurement pour répondre aux requêtes utilisateur. Dans la dernière partie de cet article, nous proposons une approche basée sur l’annotation et l’interrogation sémantiques pour la mise en place d’un système de question réponse. Mots-clés : Annotation sémantique, RDF, domaine médical, UMLS, recherche sémantique, SPARQL. 1 Introduction Le domaine médical dispose de plusieurs ressources sémantiques structurées (e.g. le Métathésaurus et le réseau sémantique de l’UMLS). Ces ressources permettent de résoudre certains problèmes comme la grande variabilité des termes médicaux et de structurer et enrichir le contenu des textes médicaux par des annotations sémantiques. La tâche d’annotation sémantique améliore toute exploitation ultérieure des textes an- notés (e.g. pour la recherche et l’extraction d’information). Dans cette optique plusieurs travaux ont été réalisés. (Khelif & Dieng-Kuntz, 2004) ont utilisé le réseau sémantique de l’UMLS comme une ontologie du domaine biomédical et les termes du Métathésau- rus comme instances possibles de concepts biomédicaux. Ils ont utilisé GATE (Cun- ningham et al., 2002) et le service Web UMLSKS pour annoter les documents par les différents termes de l’UMLS. Ils ont aussi essayé d’extraire les relations pouvant exister entre ces termes, et particulièrement la relation « play role » en utilisant l’analyseur syn- taxique Syntex (Bourigault & Fabre, 2000) et une grammaire développée en Jape. (Jon- quet et al., 2009) ont proposé un service web d’annotation appelé Open Biomedical An- notator (OBA) qui permet aux utilisateurs d’exploiter les ontologies biomédicales (e.g. Gene Ontology, SNOMED-CT) pour annoter leurs données automatiquement. L’anno- tateur OBA a été utilisé pour créer un système d’indexation de ressources biomédicales appelé Open Biomedical Ressources (OBR). Cet index permet (i) de rechercher des WSM 2010 données biomédicales annotées par un concept donné et (ii) de retrouver les annota- tions correspondant à une ressource ayant un identifiant donné (e.g. PubMedID, GEO datasetID). (Jilani & Amardeilh, 2009) ont proposé une méthode pour construire et peu- pler une ontologie automatiquement en utilisant des patrons lexico-syntaxiques. Elles ont construit des patrons lexicaux pour déterminer les liens entre une mutation, un gène, un miARN (micro Acides RiboNucléiques) et/ou une maladie en recherchant leurs co- occurrences dans les phrases du corpus. Leur méthode donne une précision de 72% ainsi qu’un rappel de 50%. Dans cet article nous proposons une approche qui exploite l’UMLS pour annoter (i) les entités médicales présentes dans des textes en anglais (e.g. Maladie, Médicament) et (ii) les relations sémantiques qui les relient (e.g. traiter, prévenir). Ces annotations sont sauvegardées sous format RDF et utilisées ultérieurement pour répondre aux re- quêtes d’un utilisateur (e.g. « ?x Traite Varicelle »). Nous ciblons particulièrement des résumés et des articles médicaux de Medline. Nous commençons par présenter notre méthode d’annotation sémantique des textes médicaux ainsi que les résultats expéri- mentaux obtenus (section 2). Après la production de ces annotations sémantiques, nous nous intéressons dans une deuxième partie à leur exploitation et nous présentons notre méthode d’interrogation sémantique (section 3). Dans une deuxième partie nous pro- posons une architecture sémantique pour la mise en place d’un système de question réponse (section 4). Enfin nous concluons et donnons quelques perspectives (section 5). 2 Annotation sémantique L’annotation sémantique de textes au sens large comprend l’association de sens à l’information contenue dans les documents par des annotations/méta-données, insérées dans le document lui-même ou dans des supports externes. Dans le cadre du Web sé- mantique, les besoins d’interopérabilité et de passage à l’échelle rendent nécessaire l’automatisation du processus d’annotation et l’utilisation de formalismes standardisés. Dans cette perspective nous utilisons les langages RDF(S) et OWL pour représenter les connaissances du domaine sous forme d’ontologie (conceptualisation partagée d’un domaine). Plus particulièrement, nous utilisons le réseau sémantique de l’UMLS sous format RDFS comme ontologie de référence. Le processus d’annotation consiste ensuite en trois étapes que nous détaillons dans cette section : (i) reconnaissance des entités médicales (e.g. maladie, examen médical) présentes dans les phrases du corpus (ii) identification des relations sémantiques qui relient les entités reconnues (e.g. traite, complique, cause) et (iii) transformation des informations extraites en format RDF. Les deux premières étapes seront décrites plus en détail dans un prochain papier. 2.1 Reconnaissance des entités médicales Plusieurs approches et outils se sont intéressés à l’extraction des entités médicales. Un des outils les plus largement utilisés pour cette tâche est MetaMap. MetaMap iden- tifie les entités et leurs catégories en utilisant le Métathesaurus et le réseau sémantique de l’UMLS et fournit potentiellement plusieurs catégories candidates aux entités qu’il Annotation et interrogation sémantiques retrouve avec des scores de confiance. Plus précisément, ces catégories sont les types du réseau sémantique UMLS jugés comme étant pertinents pour l’entité retrouvée. Cependant l’étude de l’utilisation simple de MetaMap sur un de nos corpus a révélé qu’il présente certains problèmes résiduels. Il s’agit le plus souvent d’erreurs aux ni- veaux de la segmentation du corpus en phrases et en syntagmes nominaux, mais aussi au niveau de la catégorisation des termes médicaux trouvés. Dans ce papier nous pro- posons une approche utilisant des outils efficaces connus dans le domaine du TAL en amont de l’emploi de MetaMap et une méthode de filtrage en aval des résultats obtenus. Cette approche est résumée dans la figure 1. F IG . 1 – Processus de reconnaissance des entités médicales Nous prenons en entrée des corpus médicaux textuels que nous segmentons en phrases avec les modèles LingPipe spécialisés pour les ressources Medline. Dans une seconde étape, chaque phrase est segmentée en syntagmes nominaux en utilisant TreeTagger- chunker, puis ces syntagmes sont soumis à MetaMap afin d’identifier les entités médi- cales qu’ils contiennent. Enfin, nous filtrons les résultats obtenus grâce à (i) une liste des erreurs les plus fréquentes/remarquables et (ii) la limitation des types sémantiques uti- lisés par MetaMap afin d’éviter certains concepts généraux (e.g. Quantitative Concept, Functional Concept, Qualitative Concept). Nous avons construit un corpus d’évaluation de 20 articles scientifiques anglais va- riés extraits de PubMedCentral. Nous avons ensuite annoté manuellement les entités médicales correspondant à 16 types sémantiques donnés, sous catégories de « traitant » et « traité », (cf. tableau 1) et les relations sémantiques qui les lient. WSM 2010 Types sémantiques Antibiotic, Drug Delivery Device, Medical Device, Phar- « Traitants » macologic Substance, Therapeutic or Preventive Procedure Types sémantiques Acquired Abnormality, Anatomical Abnormality, Cell or « Traités » Molecular Dysfunction, Congenital Abnormality, Disease or Syndrome, Experimental Model of Disease, Injury or Poisoning, Mental or Behavioral Dysfunction, Neoplastic Process, Pathologic Function, Sign or Symptom TAB . 1 – Types sémantiques sources et cibles de la relation « Traitement » Comme il est difficile d’annoter manuellement toutes les entités médicales présentes dans notre corpus, nous avons mesuré uniquement la précision de la reconnaissance d’entités médicales de 16 types sémantiques. Cette précision dépend de l’exactitude de leurs catégories (types sémantiques) mais aussi de la précision de localisation de ces entités (correcte, avec du bruit, partielle ou fausse). Dans notre évaluation, une erreur liée à la localisation partielle (resp. avec du bruit) d’un terme médical coûte un demi point, et la précision est calculée selon la formule suivante : C + 0.5 × B P recision = (1) Ref – C : entités correctes – B (boundary) : entités avec une catégorie correcte mais une localisation imprécise (partielle ou avec bruit) – Ref : le nombre total des entités de référence. Le tableau 2 compare la précision obtenue avec notre méthode (LTS+MetaMap) et celle obtenue avec l’utilisation simple de MetaMap sur un sous ensemble de types sé- mantiques. Les erreurs liées aux types sémantiques sont notées par T, celles liées aux frontières des entités sont notées par B et la précison est notée par P. Notre méthode conduit à une augmentation significative de la précision par rapport à MetaMap (le total indiqué a été calculé sur toutes les occurrences des 16 types sémantiques traités). À titre d’exemple, les résultats de MetaMap comporte 52.27% d’erreurs de localisation pour les entités de type Disease Or Syndrome alors que notre méthode n’a conduit qu’à 26.48% d’erreurs de localisation. MetaMap LTS + MetaMap T B P T B P Disease Or Syndrome 9.09% 52.27% 64.77% 9.81% 26.48% 76.94% Injury or poisoning 33.33% 34.84% 49.24% 26.19% 35.71% 55.95% Total 30.24% 34.56% 54.62% 12.23% 27.10% 74.21% TAB . 2 – Résultats de la reconnaissance de certaines entités médicales Annotation et interrogation sémantiques 2.2 Extraction des relations sémantiques Extraire automatiquement des relations sémantiques entre les entités médicales né- cessite des connaissances du domaine et une analyse linguistique des phrases du cor- pus. Les connaissances de domaine sont requises afin de déterminer quels types de relations sont plausibles entre deux entités données. Le réseau sémantique de l’UMLS fournit une telle connaissance puisqu’il précise les types sémantiques sources et cibles de chaque relation (e.g. « Antibiotic » et « Disease or Syndrome » sont respectivement une source et une cible possibles pour la relation « treats »). Afin d’extraire des relations entre les entités médicales identifiées dans la phase 1 nous utilisons un ensemble de patrons linguistiques que nous modélisons dans une on- tologie liée au réseau sémantique de l’UMLS (cf. figure 2). F IG . 2 – Ontologie modélisant les patrons et les relations sémantiques Nous associons à chaque relation (ciblée) du réseau sémantique de l’UMLS un en- semble de patrons linguistiques ayant une valeur littérale correspondant à une expres- sion régulière donnée et sauvegardée par la propriété rdf:value (cf. Tableau 3). Les patrons sont construits manuellement à partir d’un corpus sélectionné sémantiquement (obtenu en interrogeant PubMed Central avec des requêtes MeSH). Relation Nombre de patrons* Exemples de patrons causes 28 . . . E1 may trigger E2 . . . diagnoses 12 E1 is the best test for (the diagnoses of) ? E2 treats 46 . . . E1 was found to reduce E2 . . . prevents 13 . . . E1 for prophylaxis against E2 . . . TAB . 3 – Exemples de patrons de relations * : nombres en cours d’évolution WSM 2010 Aussi, afin d’associer une mesure de confiance aux relations qui seront annotées ul- térieurement, les patrons sont classés suivant leur précision avec la propriété du même nom dans l’ontologie. La précision d’un patron est calculée automatiquement en décré- mentant les valeurs de précision suivant les relations de généralisation. Par exemple, si nous avons les patrons suivants : – alors les annotations suivantes sont générées automatiquement : – , avec C un coefficient entier. Dans le cas où un patron généralise plusieurs patrons différents nous considérons la moyenne de précision de toutes ses dérivations directes divisée par C. Une relation est identifiée dans une phrase si (i) elle est définie dans le réseau séman- tique entre les types de l’entité source et de l’entité cible et (ii) elle est identifiée par l’application de l’un de ses patrons sur la même phrase. Les patrons sont appliqués du plus spécifique au plus général. Le tableau 4 présente quelques exemples de patrons. Patron Relation Précision Exemple TX for PB Traitement 0,5 Intralesional corticosteroid therapy for primary cutaneous B cell lym- phoma. TX for the treatment Traitement 0.75 Cognitive-behavioral group therapy of PB is an effective intervention for the treatment of geriatric depression. TX for preventing PB Prévention 0.75 Influenza vaccines for preventing coronary heart disease. TAB . 4 – Exemples de Patrons de relations sémantiques Nous associons un poids à la relation extraite qui prend en compte la précision du patron employé et le nombre de syntagmes nominaux entre les deux entités. L’idée der- rière le second point est que la relation est considérée plus forte s’il n’y a que des verbes et/ou prépositions entre les deux entités dans la phrase que s’il y a plusieurs autres syn- tagmes nominaux entre les syntagmes contenant les entités médicales en question. Le poids d’une relation R extraite moyennant un patron P à partir d’une phrase H, entre deux entités médicales E1, E2 contenues dans deux syntagmes S1 et S2 est donc : dsp(P ) W (R) = (2) exp(nsynt(H, S1, S2) – dsp(P) : degré de spécialisation du patron P – nsynt(H,S1,S2) : une fonction qui retourne le nombre de syntagmes nominaux entre S1 et S2 dans la phrase H. Une fois que les phrases contenant la relation ciblée sont extraites, nous utilisons des filtres pour éliminer les phrases négatives (e.g. In general, TPE alone is not suggested Annotation et interrogation sémantiques for the treatment of progressive MS cases.) et les phrases interrogatives (e.g. Can statins treat infection ?). La méthode complète d’extraction de relations sémantiques est décrite dans la figure 3. F IG . 3 – Processus d’extraction de relations sémantiques Notre méthode d’extraction de relations sémantiques a été évaluée sur notre corpus d’évaluation de 20 articles extraits de PubMedCentral. Les résultats de cette évaluation sont présentés dans le tableau 5. Relation : Traitement Rappel Précision F-Mesure 60,46 % 75,72 % 67,23 % TAB . 5 – Résultats d’extraction de relations sémantiques de type « Traitement » 2.3 Génération des triplets RDF L’objectif de base de cette étape est d’écrire les annotations sous forme de triplets RDF conformes à l’ontologie représentant le réseau sémantique de l’UMLS. Nous an- notons aussi les poids associés aux relations extraites en utilisant le principe de réifi- cation qui permet de considérer un triplet comme un élément dans un autre triplet. La figure 4 présente un exemple d’annotation. 3 Interrogation sémantique Dans cette section, nous présentons notre méthode d’interrogation sémantique. Les triplets RDF générés dans la phase d’annotation sont interrogés avec des requêtes SPARQL formulées suivant les concepts et les relations du réseau sémantique de l’UMLS. WSM 2010 F IG . 4 – Exemple d’annotation RDF Ces requêtes sont obtenues après la traduction de la requête utilisateur, composée à travers un formulaire qui fixe les relations sémantiques à utiliser mais laisse à l’utilisa- teur le choix des arguments à rechercher (cf. figure 5). Par exemple, l’utilisateur peut chercher le traitement (inconnu) d’une maladie dont il écrit le nom (e.g. ?X traite « Erysipelas ») ou juste une validation d’un fait donné (e.g. la pénicilline est-elle bien un traitement pour la « S. aureus infection »). Les termes en- trés par l’utilisateur sont analysés par MetaMap afin de connaître les types sémantiques concernés par la requête. Dans le cas où aucun type connu ne correspond aux termes recherchés par l’utilisateur, les solutions de remplacement les plus proches syntaxique- ment sont proposés à l’utilisateur. Une dernière étape dans le processus de transformation de la requête est de faire apparaître les poids des triplets recherchés/employés et de trier les réponses suivant ces valeurs. Annotation et interrogation sémantiques F IG . 5 – Interface d’interrogation 4 Vers un système de question réponse L’architecture classique d’un système de question réponse comporte 3 modules : ana- lyse de la question, recherche de documents et extraction de la réponse. L’analyse de la question s’intéresse à déduire à partir de la question toutes les informations utiles pour les modules qui suivent comme les mots clés de la question et le type de la réponse attendue. Le deuxième module fouille une collection de documents pour extraire les documents ou les passages susceptibles de contenir la réponse. Enfin, le troisième mo- dule utilise les informations déduites de l’analyse de la question pour extraire, depuis les documents retrouvés, la ou les réponses. En se basant sur notre approche d’annotation et une partie de notre méthode d’in- terrogation nous proposons une architecture différente où l’accès aux extraits (phrases) pertinents se fait directement en interrogeant la base d’annotation. Un module d’ana- lyse de la question est utilisé en amont pour transformer la question de l’utilisateur en requête structurée écrite en SPARQL (cf. figure 6). 5 Conclusion Nous avons présenté dans cet article notre méthode d’annotation sémantique de textes médicaux. Cette approche permet d’annoter automatiquement les entités médicales pré- sentes dans les textes et les relations sémantiques qui les relient en combinant l’utilisa- tion d’outils et ressources sémantiques du domaine (UMLS) et des techniques de TAL pour l’extraction d’information. Ces annotations sont exploitées avec un moteur de re- WSM 2010 F IG . 6 – Architecture proposée pour un SQR cherche sémantique pour répondre aux requêtes utilisateur. L’approche présentée dans cet article rentre dans le cadre du développement d’un système de question réponse pour le domaine médical et constitue une grande partie de ce qui est nécessaire pour la réalisation d’un tel système. Comme perspectives à court terme, nous envisageons d’expérimenter notre approche d’interrogation sur un corpus extrait de Medline et d’améliorer le module d’annotation en traitant d’autres types de relations sémantiques avant de nous intéresser à la mise au point d’un système de question réponse pour le domaine médical. Nous envisageons aussi d’explorer la dimension translingue en répondant à des questions écrites en fran- çais à partir de corpus anglais. Références B OURIGAULT D. & FABRE C. (2000). Approche linguistique pour l’analyse syn- taxique de corpus. In Cahiers de grammaire, 25, 131-151. C UNNINGHAM H., M AYNARD D., B ONTCHEVA K. & TABLAN V. (2002). Gate : A framework and graphical development environment for robust nlp tools and appli- cations. In In Proceedings of the 40th Anniversary Meeting of the Association for Computational Linguistics (ACL), p. 168-175, Philadelphia. J ILANI I. & A MARDEILH F. (2009). Enrichissement automatique d’une base de connaissances biologiques à l’aide des outils du web sémantique. In IC2009 - 20èmes journées francophones d’Ingénierie des Connaissances, Hammamet : Tunisie. J ONQUET C., S HAH N. & M USEN M. A. (2009). Un service web pour l’annotation sémantique de données biomédicales avec des ontologies. In 13èmes Journées Fran- cophones d’Informatique Médicale, JFIM2009. K HELIF K. & D IENG -K UNTZ R. (2004). Web sémantique et mémoire d’expériences sur les biopuces. In Web Sémantique Médical (WSM’2004), Rouen.