Realiza la extracción de conceptos utilizando un modelo de extracción de conceptos (archivo LITI). Esta acción, parte del conjunto de acciones 'Text Analytics Rule Score', aplica un modelo de concepto LITI compilado a una tabla CAS de entrada para identificar y extraer conceptos definidos en el modelo. Es fundamental para el análisis de texto no estructurado, permitiendo la identificación de entidades, temas o cualquier patrón textual predefinido.
| Parámetro | Descripción |
|---|---|
| casOut | Especifica la tabla CAS de salida que contiene la información de los resultados de las coincidencias de conceptos. |
| docId | Especifica el nombre de la variable de la tabla CAS que contiene los ID de los documentos. |
| dropConcepts | Especifica una lista de conceptos primarios para omitir de las tablas CAS de salida. Si una cadena coincide con el nombre de un concepto de salida, los resultados para ese concepto se eliminan de la salida. Esto es útil para limitar el número de conceptos predefinidos incluidos en la salida, manteniéndolos en el modelo para posibles dependencias. |
| factOut | Especifica la tabla CAS de salida que contiene la información de las coincidencias de hechos (facts). |
| language | Especifica el idioma utilizado en la tabla de entrada. El valor predeterminado es 'ENGLISH'. |
| litiChunkSize | Especifica el tamaño de los fragmentos (chunks) utilizados al procesar un documento. El valor predeterminado es 32K. Un valor de 'ALL' indica que no se realiza fragmentación. Se pueden especificar tamaños en bytes (B), kilobytes (K) o megabytes (M). Tamaños más pequeños son útiles para procesar documentos con memoria limitada, mientras que 'ALL' puede consumir mucha memoria para documentos grandes. |
| matchType | Especifica el tipo de coincidencia de entrada. 'ALL' (predeterminado) devuelve todas las coincidencias. 'BEST' devuelve la mejor coincidencia según las reglas del modelo. 'LONGEST' devuelve la coincidencia más larga. |
| model | Especifica una tabla CAS de entrada que contiene el modelo LITI definido por el usuario. Si no se especifica, se utiliza el modelo base. |
| parseTableIn | Especifica el nombre de la tabla CAS que fue creada con el parámetro parseTableOut en una llamada anterior. Contiene documentos pre-procesados para mejorar la eficiencia, especialmente con el operador CLAUS_n. No se debe usar junto con parseTableOut en la misma llamada. |
| parseTableOut | Especifica una tabla CAS de salida para contener los documentos pre-procesados. Es opcional y se usa para guardar resultados intermedios y mejorar el rendimiento en llamadas posteriores con parseTableIn, especialmente con el operador CLAUS_n. |
| ruleMatchOut | Especifica la tabla CAS de salida que contiene la información de las coincidencias de reglas. Esta tabla puede ser utilizada como entrada para la acción ruleGen. |
| table | Especifica una tabla CAS de entrada que contiene los documentos a analizar. |
| text | Especifica el nombre de la variable de la tabla CAS que contiene el texto a procesar. |
Este código crea una tabla CAS llamada 'reviews' con dos columnas: 'docId' para el identificador del documento y 'text' para el contenido del texto. Estos datos servirán como entrada para la acción applyConcept.
| 1 | DATA mycas.reviews; |
| 2 | INFILE DATALINES delimiter='|'; |
| 3 | LENGTH text $300; |
| 4 | INPUT docId $ text $; |
| 5 | DATALINES; |
| 6 | 1|El nuevo smartphone es increíble, me encanta la cámara. |
| 7 | 2|El servicio al cliente fue terrible, muy decepcionante. |
| 8 | 3|SAS Viya es una plataforma potente para el análisis. |
| 9 | 4|El producto llegó dañado. No estoy contento. |
| 10 | ; |
| 11 | RUN; |
Este ejemplo utiliza la acción `applyConcept` para extraer conceptos de la tabla `reviews` usando el modelo LITI base (predefinido). Los resultados se guardan en la tabla `concept_matches`.
| 1 | PROC CAS; |
| 2 | textRuleScore.applyConcept |
| 3 | docId="docId" |
| 4 | text="text" |
| 5 | TABLE={caslib="casuser", name="reviews"} |
| 6 | casOut={caslib="casuser", name="concept_matches", replace=true}; |
| 7 | RUN; |
Este ejemplo demuestra un flujo de trabajo completo. Primero, se compila un modelo LITI personalizado que busca nombres de productos ('PRODUCTO') y sentimientos ('SENTIMIENTO'). Luego, la acción `applyConcept` utiliza este modelo compilado para analizar los textos. Se especifica `matchType='LONGEST'` para obtener la coincidencia más larga en caso de solapamiento. Además de la tabla de coincidencias de conceptos (`concept_matches_custom`), también se generan la tabla de hechos (`fact_matches`) y la tabla de coincidencias de reglas (`rulematch_out`).
| 1 | PROC CAS; |
| 2 | /* 1. Compilar un modelo LITI personalizado */ |
| 3 | textRuleDevelop.compileConcept |
| 4 | config='CONCEPT: PRODUCTO |
| 5 | RULE:(nlpProduct) |
| 6 | CONCEPT: SENTIMIENTO |
| 7 | RULE:(nlpPositive) |
| 8 | RULE:(nlpNegative)' |
| 9 | casOut={caslib="casuser", name="custom_liti_model", replace=true}; |
| 10 | |
| 11 | /* 2. Aplicar el modelo LITI personalizado con opciones avanzadas */ |
| 12 | textRuleScore.applyConcept |
| 13 | docId="docId" |
| 14 | text="text" |
| 15 | TABLE={caslib="casuser", name="reviews"} |
| 16 | model={caslib="casuser", name="custom_liti_model"} |
| 17 | matchType="LONGEST" |
| 18 | casOut={caslib="casuser", name="concept_matches_custom", replace=true} |
| 19 | factOut={caslib="casuser", name="fact_matches", replace=true} |
| 20 | ruleMatchOut={caslib="casuser", name="rulematch_out", replace=true}; |
| 21 | RUN; |
Una cadena hotelera internacional necesita analizar miles de reseñas de clientes para identificar rápidamente menciones a servicios clave (piscina, wifi, desayuno) y el sentimie...
Una farmacéutica debe procesar un gran volumen de informes clínicos para farmacovigilancia. El rendimiento es crítico. Se busca optimizar el proceso guardando los resultados del...
Una empresa de software analiza comentarios de un foro técnico. Los comentarios contienen jerga, nombres de productos anidados (ej. 'SAS Viya' vs 'SAS') y conceptos genéricos qu...