?>
L'action `brTrain` est utilisée pour extraire des règles booléennes à partir de données textuelles. Elle fait partie de l'ensemble d'actions `boolRule` et est conçue pour identifier des combinaisons de termes qui sont prédictives de certaines catégories ou cibles dans un corpus de documents.
| Paramètre | Description |
|---|---|
| casOuts | Spécifie les tables de données qui contiennent les résultats générés par l'action. |
| docId | Spécifie la variable dans la table d'entrée qui contient l'ID du document. |
| docInfo | Spécifie les informations sur la table de documents. |
| gNegative | Spécifie le score g minimum nécessaire pour qu'un terme négatif soit considéré pour l'extraction de règles. |
| gPositive | Spécifie le score g minimum nécessaire pour un terme positif. |
| maxCandidates | Spécifie le nombre de termes candidats à sélectionner pour chaque catégorie. |
| maxTriesIn | Spécifie la valeur k-in pour la recherche des k-meilleurs dans le processus d'ensemble de termes pour la création de règles. |
| maxTriesOut | Spécifie la valeur k-out pour la recherche des k-meilleurs dans le processus d'ensemble de règles pour la création d'un jeu de règles. |
| minSupports | Spécifie le nombre minimum de documents dans lesquels un terme doit apparaître pour être utilisé dans la création d'une règle. |
| mNegative | Spécifie la valeur m pour le calcul de la précision estimée pour les termes négatifs. |
| mPositive | Spécifie la valeur m pour le calcul de la précision estimée pour les termes positifs. |
| nThreads | Spécifie le nombre de threads à utiliser par nœud. |
| table | Spécifie la table de données d'entrée pour l'extraction de règles. |
| termId | Spécifie la variable dans la table d'entrée qui contient l'ID du terme. |
| termInfo | Spécifie les informations sur la table des termes. |
| useOldNames | Spécifie s'il faut utiliser les anciens noms de variables utilisés dans HPBOOLRULE. |
Ce code crée deux tables CAS : `documents` qui contient les informations sur les documents et leurs catégories, et `terms_in_docs` qui mappe les termes aux documents. Ces tables sont nécessaires pour exécuter l'action `brTrain`.
1 PROC CAS; 2 DATA casuser.documents; 3 INFILE DATALINES delimiter=','; 4 INPUT doc_id varchar(10) category varchar(20); 5 DATALINES; 6 doc1,cat1 7 doc2,cat1 8 doc3,cat2 9 doc4,cat2 10 doc5,cat1 11 ; 12 RUN; 13 14 DATA casuser.terms_in_docs; 15 INFILE DATALINES delimiter=','; 16 INPUT doc_id varchar(10) term_id varchar(10); 17 DATALINES; 18 doc1,term1 19 doc1,term2 20 doc2,term1 21 doc2,term3 22 doc3,term2 23 doc3,term4 24 doc4,term4 25 doc4,term5 26 doc5,term1 27 doc5,term5 28 ; 29 RUN; 30 QUIT;
Cet exemple montre comment extraire des règles booléennes en utilisant les paramètres minimaux requis. Il utilise la table `terms_in_docs` comme entrée principale et la table `documents` pour obtenir les informations sur les cibles.
| 1 | PROC CAS; |
| 2 | ACTION boolRule.brTrain / |
| 3 | TABLE={name='terms_in_docs'}, |
| 4 | docId='doc_id', |
| 5 | termId='term_id', |
| 6 | docInfo={ |
| 7 | TABLE={name='documents'}, |
| 8 | id='doc_id', |
| 9 | targets={'category'} |
| 10 | }, |
| 11 | casOut={name='rules_output', replace=true}; |
| 12 | RUN; |
| 13 | QUIT; |
Cet exemple plus détaillé ajuste plusieurs paramètres pour affiner le processus d'extraction de règles. Il définit des seuils pour les scores g (`gPositive`, `gNegative`), le support minimum des termes (`minSupports`), et contrôle le processus de recherche avec `maxCandidates`, `maxTriesIn` et `maxTriesOut`. Les résultats, incluant les règles, les termes des règles et les termes candidats, sont sauvegardés dans des tables de sortie distinctes.
| 1 | PROC CAS; |
| 2 | ACTION boolRule.brTrain / |
| 3 | TABLE={name='terms_in_docs'}, |
| 4 | docId='doc_id', |
| 5 | termId='term_id', |
| 6 | docInfo={ |
| 7 | TABLE={name='documents'}, |
| 8 | id='doc_id', |
| 9 | targets={'category'}, |
| 10 | targetType='MULTICLASS' |
| 11 | }, |
| 12 | gPositive=5, |
| 13 | gNegative=5, |
| 14 | minSupports=1, |
| 15 | maxCandidates=100, |
| 16 | maxTriesIn=50, |
| 17 | maxTriesOut=20, |
| 18 | casOut={ |
| 19 | rules={name='detailed_rules', replace=true}, |
| 20 | ruleTerms={name='detailed_rule_terms', replace=true}, |
| 21 | candidateTerms={name='candidate_terms', replace=true} |
| 22 | }; |
| 23 | RUN; |
| 24 | QUIT; |