textRuleScore

applyCategory

L'essentiel
En resumen
Dentro de la arquitectura de SAS Viya, la acción applyCategory actúa como un motor de clasificación inteligente que permite procesar textos mediante el uso de modelos lingüísticos compilados (MCO). Esta herramienta es fundamental para los especialistas en datos que buscan asignar etiquetas temáticas a grandes repositorios de información de forma automática y coherente. Al ejecutar estas reglas, el sistema identifica patrones complejos para organizar la información de entrada en categorías lógicas. Hemos preparado esta sección de preguntas frecuentes para resolver sus dudas sobre la configuración de esta acción y mejorar la integración de sus procesos de análisis de texto.

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
casOut Especifica la tabla de salida de CAS para almacenar los resultados de la categorización.
docId Especifica el nombre de la variable que actúa como identificador único para cada documento en la tabla de entrada.
docType Especifica el tipo de documento a procesar. Puede ser 'TEXT' para texto plano o 'XML' para documentos con formato XML.
groupedMatchOut Especifica la tabla de salida para almacenar las coincidencias agrupadas por categoría para cada documento.
matchDelimiter Especifica el delimitador a utilizar para separar las múltiples coincidencias de texto en la tabla de salida `groupedMatchOut`.
matchOut Especifica la tabla de salida para almacenar los detalles de las coincidencias de términos que llevaron a la categorización.
model Especifica la tabla de entrada de CAS que contiene el modelo de categorización compilado (archivo MCO).
modelOut Especifica la tabla de salida para almacenar el modelo de categorías utilizado.
scoringAlgorithm Especifica 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.
table Especifica la tabla de entrada de CAS que contiene los documentos de texto a categorizar.
text Especifica el nombre de la variable en la tabla de entrada que contiene el texto de los documentos.
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.

¡Copiado!
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 Código en espera de validación por la comunidad
¡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 Código en espera de validación por la comunidad
¡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`?

Escenarios asociados

Caso de uso
Análisis de Sentimiento en Reseñas de Clientes

Una empresa de comercio electrónico quiere clasificar automáticamente miles de reseñas de productos para identificar rápidamente los comentarios positivos, negativos y neutros. ...

Caso de uso
Clasificación de Tickets de Soporte a Gran Escala

Un centro de soporte técnico necesita clasificar un gran volumen de tickets (más de 100,000 por día) en categorías como 'Hardware', 'Software', 'Facturación' o 'Red' para dirigi...

Caso de uso
Detección de Transacciones Sospechosas con Datos Imperfectos

Una entidad financiera analiza descripciones de transacciones para detectar actividades potencialmente sospechosas (ej. 'pago en efectivo', 'transferencia urgente'). Los datos d...