boolRule

brScore

Descripción

La acción `brScore` del conjunto de acciones `boolRule` se utiliza para puntuar datos de texto aplicando un conjunto de reglas booleanas predefinidas. Estas reglas, generalmente generadas por la acción `brTrain`, se aplican a los documentos de entrada para determinar si cumplen con los criterios especificados. Es una herramienta fundamental en el text mining para categorizar o filtrar documentos según patrones de términos específicos, identificando qué documentos satisfacen qué reglas.

boolRule.brScore result=results status=rc / casOut={...} docId="variable-name" nThreads=integer ruleTerms={...} table={...} termId="variable-name" useOldNames=TRUE | FALSE;
Parámetros
ParámetroDescripción
casOutEspecifica la tabla de datos de salida que contendrá los resultados de la coincidencia de reglas (si un documento satisface una regla).
docIdEspecifica la variable en la tabla de datos de entrada (parámetro `table`) que contiene el ID del documento.
nThreadsEspecifica el número de hilos (threads) que se utilizarán por nodo. El valor debe ser un entero.
ruleTermsEspecifica la tabla de datos que contiene los términos de cada regla, generada por la acción de entrenamiento (`brTrain`).
tableEspecifica la tabla de datos de entrada que se va a puntuar.
termIdEspecifica la variable en la tabla de datos de entrada (parámetro `table`) que contiene el ID del término.
useOldNamesEspecifica si se deben usar los nombres de variable antiguos utilizados en el procedimiento HPBOOLRULE.
Creación de Datos de Ejemplo

Primero, creamos dos tablas en CAS. La primera, `text_data`, contiene los datos de texto que queremos puntuar, con un ID de documento y un ID de término. La segunda, `rule_data`, define las reglas booleanas que se aplicarán. Cada fila en `rule_data` representa un término dentro de una regla específica.

¡Copiado!
1PROC CAS;
2 DATA mycas.text_data;
3 INFILE DATALINES delimiter=',';
4 INPUT docid termid $;
5 DATALINES;
6 1,t1
7 1,t2
8 2,t1
9 2,t3
10 3,t2
11 3,t4
12 ;
13 RUN;
14 
15 DATA mycas.rule_data;
16 INFILE DATALINES delimiter=',';
17 INPUT _ruleid_ $ _term_ $;
18 DATALINES;
19 R1,t1
20 R1,t2
21 R2,t3
22 R2,t4
23 ;
24 RUN;
25QUIT;

Ejemplos

Este ejemplo utiliza la acción `brScore` para puntuar los documentos en `text_data` basándose en las reglas definidas en `rule_data`. La tabla de salida `scored_documents` contendrá los resultados, indicando qué documentos cumplen con qué reglas.

Código SAS® / CAS Código en espera de validación por la comunidad
¡Copiado!
1PROC CAS;
2 ACTION boolRule.brScore /
3 TABLE={name='text_data'},
4 docId='docid',
5 termId='termid',
6 ruleTerms={name='rule_data'},
7 casOut={name='scored_documents', replace=true};
8RUN;
9QUIT;
Resultado :
La acción se ejecuta correctamente. La tabla `scored_documents` se crea en la caslib `mycas`. Esta tabla contendrá las columnas `_docid_` y `_ruleid_`, mostrando qué regla es satisfecha por cada documento.

En este ejemplo, no solo realizamos la puntuación, sino que también utilizamos la acción `fetch` para mostrar el contenido de la tabla de resultados. Esto nos permite verificar qué documentos coincidieron con las reglas. La regla R1 requiere los términos 't1' Y 't2', mientras que la regla R2 busca 't3' O 't4' (comportamiento por defecto).

Código SAS® / CAS Código en espera de validación por la comunidad
¡Copiado!
1PROC CAS;
2 ACTION boolRule.brScore /
3 TABLE={name='text_data', vars={'docid', 'termid'}},
4 docId='docid',
5 termId='termid',
6 ruleTerms={name='rule_data', vars={'_ruleid_', '_term_'}},
7 casOut={name='scored_documents_details', replace=true};
8 RUN;
9 
10 ACTION TABLE.fetch / TABLE='scored_documents_details';
11 RUN;
12QUIT;
Resultado :
La salida de la acción `fetch` mostrará las filas de la tabla `scored_documents_details`. Se espera ver que el documento 1 satisface la regla R1 (porque contiene 't1' y 't2'), el documento 2 satisface la regla R2 (porque contiene 't3'), y el documento 3 satisface la regla R2 (porque contiene 't4').

FAQ

¿Cuál es el propósito de la acción `brScore` del conjunto de acciones `boolRule`?
¿Cuáles son las tablas de entrada requeridas para ejecutar la acción `brScore`?
¿Cómo se especifica la tabla de salida en la acción `brScore`?
¿Qué representan los parámetros `docId` y `termId`?
¿Es posible utilizar nombres de variables heredados de versiones anteriores como HPBOOLRULE?
¿Cuál es el propósito de la acción `brScore` en SAS Viya?
¿Cuáles son las tablas de entrada requeridas para la acción `brScore`?
¿Cómo se especifica la tabla de salida para los resultados de la puntuación?
¿Para qué sirven los parámetros `docId` y `termId`?
¿Qué hace el parámetro `useOldNames`?