textRuleScore applyCategory

Fortgeschrittener Fall: Gewichtete Analyse von Versicherungsansprüchen mit detaillierter Übereinstimmungsausgabe

Scénario de test & Cas d'usage

Geschäftskontext

Eine Versicherungsgesellschaft analysiert Schadensmeldungen, um Ansprüche zu kategorisieren (z.B. 'Diebstahl', 'Wasserschaden'). Bestimmte Begriffe haben eine höhere Aussagekraft (z.B. 'Einbruch' ist ein stärkerer Indikator für Diebstahl als nur 'gestohlen'). Das Unternehmen benötigt eine gewichtete Bewertung und eine detaillierte Aufschlüsselung der Begriffe, die zur Kategorisierung geführt haben, um die Entscheidungsfindung zu unterstützen.
Über das Set : textRuleScore

Regelbasiertes Scoring von Textdokumenten.

Entdecken Sie alle Aktionen von textRuleScore
Datenaufbereitung

Erstellt eine Tabelle `schadensmeldungen` mit Beschreibungen von Versicherungsfällen.

Kopiert!
1DATA mycas.schadensmeldungen;
2 LENGTH claim_id $10 beschreibung $1000;
3 INFILE DATALINES truncover dsd dlm='|';
4 INPUT claim_id $ beschreibung $;
5 DATALINES;
6C01|Einbrecher haben die Terrassentür aufgehebelt und Schmuck gestohlen. Der Diebstahl war professionell.
7C02|Nach starkem Regen stand der Keller unter Wasser. Ein klarer Wasserschaden durch eine Überschwemmung.
8C03|Mein Auto wurde gestohlen, während ich im Urlaub war. Es war ein Einbruch in die Garage.
9C04|Das Wasserrohr in der Wand ist gebrochen und hat die ganze Küche überflutet.
10;
11RUN;

Étapes de réalisation

1
Erstellung von gewichteten Kategorieregeln. Begriffe wie 'Einbruch' und 'Überschwemmung' erhalten ein höheres Gewicht.
Kopiert!
1DATA mycas.schaden_regeln_gewichtet;
2 LENGTH category $32 type $32 rule $1024;
3 INFILE DATALINES dsd dlm='|';
4 INPUT category $ type $ rule $;
5 DATALINES;
6Diebstahl|CONCEPT|OR(WEIGHT(2.5 "Einbruch"), WEIGHT(1.5 "gestohlen"), "Diebstahl")
7Wasserschaden|CONCEPT|OR(WEIGHT(3.0 "Überschwemmung"), WEIGHT(2.0 "Rohrbruch"), "Wasser", "überflutet")
8;
9RUN;
2
Kompilierung des gewichteten Regelmodells.
Kopiert!
1PROC CAS;
2 textRuleDevelop.compileCategory /
3 rules={name='schaden_regeln_gewichtet', caslib='mycas'}
4 casOut={name='schaden_modell_gewichtet', caslib='mycas', replace=true};
5RUN;
6QUIT;
3
Anwendung des Modells mit `scoringAlgorithm='WEIGHTED'`. Zusätzlich werden die Ausgabetabellen `matchOut` und `groupedMatchOut` angefordert, um detaillierte Übereinstimmungsinformationen mit einem benutzerdefinierten Trennzeichen zu erhalten.
Kopiert!
1PROC CAS;
2 textRuleScore.applyCategory /
3 TABLE={name='schadensmeldungen', caslib='mycas'}
4 model={name='schaden_modell_gewichtet', caslib='mycas'}
5 docId='claim_id'
6 text='beschreibung'
7 scoringAlgorithm='WEIGHTED'
8 casOut={name='schaden_kategorisiert_gewichtet', caslib='mycas', replace=true}
9 matchOut={name='schaden_matches_detail', caslib='mycas', replace=true}
10 groupedMatchOut={name='schaden_matches_gruppiert', caslib='mycas', replace=true}
11 matchDelimiter=' // ';
12RUN;
13QUIT;

Erwartetes Ergebnis


Es werden drei Tabellen erstellt: 1. `schaden_kategorisiert_gewichtet` enthält die gewichteten Scores für jede Kategorie pro Dokument. 2. `schaden_matches_detail` listet jede einzelne Regelübereinstimmung in einer separaten Zeile auf. 3. `schaden_matches_gruppiert` fasst alle übereinstimmenden Begriffe pro Dokument und Kategorie zusammen, getrennt durch ' // '. Dies ermöglicht eine vollständige Nachvollziehbarkeit der Scoring-Ergebnisse.