conditionalRandomFields

crfScore

Description

L'action `crfScore` est utilisée pour évaluer des documents en utilisant un modèle de Champs Aléatoires Conditionnels (CRF) préalablement entraîné. Elle applique le modèle CRF aux données textuelles d'entrée pour prédire des séquences d'étiquettes, ce qui est couramment utilisé pour des tâches telles que la reconnaissance d'entités nommées (NER). L'action génère une table de sortie contenant les documents avec les étiquettes prédites pour chaque token.

conditionalRandomFields.crfScore result=results status=rc / casOut={caslib="string", compress=TRUE|FALSE, indexVars={"variable-name-1" <, "variable-name-2", ...>}, label="string", lifetime=64-bit-integer, maxMemSize=64-bit-integer, memoryFormat="DVR"|"INHERIT"|"STANDARD", name="table-name", promote=TRUE|FALSE, replace=TRUE|FALSE, replication=integer, tableRedistUpPolicy="DEFER"|"NOREDIST"|"REBALANCE", threadBlockSize=64-bit-integer, timeStamp="string", where={"string-1" <, "string-2", ...>}}, model={attr={...}, attrfeature={...}, feature={...}, label={...}, template={...}}, table={...}, target="string";
Paramètres
ParamètreDescription
casOutSpécifie la table de sortie CAS pour stocker les données étiquetées. Ce paramètre est obligatoire.
modelSpécifie les tables CAS contenant le modèle CRF entraîné. Ce paramètre est obligatoire et inclut les sous-paramètres pour les attributs, les caractéristiques, les étiquettes et le template du modèle.
tableSpécifie la table CAS d'entrée contenant les données à évaluer. Ce paramètre est obligatoire.
targetSpécifie le nom de la variable de prédiction (étiquette cachée) dans la table de sortie. Ce paramètre est obligatoire.
Préparation des Données Voir la fiche de ce code dataprep
Création des Données de Scoring

Ce bloc de code crée une table CAS nommée `score_data` contenant des phrases à évaluer. Chaque phrase est un document distinct identifié par un `doc_id`.

Copié !
1DATA score_data;
2 LENGTH text $200;
3 doc_id=1; text='Le Dr. Dupont travaille à Paris.'; OUTPUT;
4 doc_id=2; text='Mme. Martin a appelé SAS Institute.'; OUTPUT;
5RUN;
6 
7PROC CASUTIL;
8 load DATA=score_data out=score_data caslib='casuser' replace;
9QUIT;

Exemples

Cet exemple montre comment utiliser l'action `crfScore` pour évaluer des documents en utilisant un modèle CRF déjà chargé (`crf_model_tables`). La table de sortie `crf_scored_output` contiendra les prédictions.

Code SAS® / CAS Code en attente de validation par la communauté
Copié !
1PROC CAS;
2 ACTION conditionalRandomFields.crfScore /
3 TABLE={caslib='casuser', name='score_data'},
4 model={label={name='crf_model_label', caslib='casuser'}, attr={name='crf_model_attr', caslib='casuser'}, feature={name='crf_model_feature', caslib='casuser'}, attrfeature={name='crf_model_attr_feature', caslib='casuser'}, template={name='crf_model_template', caslib='casuser'}},
5 casOut={caslib='casuser', name='crf_scored_output', replace=true},
6 target='predicted_label';
7RUN;
8QUIT;

Cet exemple illustre un appel complet à `crfScore`, en spécifiant explicitement les noms et les caslibs pour chaque composant du modèle CRF. Il charge d'abord les tables du modèle (`crf_model_*`) et les données de scoring (`score_data`) dans la caslib `casuser`, puis exécute le scoring. La table de sortie `crf_scored_output` est créée pour stocker les résultats, incluant la colonne `predicted_label` qui contient les étiquettes prédites.

Code SAS® / CAS Code en attente de validation par la communauté
Copié !
1PROC CAS;
2 /* Assurez-vous que les tables du modèle (crf_model_label, crf_model_attr, etc.) et la table de données (score_data) sont chargées dans la caslib 'casuser' */
3 conditionalRandomFields.crfScore /
4 TABLE={name='score_data', caslib='casuser'},
5 model={
6 label={name='crf_model_label', caslib='casuser'},
7 attr={name='crf_model_attr', caslib='casuser'},
8 feature={name='crf_model_feature', caslib='casuser'},
9 attrfeature={name='crf_model_attr_feature', caslib='casuser'},
10 template={name='crf_model_template', caslib='casuser'}
11 },
12 casOut={name='crf_scored_output', caslib='casuser', replace=true},
13 target='predicted_label';
14RUN;
15 
16 /* Afficher les résultats du scoring */
17 TABLE.fetch / TABLE={caslib='casuser', name='crf_scored_output'};
18RUN;
19QUIT;

FAQ

Quel est l'objectif de l'action `crfScore` ?
Quelles sont les tables d'entrée requises pour l'action `crfScore` ?
Quelle est la sortie principale produite par l'action `crfScore` ?
À quoi sert le paramètre `target` dans l'action `crfScore` ?

Scénarios associés

Cas d'usage
Extraction d'Entités Médicales (Standard)

Un hôpital souhaite structurer des comptes-rendus cliniques en extrayant automatiquement les entités 'MÉDICAMENT' et 'DOSAGE' des notes en texte libre pour alimenter le dossier ...

Cas d'usage
Performance sur Volumétrie Élevée (E-commerce)

Une plateforme e-commerce souhaite analyser les sentiments sur 500 000 avis clients en temps quasi-réel pour détecter les défauts produits récurrents (NER sur les composants déf...

Cas d'usage
Cas Limites et Données Sales (Finance)

Une banque analyse des logs de transactions bruts. Les données contiennent souvent des erreurs : champs vides, caractères spéciaux, ou chaînes extrêmement longues qui pourraient...