?> applyCategory - WeAreCAS
textRuleScore

applyCategory

Descripción

La acción `applyCategory` se utiliza para categorizar documentos de texto basándose en un modelo de categorización preexistente, que generalmente se encuentra en un archivo de modelo de categoría de SAS (MCO). Esta acción procesa una tabla de entrada que contiene los textos a analizar y aplica las reglas del modelo para asignar una o más categorías a cada documento. Es una herramienta fundamental en el análisis de texto para la clasificación automática de grandes volúmenes de datos no estructurados.

textRuleScore.applyCategory { casOut={...}, docId="string", docType="TEXT"|"XML", groupedMatchOut={...}, matchDelimiter="string", matchOut={...}, model={...}, modelOut={...}, scoringAlgorithm="FREQUENCY"|"WEIGHTED", table={...}, text="string" };
Parámetros
ParámetroDescripción
casOutEspecifica la tabla de salida de CAS para almacenar los resultados de la categorización.
docIdEspecifica el nombre de la variable que actúa como identificador único para cada documento en la tabla de entrada.
docTypeEspecifica el tipo de documento a procesar. Puede ser 'TEXT' para texto plano o 'XML' para documentos con formato XML.
groupedMatchOutEspecifica la tabla de salida para almacenar las coincidencias agrupadas por categoría para cada documento.
matchDelimiterEspecifica el delimitador a utilizar para separar las múltiples coincidencias de texto en la tabla de salida `groupedMatchOut`.
matchOutEspecifica la tabla de salida para almacenar los detalles de las coincidencias de términos que llevaron a la categorización.
modelEspecifica la tabla de entrada de CAS que contiene el modelo de categorización compilado (archivo MCO).
modelOutEspecifica la tabla de salida para almacenar el modelo de categorías utilizado.
scoringAlgorithmEspecifica el algoritmo de puntuación a utilizar. 'FREQUENCY' se basa en la frecuencia de las coincidencias, mientras que 'WEIGHTED' utiliza los pesos definidos en el modelo.
tableEspecifica la tabla de entrada de CAS que contiene los documentos de texto a categorizar.
textEspecifica el nombre de la variable en la tabla de entrada que contiene el texto de los documentos.
Preparación de datos
Creación de Datos de Ejemplo

Este bloque de código crea una tabla CAS llamada `mycas.text_data` con dos columnas: `doc_id` como identificador y `text_variable` con el contenido de texto que se va a categorizar.

1DATA mycas.text_data;
2 INFILE DATALINES delimiter='|';
3 LENGTH doc_id $ 10 text_variable $ 300;
4 INPUT doc_id $ text_variable $;
5 DATALINES;
61|El nuevo software ofrece un rendimiento increíble y es muy fácil de usar.
72|Tengo un problema con mi factura, el servicio al cliente no ha sido de ayuda.
83|Las características de seguridad son impresionantes y protegen nuestros datos de manera efectiva.
94|El producto llegó dañado y el proceso de devolución es demasiado complicado.
10;
11RUN;

Ejemplos

Este ejemplo aplica un modelo de categoría (`mycas.category_model`) a la tabla `mycas.text_data`. Los resultados de la categorización se guardan en la tabla `mycas.categorized_results`.

Código SAS® / CAS
¡Copiado!
1PROC CAS;
2 textRuleScore.applyCategory /
3 TABLE={caslib="mycas", name="text_data"},
4 model={caslib="mycas", name="category_model"},
5 docId="doc_id",
6 text="text_variable",
7 casOut={caslib="mycas", name="categorized_results", replace=true};
8RUN;
Resultado :
Se crea una nueva tabla `mycas.categorized_results` que contiene el `doc_id` y las categorías asignadas a cada documento de la tabla de entrada.

Este ejemplo no solo categoriza los documentos, sino que también genera dos tablas adicionales: `mycas.matches` y `mycas.grouped_matches`. La tabla `matches` contiene una fila por cada coincidencia de regla, mientras que `grouped_matches` agrupa las coincidencias por documento y categoría, usando ';' como delimitador.

Código SAS® / CAS
¡Copiado!
1PROC CAS;
2 textRuleScore.applyCategory /
3 TABLE={caslib="mycas", name="text_data"},
4 model={caslib="mycas", name="category_model"},
5 docId="doc_id",
6 text="text_variable",
7 casOut={caslib="mycas", name="categorized_results", replace=true},
8 matchOut={caslib="mycas", name="matches", replace=true},
9 groupedMatchOut={caslib="mycas", name="grouped_matches", replace=true},
10 matchDelimiter=";";
11RUN;
Resultado :
Además de la tabla de categorías `categorized_results`, se generan las tablas `matches` y `grouped_matches` en la caslib `mycas` con información detallada sobre los términos que llevaron a la categorización de cada documento.

FAQ

¿Qué hace la acción `applyCategory`?
¿Cuál es el parámetro obligatorio para la acción `applyCategory`?
¿Para qué sirve el parámetro `casOut`?
¿Qué función tiene el parámetro `scoringAlgorithm` y cuáles son sus valores posibles?
¿Cuál es la diferencia entre las tablas de salida `matchOut` y `groupedMatchOut`?