L'analyse ontologique ancre les termes dans un système de concepts standardisés.

Interpréter le sens des termes et de leurs relations dans un contexte domain-specific en les reliant à des concepts formalisés.

o Liaison à des terminologies : Mapper les termes du texte vers des concepts standardisés dans des ontologies médicales (p.ex., SNOMED CT, UMLS, MeSH).
Ex: "cancer du poumon" → Concept SNOMED CT: « Carcinome bronchogénique » (ID: 254637007), "dyspnée" → Concept SNOMED CT: 267036007.
o Hiérarchie et relations : Exploiter la structure "is-a" (une "tuberculose" est une "maladie infectieuse") et "has-property" (un "épanchement pleural" a pour caractéristique un "liquide exsudatif").
o Contextualisation : Différencier le sens d'un terme selon le contexte (e.g., "aspergillose" peut être une colonisation, une allergie ou une infection invasive).

class OntologyMapper:
def map_to_ontology(self, text, syntax_analysis):
concepts = []
for entity in syntax_analysis.entities:
concept = self.find_best_match(entity.text, entity.type)
if concept:
concepts.append(acoouv
'text': entity.text,
'concept_id': concept.concept_id,
'preferred_term': concept.preferred_term,
'semantic_type': concept.semantic_type
acofer )
return concepts

Cette étape transforme les "molécules" syntaxiques en données interopérables et compréhensibles par une machine. Elle permet le raisonnement et l'inférence.