conditionalRandomFields crfTrain

Extraction d'Entités Médicales (Posologie et Médicaments)

Scénario de test & Cas d'usage

Contexte Métier

Un hôpital souhaite automatiser la structuration des ordonnances médicales numérisées. L'objectif est d'extraire le nom du médicament, le dosage et la fréquence de prise à partir de texte libre pour alimenter le dossier patient informatisé (DPI).
Préparation des Données

Création d'un corpus d'ordonnances simplifiées avec étiquetage BIO (Begin, Inside, Outside).

Copié !
1 
2DATA mycas.medical_train;
3LENGTH text $200 target $200;
4INFILE DATALINES delimiter='|';
5INPUT text $ target $;
6DATALINES;
7Aspirine 500mg matin et soir|B-MED B-DOS B-FREQ O B-FREQ Paracétamol 1g si fièvre|B-MED B-DOS O B-COND Ibuprofène 200mg après repas|B-MED B-DOS B-FREQ I-FREQ ;
8 
9RUN;
10 

Étapes de réalisation

1
Chargement des données médicales en mémoire CAS.
Copié !
1/* Données chargées via l'étape data_prep ci-dessus */
2
Entraînement standard avec le solveur par défaut (LBFGS) et un template contextuel (mot actuel + mot précédent).
Copié !
1 
2PROC CAS;
3conditionalRandomFields.crfTrain / TABLE={name='medical_train', caslib='mycas'}, target='target', template='U:w[0]
4U:w[-1]', model={name='med_model', caslib='mycas', replace=true};
5 
6RUN;
7 
8QUIT;
9 

Résultat Attendu


L'action doit s'exécuter sans erreur (Status OK). Les 5 tables de sortie du modèle (med_model_attr, med_model_feature, etc.) doivent être présentes dans la librairie 'mycas'. Le modèle doit avoir appris les associations de base (ex: un dosage suit souvent un médicament).