textRuleScore applyCategory

Detección de Transacciones Sospechosas con Datos Imperfectos

Scénario de test & Cas d'usage

Contexto empresarial

Una entidad financiera analiza descripciones de transacciones para detectar actividades potencialmente sospechosas (ej. 'pago en efectivo', 'transferencia urgente'). Los datos de entrada son imperfectos y pueden contener valores nulos, textos muy largos o descripciones vacías. Se necesita comparar algoritmos de scoring para optimizar la detección.
Sobre el conjunto : textRuleScore

Puntuación de documentos de texto basada en reglas.

Descubrir todas las acciones de textRuleScore
Preparación de datos

Crea una tabla de transacciones con casos límite: texto nulo, texto vacío, texto muy largo. También crea un modelo MCO con pesos para probar el algoritmo 'WEIGHTED'.

¡Copiado!
1DATA mycas.transactions;
2 INFILE DATALINES delimiter='|';
3 LENGTH trans_id $10 description $1000;
4 INPUT trans_id $ description $;
5 DATALINES;
6TXN01|Transferencia urgente a cuenta externa para pago proveedor.
7TXN02|Retiro en efectivo de alto valor en cajero automático.
8TXN03|.
9TXN04|
10TXN05|Pago regular de nómina para empleados del mes de abril, procesado según el acuerdo estándar y sin ninguna modificación con respecto al mes anterior.
11TXN06|URGENTE: pago en efectivo para liquidar deuda pendiente.
12;
13RUN;
14 
15DATA mycas.compliance_model_mco;
16 LENGTH _term_ $32 _category_ $32 _weight_ 8.;
17 INPUT _term_ $ _category_ $ _weight_;
18 DATALINES;
19urgente SOSPECHOSO 1.5
20efectivo SOSPECHOSO 2.0
21externa SOSPECHOSO 1.0
22pago NORMAL 0.5
23nómina NORMAL 0.5
24;
25RUN;

Étapes de réalisation

1
Ejecutar la categorización con el algoritmo por defecto ('FREQUENCY') para ver cómo maneja los casos límite (nulos, vacíos).
¡Copiado!
1PROC CAS;
2 textRuleScore.applyCategory /
3 TABLE={caslib='mycas', name='transactions'},
4 model={caslib='mycas', name='compliance_model_mco'},
5 docId='trans_id',
6 text='description',
7 scoringAlgorithm='FREQUENCY',
8 casOut={caslib='mycas', name='compliance_freq_results', replace=true};
9RUN;
2
Ejecutar la categorización utilizando el algoritmo 'WEIGHTED' para comparar los resultados con la ejecución anterior. Se espera que las categorías se asignen en función de los pesos definidos en el modelo.
¡Copiado!
1PROC CAS;
2 textRuleScore.applyCategory /
3 TABLE={caslib='mycas', name='transactions'},
4 model={caslib='mycas', name='compliance_model_mco'},
5 docId='trans_id',
6 text='description',
7 scoringAlgorithm='WEIGHTED',
8 casOut={caslib='mycas', name='compliance_weighted_results', replace=true};
9RUN;

Resultado esperado


La acción debe ejecutarse sin errores para ambas etapas. Las transacciones con descripción nula (TXN03) o vacía (TXN04) no deben ser categorizadas. Se crearán dos tablas de resultados: `compliance_freq_results` y `compliance_weighted_results`. La comparación de estas tablas permitirá evaluar cómo los diferentes algoritmos de puntuación afectan la clasificación, especialmente para TXN06, que debería tener una puntuación de 'SOSPECHOSO' más alta con el algoritmo 'WEIGHTED' debido a la combinación de 'urgente' y 'efectivo'.