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.
| Parámetro | Descripción |
|---|---|
| casOut | Especifica la tabla de datos de salida que contendrá los resultados de la coincidencia de reglas (si un documento satisface una regla). |
| docId | Especifica la variable en la tabla de datos de entrada (parámetro `table`) que contiene el ID del documento. |
| nThreads | Especifica el número de hilos (threads) que se utilizarán por nodo. El valor debe ser un entero. |
| ruleTerms | Especifica la tabla de datos que contiene los términos de cada regla, generada por la acción de entrenamiento (`brTrain`). |
| table | Especifica la tabla de datos de entrada que se va a puntuar. |
| termId | Especifica la variable en la tabla de datos de entrada (parámetro `table`) que contiene el ID del término. |
| useOldNames | Especifica si se deben usar los nombres de variable antiguos utilizados en el procedimiento HPBOOLRULE. |
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.
| 1 | PROC 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; |
| 25 | QUIT; |
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.
| 1 | PROC 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}; |
| 8 | RUN; |
| 9 | QUIT; |
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).
| 1 | PROC 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; |
| 12 | QUIT; |
Un hospital universitario desea implementar un sistema de triaje automático basado en las notas de enfermería. El objetivo es identificar pacientes que presentan combinaciones d...
Un gigante del comercio electrónico necesita procesar diariamente catálogos de millones de productos. El equipo de Data Engineering quiere validar que la acción `brScore` puede ...
Una firma legal está migrando su sistema de análisis de riesgos a SAS Viya. Sus datos provienen de un sistema mainframe antiguo donde los nombres de las columnas no son estándar...