Scénario de test & Cas d'usage
Puntuación de documentos de texto basada en reglas.
Descubrir todas las acciones de textRuleScoreCrea una tabla con comentarios técnicos que incluyen conceptos anidados, conceptos genéricos y algunos registros con texto faltante.
| 1 | DATA mycas.tech_feedback; |
| 2 | INFILE DATALINES delimiter='|'; |
| 3 | LENGTH feedback_id $10 comment_text $300; |
| 4 | INPUT feedback_id $ comment_text $; |
| 5 | DATALINES; |
| 6 | FDBK1|El motor de SAS Viya es impresionante. SAS ha hecho un gran trabajo. |
| 7 | FDBK2|Me gustaría un tutorial sobre el producto Viya. |
| 8 | FDBK3| |
| 9 | FDBK4|La empresa Acme Corporation usa SAS para sus análisis. |
| 10 | FDBK5|SAS es una herramienta potente. |
| 11 | ; |
| 12 | RUN; |
| 1 | PROC CAS; |
| 2 | textRuleDevelop.compileConcept |
| 3 | config=' |
| 4 | CONCEPT: PRODUCTO_COMPLETO (RULE:"SAS Viya") |
| 5 | CONCEPT: PRODUCTO_CORTO (RULE:"Viya") |
| 6 | CONCEPT: ORGANIZACION (RULE:(OR, "SAS", "Acme Corporation")) |
| 7 | CONCEPT: CONCEPTO_GENERICO (RULE:"empresa") |
| 8 | ' |
| 9 | casOut={caslib="casuser", name="tech_liti_model", replace=true}; |
| 10 | RUN; |
| 1 | PROC CAS; |
| 2 | textRuleScore.applyConcept |
| 3 | docId="feedback_id" |
| 4 | text="comment_text" |
| 5 | TABLE={caslib="casuser", name="tech_feedback"} |
| 6 | model={caslib="casuser", name="tech_liti_model"} |
| 7 | matchType="LONGEST" |
| 8 | casOut={caslib="casuser", name="tech_concepts_longest", replace=true}; |
| 9 | RUN; |
| 1 | PROC CAS; |
| 2 | textRuleScore.applyConcept |
| 3 | docId="feedback_id" |
| 4 | text="comment_text" |
| 5 | TABLE={caslib="casuser", name="tech_feedback"} |
| 6 | model={caslib="casuser", name="tech_liti_model"} |
| 7 | matchType="ALL" |
| 8 | casOut={caslib="casuser", name="tech_concepts_all", replace=true}; |
| 9 | RUN; |
| 1 | PROC CAS; |
| 2 | textRuleScore.applyConcept |
| 3 | docId="feedback_id" |
| 4 | text="comment_text" |
| 5 | TABLE={caslib="casuser", name="tech_feedback"} |
| 6 | model={caslib="casuser", name="tech_liti_model"} |
| 7 | matchType="ALL" |
| 8 | dropConcepts={"ORGANIZACION"} |
| 9 | casOut={caslib="casuser", name="tech_concepts_dropped", replace=true}; |
| 10 | RUN; |
1. La tabla 'tech_concepts_longest' debe identificar 'SAS Viya' como 'PRODUCTO_COMPLETO' en FDBK1, y no 'SAS' como 'ORGANIZACION' en esa misma frase. 2. La tabla 'tech_concepts_all' debe identificar tanto 'SAS Viya' (PRODUCTO_COMPLETO) como 'SAS' (ORGANIZACION) en FDBK1. 3. La tabla 'tech_concepts_dropped' debe contener los mismos resultados que 'tech_concepts_all', pero sin ninguna coincidencia para el concepto 'ORGANIZACION'. 4. El registro FDBK3 (con texto vacío) no debe generar ningún error y simplemente no producirá resultados.