Scénario de test & Cas d'usage
Regelbasiertes Scoring von Textdokumenten.
Entdecken Sie alle Aktionen von textRuleScoreErstellt eine Tabelle `patienten_notizen` mit gemischter Datenqualität, einschließlich leerer und NULL-Werte (dargestellt durch einen Punkt) sowie eines XML-Dokuments.
| 1 | DATA mycas.patienten_notizen; |
| 2 | LENGTH notiz_id $10 notiz_text $2000; |
| 3 | INFILE DATALINES truncover dsd dlm='|'; |
| 4 | INPUT notiz_id $ notiz_text $; |
| 5 | DATALINES; |
| 6 | PN_01|Patient klagt über starken Durst und häufiges Wasserlassen. Verdacht auf Diabetes. Blutzucker erhöht. |
| 7 | PN_02| |
| 8 | PN_03|Blutdruck bei 160/100 mmHg. Diagnose: Essentielle Hypertonie. |
| 9 | PN_04|. |
| 10 | PN_05| |
| 11 | PN_06|Patient hat sowohl Anzeichen von Diabetes als auch von Hypertonie. |
| 12 | ; |
| 13 | RUN; |
| 1 | DATA mycas.medizin_regeln; |
| 2 | LENGTH category $32 type $32 rule $1024; |
| 3 | INFILE DATALINES dsd dlm='|'; |
| 4 | INPUT category $ type $ rule $; |
| 5 | DATALINES; |
| 6 | Diabetes|CONCEPT|OR("Diabetes", "Blutzucker", "Durst") |
| 7 | Hypertonie|CONCEPT|OR("Hypertonie", "Blutdruck") |
| 8 | ; |
| 9 | RUN; |
| 10 | PROC CAS; textRuleDevelop.compileCategory / rules={name='medizin_regeln'} casOut={name='medizin_modell', replace=true}; RUN; QUIT; |
| 1 | PROC CAS; |
| 2 | textRuleScore.applyCategory / |
| 3 | TABLE={name='patienten_notizen', caslib='mycas'} |
| 4 | model={name='medizin_modell', caslib='mycas'} |
| 5 | docId='notiz_id' |
| 6 | text='notiz_text' |
| 7 | casOut={name='notizen_kategorisiert_alle', caslib='mycas', replace=true}; |
| 8 | RUN; |
| 9 | QUIT; |
| 1 | PROC CAS; |
| 2 | textRuleScore.applyCategory / |
| 3 | TABLE={name='patienten_notizen', caslib='mycas', where='notiz_id="PN_05"'} |
| 4 | model={name='medizin_modell', caslib='mycas'} |
| 5 | docId='notiz_id' |
| 6 | text='notiz_text' |
| 7 | docType='XML' |
| 8 | casOut={name='notizen_kategorisiert_xml', caslib='mycas', replace=true}; |
| 9 | RUN; |
| 10 | QUIT; |
Die Aktion wird ohne Fehler ausgeführt. In der Tabelle `notizen_kategorisiert_alle` werden die Notizen PN_02 und PN_04 (leer/null) keine Kategorien erhalten. Die XML-Notiz PN_05 wird möglicherweise nicht korrekt kategorisiert, da sie als reiner Text behandelt wird. In der Tabelle `notizen_kategorisiert_xml` wird die Notiz PN_05 jedoch korrekt als 'Hypertonie' kategorisiert, da der `docType='XML'` Parameter den Textinhalt aus den Tags extrahiert. Dies bestätigt die korrekte Handhabung von Grenzfällen und verschiedenen Dokumenttypen.