La acción `brTrain` del conjunto de acciones `boolRule` extrae reglas booleanas a partir de datos de texto. Esta acción es fundamental en el text mining para descubrir patrones y relaciones en grandes volúmenes de documentos, permitiendo la creación de modelos de clasificación basados en la presencia o ausencia de términos específicos.
| Parámetro | Descripción |
|---|---|
| table | Especifica la tabla de datos de entrada para la extracción de reglas. |
| docId | Especifica la variable en la tabla de entrada que contiene el ID del documento. |
| termId | Especifica la variable en la tabla de entrada que contiene el ID del término. |
| docInfo | Especifica la información sobre la tabla de documentos, incluyendo la tabla en sí, el ID del documento y las variables objetivo. |
| termInfo | Especifica la información sobre la tabla de términos, incluyendo la tabla, el ID del término y la etiqueta del término. |
| gNegative | Especifica la puntuación g mínima necesaria para que un término negativo sea considerado para la extracción de reglas. El valor predeterminado es 8. |
| gPositive | Especifica la puntuación g mínima necesaria para un término positivo. El valor predeterminado es 8. |
| maxCandidates | Especifica el número de términos candidatos a ser seleccionados para cada categoría. El valor predeterminado es 500. |
| maxTriesIn | Especifica el valor k-in para la búsqueda k-best en el proceso de conjunto de términos para crear reglas. El valor predeterminado es 150. |
| maxTriesOut | Especifica el valor k-out para la búsqueda k-best en el proceso de conjunto de reglas para crear un conjunto de reglas. El valor predeterminado es 50. |
| minSupports | Especifica el número mínimo de documentos en los que un término debe aparecer para que se utilice en la creación de una regla. El valor predeterminado es 3. |
| mNegative | Especifica el valor m para calcular la precisión estimada para los términos negativos. El valor predeterminado es 4. |
| mPositive | Especifica el valor m para calcular la precisión estimada para los términos positivos. El valor predeterminado es 2. |
| nThreads | Especifica el número de hilos a utilizar por nodo. |
| casOuts | Especifica las tablas de datos de salida que contendrán los resultados, como las reglas, los términos de las reglas y los términos candidatos. |
| useOldNames | Especifica si se deben usar los nombres de variables antiguos utilizados en el procedimiento HPBOOLRULE. El valor predeterminado es Falso. |
Se crean tres tablas: `mycas.doc_info` con la información de los documentos y sus categorías, `mycas.term_doc` que mapea términos a documentos, y `mycas.term_info` con los detalles de los términos. Estos datos simulan un escenario de clasificación de texto donde se busca extraer reglas para identificar si un documento pertenece a la categoría 'sports'.
| 1 | DATA mycas.doc_info; INFILE DATALINES delimiter=','; INPUT docid varchar(10) category varchar(10); DATALINES; |
| 2 | 1,sports |
| 3 | 2,other |
| 4 | 3,sports |
| 5 | 4,other |
| 6 | 5,sports |
| 7 | ; |
| 8 | RUN; |
| 9 | DATA mycas.term_doc; INFILE DATALINES delimiter=','; INPUT _document_ varchar(10) _termnum_ varchar(10); DATALINES; |
| 10 | 1,1 |
| 11 | 1,2 |
| 12 | 2,3 |
| 13 | 2,4 |
| 14 | 3,1 |
| 15 | 3,5 |
| 16 | 4,4 |
| 17 | 4,6 |
| 18 | 5,2 |
| 19 | 5,5 |
| 20 | ; |
| 21 | RUN; |
| 22 | DATA mycas.term_info; INFILE DATALINES delimiter=','; INPUT term_id varchar(10) term_label varchar(20); DATALINES; |
| 23 | 1,basketball |
| 24 | 2,score |
| 25 | 3,finance |
| 26 | 4,market |
| 27 | 5,game |
| 28 | 6,trade |
| 29 | ; |
| 30 | RUN; |
Este ejemplo muestra el uso básico de la acción `brTrain` para extraer reglas booleanas. Se utiliza la tabla de documentos y términos creada anteriormente para identificar reglas que clasifican documentos en la categoría 'sports'.
| 1 | |
| 2 | PROC CAS; |
| 3 | ACTION boolRule.brTrain / TABLE={name='term_doc'} docId='_document_' termId='_termnum_' docInfo={TABLE={name='doc_info'}, id='docid', targets={'category'}, targetType='BINARY', events={'sports'}} termInfo={TABLE={name='term_info'}, id='term_id', label='term_label'} casOut={name='rules_output', replace=true}; |
| 4 | |
| 5 | RUN; |
| 6 | |
| 7 | QUIT; |
| 8 |
Este ejemplo demuestra un uso más avanzado de `brTrain`, ajustando parámetros como `gPositive`, `maxCandidates` y `minSupports` para refinar el proceso de extracción de reglas. Se generan tres tablas de salida: `rules_advanced` para las reglas, `rule_terms_advanced` para los términos de las reglas, y `candidate_terms` para los términos candidatos considerados.
| 1 | |
| 2 | PROC CAS; |
| 3 | ACTION boolRule.brTrain / TABLE={name='term_doc'} docId='_document_' termId='_termnum_' docInfo={TABLE={name='doc_info'}, id='docid', targets={'category'}, targetType='BINARY', events={'sports'}} termInfo={TABLE={name='term_info'}, id='term_id', label='term_label'} gPositive=5 maxCandidates=100 minSupports=1 maxTriesIn=50 maxTriesOut=20 casOut={rules={name='rules_advanced', replace=true}, ruleTerms={name='rule_terms_advanced', replace=true}, candidateTerms={name='candidate_terms', replace=true}}; |
| 4 | |
| 5 | RUN; |
| 6 | |
| 7 | QUIT; |
| 8 |