textRuleScore applyConcept

Análisis de Sentimiento en Reseñas de Hoteles con Modelo LITI Personalizado

Scénario de test & Cas d'usage

Contexto empresarial

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 sentimiento asociado (positivo o negativo). El objetivo es priorizar mejoras y responder de forma proactiva a los clientes.
Sobre el conjunto : textRuleScore

Puntuación de documentos de texto basada en reglas.

Descubrir todas las acciones de textRuleScore
Preparación de datos

Crea una tabla de entrada con reseñas de hoteles. Incluye identificador de reseña y el texto del comentario.

¡Copiado!
1DATA mycas.hotel_reviews;
2 INFILE DATALINES delimiter='|';
3 LENGTH review_id $10 text_content $500;
4 INPUT review_id $ text_content $;
5 DATALINES;
6REV001|La piscina estaba impecable y el desayuno buffet era delicioso. Una estancia perfecta.
7REV002|El wifi era terriblemente lento, imposible trabajar. Además, la habitación olía a humedad.
8REV003|Desayuno correcto, pero la piscina necesita una renovación urgente. El personal, muy amable.
9REV004|Me encantó todo, especialmente el rápido acceso a internet y la calidad de la comida.
10REV005|El servicio es bueno, pero no hay wifi gratis en las habitaciones, lo cual es decepcionante en 2025.
11;
12RUN;

Étapes de réalisation

1
Compilar un modelo LITI personalizado para identificar servicios del hotel y sentimientos.
¡Copiado!
1PROC CAS;
2 textRuleDevelop.compileConcept
3 config='
4 CONCEPT: SERVICIO (RULE:(OR, "piscina", "wifi", "internet", "desayuno", "comida"))
5 CONCEPT: SENTIMIENTO_POS (RULE:(OR, "impecable", "delicioso", "perfecta", "amable", "encantó", "rápido"))
6 CONCEPT: SENTIMIENTO_NEG (RULE:(OR, "lento", "imposible", "humedad", "urgente", "decepcionante"))
7 '
8 casOut={caslib="casuser", name="hotel_liti_model", replace=true};
9RUN;
2
Ejecutar applyConcept usando el modelo LITI personalizado sobre las reseñas de hoteles.
¡Copiado!
1PROC CAS;
2 textRuleScore.applyConcept
3 docId="review_id"
4 text="text_content"
5 TABLE={caslib="casuser", name="hotel_reviews"}
6 model={caslib="casuser", name="hotel_liti_model"}
7 casOut={caslib="casuser", name="hotel_concepts_out", replace=true}
8 factOut={caslib="casuser", name="hotel_facts_out", replace=true};
9RUN;

Resultado esperado


Se espera que la tabla 'hotel_concepts_out' contenga las coincidencias para los conceptos 'SERVICIO', 'SENTIMIENTO_POS' y 'SENTIMIENTO_NEG'. Por ejemplo, para REV001, se deben identificar 'piscina' y 'desayuno' como 'SERVICIO', y 'impecable' y 'delicioso' como 'SENTIMIENTO_POS'. La tabla 'hotel_facts_out' estará vacía al no haberse definido reglas de hechos.