conditionalRandomFields crfScore

Extraction d'Entités Médicales (Standard)

Scénario de test & Cas d'usage

Contexte Métier

Un hôpital souhaite structurer des comptes-rendus cliniques en extrayant automatiquement les entités 'MÉDICAMENT' et 'DOSAGE' des notes en texte libre pour alimenter le dossier patient informatisé.
Préparation des Données

Création de notes médicales simulées et de tables de modèle vides (placeholders) pour permettre l'exécution syntaxique.

Copié !
1 
2DATA casuser.clinical_notes;
3LENGTH text $200;
4doc_id=1;
5text='Le patient prend 100mg d''Aspirine matin et soir.';
6OUTPUT;
7doc_id=2;
8text='Prescription : Doliprane 1000mg en cas de fièvre.';
9OUTPUT;
10 
11RUN;
12/* Création de tables de modèle factices pour l'exemple */
13DATA casuser.model_label;
14x=1;
15 
16RUN;
17 
18DATA casuser.model_attr;
19x=1;
20 
21RUN;
22 
23DATA casuser.model_feature;
24x=1;
25 
26RUN;
27 
28DATA casuser.model_attrfeature;
29x=1;
30 
31RUN;
32 
33DATA casuser.model_template;
34x=1;
35 
36RUN;
37 

Étapes de réalisation

1
Vérification de la présence des tables et exécution du scoring
Copié !
1 
2PROC CAS;
3conditionalRandomFields.crfScore / TABLE={name='clinical_notes', caslib='casuser'} model={ label={name='model_label', caslib='casuser'}, attr={name='model_attr', caslib='casuser'}, feature={name='model_feature', caslib='casuser'}, attrfeature={name='model_attrfeature', caslib='casuser'}, template={name='model_template', caslib='casuser'} } casOut={name='tagged_notes', caslib='casuser', replace=true} target='medical_entity_tag';
4 
5RUN;
6 
7QUIT;
8 
2
Affichage des résultats pour validation humaine
Copié !
1 
2PROC CAS;
3TABLE.fetch / TABLE={name='tagged_notes', caslib='casuser'} fetchVars={'doc_id', 'medical_entity_tag'};
4 
5RUN;
6 
7QUIT;
8 

Résultat Attendu


L'action doit s'exécuter sans erreur (rc=0). La table de sortie 'tagged_notes' doit être créée et contenir la colonne cible 'medical_entity_tag' avec les séquences d'étiquettes prédites pour chaque token des phrases médicales.