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.
| Paramètre | Description |
|---|---|
| table | Spécifie la table d'entrée contenant les données textuelles à évaluer (scorer). |
| ruleTerms | Spé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`. |
| casOut | Spé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). |
| docId | Spé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_'. |
| termId | Spé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_'. |
| nThreads | Spé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. |
| useOldNames | Spécifie s'il faut utiliser les anciens noms de variables de la procédure HPBOOLRULE pour la compatibilité ascendante. |
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.
| 1 | DATA mycas.documents_to_score; |
| 2 | INFILE DATALINES delimiter=','; |
| 3 | INPUT docId termId $; |
| 4 | DATALINES; |
| 5 | 1,term1 |
| 6 | 1,term2 |
| 7 | 2,term2 |
| 8 | 2,term3 |
| 9 | 3,term1 |
| 10 | 3,term3 |
| 11 | ; |
| 12 | RUN; |
| 13 | |
| 14 | DATA mycas.rules_to_apply; |
| 15 | INFILE DATALINES delimiter=','; |
| 16 | INPUT _ruleid_ $ _term_ $; |
| 17 | DATALINES; |
| 18 | rule1,term1 |
| 19 | rule1,term2 |
| 20 | rule2,term3 |
| 21 | ; |
| 22 | RUN; |
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`.
| 1 | PROC 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}; |
| 8 | RUN; |
| 9 | QUIT; |
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`.
| 1 | PROC 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; |
| 9 | RUN; |
| 10 | QUIT; |
Un centre de support client souhaite automatiser le tri des emails entrants. L'objectif est de scanner les mots-clés des tickets pour les assigner automatiquement au service 'Fa...
Un hôpital analyse un grand volume de notes cliniques historiques pour détecter des combinaisons de symptômes grippaux. Ce test de charge vérifie la stabilité de l'action et l'e...
Dans le cadre d'une migration depuis un ancien système (Legacy), les données d'entrée possèdent des noms de colonnes non standards (ex: 'ref_contrat' au lieu de 'docId'). De plu...