conditionalRandomFields crfTrain

Extracción de Entidades en Contratos Legales

Scénario de test & Cas d'usage

Contexto empresarial

Un bufete de abogados desea automatizar la revisión de miles de contratos PDF digitalizados. El objetivo es identificar y extraer automáticamente entidades clave como 'Nombre de la Parte', 'Fecha de Vigencia' y 'Monto Monetario' para indexarlos en un sistema de gestión documental.
Preparación de datos

Simulación de un corpus de contratos tokenizado con etiquetas BIO (Beginning, Inside, Outside).

¡Copiado!
1DATA mycas.contratos_legales;
2 LENGTH token $50 label $20;
3 INFILE DATALINES dlm='|';
4 INPUT token $ label $;
5 DATALINES;
6El|O
7contrato|O
8es|O
9entre|O
10TechCorp|B-ORG
11S.A.|I-ORG
12y|O
13Juan|B-PER
14Pérez|I-PER
15firmado|O
16el|O
1712|B-DATE
18de|I-DATE
19Marzo|I-DATE
20por|O
215000|B-MONEY
22Dolares|I-MONEY
23;
24RUN;

Étapes de réalisation

1
Verificación de la carga de datos y definición de la plantilla de extracción de características.
¡Copiado!
1 
2PROC CAS;
3TABLE.tableInfo / TABLE='contratos_legales';
4RUN;
5 
2
Entrenamiento del modelo CRF utilizando una plantilla estándar (unigramas y bigramas) para capturar el contexto de las palabras.
¡Copiado!
1PROC CAS;
2 conditionalRandomFields.crfTrain /
3 TABLE={name='contratos_legales'},
4 target='label',
5 template='U00:%w[0,0]
6U01:%w[0,1]
7B',
8 model={
9 attr={name='legal_model_attr', replace=true},
10 feature={name='legal_model_feat', replace=true},
11 label={name='legal_model_label', replace=true}
12 };
13RUN;

Resultado esperado


La acción debe ejecutarse sin errores, generando las tablas del modelo (legal_model_*) en la caslib. El modelo debe haber aprendido a asociar tokens como 'TechCorp' con la etiqueta 'B-ORG' basándose en la plantilla de características proporcionada.