?> brScore - WeAreCAS
boolRule

brScore

Description

L'action `brScore` du jeu d'actions `boolRule` est utilisée pour évaluer des données textuelles en appliquant un ensemble de règles booléennes pré-définies. Elle identifie quels documents satisfont quelles règles, ce qui est fondamental pour la catégorisation de documents, le filtrage de contenu ou l'application de logiques métier sur des corpus de texte.

proc cas; boolRule.brScore table={caslib='string', name='table-name', ...} ruleTerms={caslib='string', name='table-name', ...} casOut={caslib='string', name='table-name', ...} docId='variable-name' termId='variable-name' nThreads=integer useOldNames=TRUE | FALSE; run;
Paramètres
ParamètreDescription
tableSpécifie la table d'entrée contenant les données textuelles à évaluer (scorer).
ruleTermsSpécifie la table d'entrée qui contient les termes de chaque règle, généralement générée par l'action `brTrain`.
casOutSpécifie la table de sortie CAS pour stocker les résultats de la correspondance des règles (indiquant si un document satisfait une règle).
docIdSpécifie la variable dans la table d'entrée (spécifiée dans `table`) qui contient l'identifiant unique du document. La valeur par défaut est '_document_'.
termIdSpécifie la variable dans la table d'entrée (spécifiée dans `table`) qui contient l'identifiant du terme. La valeur par défaut est '_termnum_'.
nThreadsSpécifie le nombre de threads à utiliser par nœud pour le traitement. La valeur par défaut est 0, ce qui signifie que SAS Viya déterminera le nombre optimal de threads.
useOldNamesSpécifie s'il faut utiliser les anciens noms de variables de la procédure HPBOOLRULE pour la compatibilité ascendante.
Préparation des Données
Création des Données d'Exemple

Nous créons deux tables CAS. La première, `mycas.documents_to_score`, contient les données textuelles à évaluer, avec un identifiant de document (`docId`) et un identifiant de terme (`termId`). La seconde, `mycas.rules_to_apply`, définit les règles booléennes à appliquer, avec un identifiant de règle (`_ruleid_`) et les termes (`_term_`) qui la composent.

1DATA mycas.documents_to_score;
2 INFILE DATALINES delimiter=',';
3 INPUT docId termId $;
4 DATALINES;
51,term1
61,term2
72,term2
82,term3
93,term1
103,term3
11;
12RUN;
13 
14DATA mycas.rules_to_apply;
15 INFILE DATALINES delimiter=',';
16 INPUT _ruleid_ $ _term_ $;
17 DATALINES;
18rule1,term1
19rule1,term2
20rule2,term3
21;
22RUN;

Exemples

Cet exemple simple exécute l'action `brScore` sur la table `documents_to_score` en utilisant les règles de `rules_to_apply`. Les résultats, indiquant quel document correspond à quelle règle, sont stockés dans la table `scored_documents`.

Code SAS® / CAS
Copié !
1PROC CAS;
2 ACTION boolRule.brScore /
3 TABLE={name='documents_to_score'},
4 ruleTerms={name='rules_to_apply'},
5 docId='docId',
6 termId='termId',
7 casOut={name='scored_documents', replace=true};
8RUN;
9QUIT;
Résultat :
La table de sortie `scored_documents` contiendra les colonnes `docId` et `_ruleid_`. Elle montrera que le document 1 correspond à la règle 'rule1' (car il contient 'term1' ET 'term2'), et que les documents 2 et 3 correspondent à la règle 'rule2' (car ils contiennent 'term3').

Cet exemple plus détaillé montre comment utiliser des noms de variables personnalisés pour les identifiants de document et de terme. Il utilise également l'option `useOldNames=true` pour que les colonnes de la table de sortie utilisent les noms de variables hérités de procédures plus anciennes, comme `_docid_` au lieu de `docId`.

Code SAS® / CAS
Copié !
1PROC CAS;
2 ACTION boolRule.brScore /
3 TABLE={name='documents_to_score'},
4 ruleTerms={name='rules_to_apply'},
5 docId='docId',
6 termId='termId',
7 casOut={name='scored_documents_legacy', replace=true},
8 useOldNames=true;
9RUN;
10QUIT;
Résultat :
La table de sortie `scored_documents_legacy` est générée. Contrairement à l'exemple simple, la colonne identifiant le document sera nommée `_docid_` et la colonne identifiant la règle sera `_ruleid_`, démontrant l'effet de l'option `useOldNames`.