conditionalRandomFields crfTrain

Training zur Erkennung benannter Entitäten in medizinischen Berichten

Scénario de test & Cas d'usage

Geschäftskontext

Ein Krankenhaus möchte automatisch Symptome und Medikamente aus unstrukturierten Arztbriefen extrahieren. Das Ziel ist es, ein CRF-Modell zu trainieren, das Wörter als 'B-SYMP' (Symptom-Beginn), 'I-SYMP' (Symptom-Verlauf), 'B-MED' (Medikament) oder 'O' (Andere) klassifiziert.
Datenaufbereitung

Erstellung eines Trainingsdatensatzes mit medizinischen Sätzen und BIO-Tags.

Kopiert!
1DATA casuser.med_training; LENGTH word $20 label $10; INPUT seq_id word $ label $; CARDS;
21 Patient O
31 hat O
41 starke B-SYMP
51 Kopfschmerzen I-SYMP
61 und O
71 nimmt O
81 Aspirin B-MED
92 Kein O
102 Fieber B-SYMP
11; RUN;

Étapes de réalisation

1
Definition des Feature-Templates für das CRF-Modell.
Kopiert!
1/* Das Template definiert, wie Merkmale aus den Nachbarwörtern extrahiert werden */
2%let template_str = %str(type:CRF_PP
3feature:U00:%x[-1,0]
4feature:U01:%x[0,0]
5feature:U02:%x[1,0]
6feature:B);
2
Ausführung des Trainings mit dem Standard-Algorithmus (LBFGS).
Kopiert!
1PROC CAS;
2 conditionalRandomFields.crfTrain /
3 TABLE={name='med_training'}
4 target='label'
5 template="&template_str"
6 model={
7 label={name='med_labels'},
8 attr={name='med_attrs'},
9 feature={name='med_features'},
10 template={name='med_template'}
11 };
12QUIT;

Erwartetes Ergebnis


Die Aktion wird erfolgreich ausgeführt und generiert die Modelltabellen (Labels, Attribute, Features). Das Modell hat gelernt, den Kontext ('starke' vor 'Kopfschmerzen') zur Klassifizierung zu nutzen.